机器学习笔记-机器为何能够学习?
笔记整理自台大林轩田老师的开放课程-机器学习基石,笔记中所有图片来自于课堂讲义。
机器学习的基础架构 (Learning From Data)
银行在决定是否要通过贷款申请人的授信请求前,会根据申请人的资料对其进行风险评估,(通常银行会为其计算信用评分),申请人状况符合银行要求时,银行通过其申请,反之则婉拒。那么银行凭借什么来判断申请人将来是否会违约呢?通过银行之前的信用贷款记录,这些记录中,有些客户发生了违约行为,其他则表现良好,银行从这些违约与非违约的记录中learning到了一些规律,然后利用这些规律,来对新申请人的违约风险进行估计。因此信用评估模型就是一个learning的问题,那么我们该如何使用历史数据做好learning呢?
下面这张图描述了learning的基础架构:
R统计图表与好玩的字体
本文参考至统计之都的showtext:字体,好玩的字体和好玩的图形以及R能不能绘制这种图形??。当中讨论了在R图表中显示中文以及其他自定义字体的方法。这两篇文章中使用到showtext
这个包,但实际测试发现好像不使用showtext
也能达到同样的效果。下面的R code我是在Mac下的RStudio下实验的,因此如果windows达不到同样的效果,可以参考上面这两篇文章。
R语言求函数的偏导数
在Machine Learning的课上,老师讲到用gradient decent的方法解logistic regression中cost function的最小值。这当中就要涉及到对cost function的求偏导数。其实在R当中可以很方便的做到这一点。
R语言中可以使用D()
来求一元函数的导数,用deriv()
来求多元函数的偏导数。这两个function都在package:stats
中,会在R启动时默认加载。
下面以一个多元函数作为demo,希望通过gradient decent的方法求最小值:
$$E(u,v) = e^u + e^{2v} + e^{uv} + u^2 - 2uv + 2v^2 - 3u - 2v$$
Perceptron Learning Algorithm (PLA)
Perceptron 是什么?
Perceptron - 感知机,它能够根据每笔资料的特征,把资料判断为不同的类别。令$h(x)$是一个perceptron,你给我一个$x$($x$是一个特征向量),把$x$输入$h(x)$,它就会输出这个$x$的类别,譬如在信用违约风险预测当中,输出就可能是这个人会违约,或者不会违约。本质上讲,perceptron是一种二元线性分类器,它通过对特征向量的加权求和,并把这个”和”与事先设定的门槛值(threshold)做比较,高于门槛值的输出1,低于门槛值的输出-1。
AUC与ROC - 衡量分类器的好坏
二元分类器
二元分类器是指要输出(预测)的结果只有两种类别的模型。例如预测阳性/阴性,有病/没病,在银行信用评分模型中,也用来预测用户是否会违约,等等。
既然是一种预测模型,则实际情况一定是有些结果猜对了,有些结果猜错了。因为二元分类器的预测结果有两种类别(以下以阴/阳为例),对应其真实值,则会有以下四种情形:
1. 预测为阳性,真实值为阴性 (伪阳性)
2. 预测为阴性,真实值为阳性 (伪阴性)
3. 预测为阴性,真实值真的为阴性 (真阴性)
4. 预测为阴性,真实值真的为阴性 (真阴性)
图1.confusion matrix (混乱矩阵)
利用智能手机加速度传感器与三轴陀螺仪预测用户活动状态
本次实验是coursera上的一门课Data Analysis的一次小作业。将使用智能手机加速度传感器与三轴陀螺仪采集到的数据,来预测用户当前的活动(walking, walking_upstairs, walking_downstairs, sitting, standing, laying)。所用的数据可以从课程提供的链接下载,https://spark-public.s3.amazonaws.com/dataanalysis/samsungData.rda 。.rda为R专用的数据文件,在R中直接使用load()
即可将其载入,比较方便。除此之外,也可到UCI Machine Learning Repository下载原始文件,当中包含dataset的中各个变量以及衍生变量的简介,数据格式为纯文本。
Random Forests - 林子大了,什么树都有
本文参考自Layman’s Introduction to Random Forests
在machine learning中,随机森林(Random Forests)是一个包含多个决策树(decision tree)的分类器,其输出的类别由个别树输出的类别的众数决定[1]。如何从一个比较通俗易懂的角度来理解这座森林呢?
某天你想看某部电影但你不确定自己是否会喜欢,此时你可能会问你的好友小赵,问他认为你会不会喜欢这部电影。这个小赵是个非常认真负责的人,他想先了解了解你喜欢哪种类型的电影。于是你给了小赵一份电影清单,上面写了你喜欢哪些电影,不喜欢哪些电影(a labeled training set)。于是小赵去豆瓣上查这些电影的相关信息,他把每一部电影转换成一个特征向量:(导演,编剧,主演,类型,国家,语言,片长…),接着在小赵心目中,就建立起了一套判断准则,这个判断准则中有一系列的衡量标准,譬如动作片+有xxx出演->喜欢
,或者爱情片+悲剧->不喜欢
等等。此时小赵就变成了一棵decision tree。你问小赵你会不会喜欢某部电影,小赵就会根据之前建立起来的规则,猜测你喜欢或者不喜欢。
Word Cloud in R
本文参考自One R Tip A Day- Word Cloud in R
研究CRAN中R Packages所关注的最热门的领域
以下的例子将从Available CRAN Packages页面上抓取目前CRAN上所有的R包,提取当中的title,及各个R包的简介,用来分析R包所涵盖的热门领域。
|
|