安卓和机器学习 -- 学习周记{第1周}
好久没写文了,写个学习周记总结下这一周学了些什么吧。
主要是 安卓,机器学习 这两个课程
是在 Udacity上上的课,上完了安卓的入门课做了个简单的安卓App,然后也上了机器学习的第一节课了解一些概念性的东西~
Android
熟悉布局的第一个App
因为接触过 iOS 的App开发和 HTML 开发,所以学 Android 起来感觉有点熟悉的感觉。
样式
Android 是使用 XML 进行描述的,类似于 CSS 那样,提供 Attribute 然后再提供值。如下就是一段将 "From MoMo"放于右下角的代码:
<TextView
android:id="@+id/from_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:padding="20dp"
android:textSize="36sp"
android:fontFamily="sans-serif-light"
android:textColor="@android:color/white"
android:text="From MoMo" />
但是这样好明显会导致很多代码会Hard Code
也就是说写死,于是可以将以上的样式配置用一个变量来别名,那么下次使用的时候直接通过名字来引用,更符合 DRY (Don`t Repeat Yourself)原则.
在 res
文件夹里的 values
的styles.xml
定义好样式:
<resources>
<style name="HeaderTextStyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">48dp</item>
<item name="android:gravity">center_vertical</item>
<item name="android:textAllCaps">true</item>
<item name="android:textSize">15sp</item>
</style>
</resources>
那么下次调用样式的时候就可以直接通过style
属性调用早已定义好的HeaderTextStyle
样式。
<TextView
style="@style/HeaderTextStyle"
android:text="From MoMo" />
其实上面的代码还hard code 了text
,也应该在values
文件夹中的strings.xml
上定义上
总的来说可以把XML样式里的String
,Color
,dimens
, styles
都可以先定义在values
文件夹中。然后再调用使用@
和R
都是用来引用values
文件夹里的资源的。
布局
学了两种布局,一种是LinearLayout
,是一种线形布局,譬如横或者竖排列View,另一种则是RelativeLayout
, 是一种关系性布局,譬如形容这个View在另外的View的左边,或者这个View居中于父View即RelativeLayout
.
线形布局和关系性布局 就像 iOS 上使用Auto Layout来布局View。
查找和定向View
//通过id来查找
TextView priceTextView = (TextView) findViewById(R.id.price_text_view);
这个则像 JS 上查找HTML上的元素标签并且替换掉。
机器学习
现在使用电脑的人数多了,手机,电脑无处不在,于是数据相对以前来说更容易获取,并且数量庞大。于是就可以通过这些数据来预测一些行为。
譬如: 通过结论来猜测规则,譬如有10000个人因为吃了苹果而治好了发烧,那么我们就可可以猜测规则为:人吃苹果可以治好发烧,然后通过这条规则预测,假如一个人发烧了,那么吃苹果可以治得好。当然也存在着偏差,准确率的问题,然后为了提高准确率,添加更多的特征,譬如吃苹果治好了发烧的人当中,一般还吃上了牛奶,那么就可以添加这个特征提高准确率。
那么机器学习就是通过数据获得则个规则和修正的过程。
过程统计图
学到了以下概念:
- 监督学习
- 非监督学习
- 增强学习
- 贝叶斯公式
- 推断
- 归纳 Induction
- 演绎 Deduction
- 反推出因 Abduction
- 分类
- 回归 Regression 预测数据