欢迎访问个人主页,目前访问量太低,百度搜不到的说。。。谢谢鼓励
读书笔记,并不打算翻译全文,打算将书中重要的知识点结合自己的理解将其分享,并在最后附上R语言相关函数应用,作为自己最近一段时间在机器学习方面学习总结。如果理解不正确,望指正。
前言
ISLR,全称为An Introduction to Statistical Learning with Applications in R,算是the Elements of Statistical Learning的基础版,里面公式推导并不多,主要是讲解统计学习中的一些常用方法,以及相关方法在R语言上的应用。ISLR官方并没用出习题的答案,不过已经有人做了一份,可以学习参考ISLR答案
第二章理解
第二章主要是简单的介绍了书的背景,主要强调在统计学习中并没有免费的午餐,没有一种方法适用于所有的问题,所以才要学习各种统计学习方法,目的针对实际问题找到适合的统计学习方法。
准确性与解释性
在统计学习中,我们的目的有的时候是为了观察某一变量的影响,这时候我们更需要方法的解释性,例如:利用线性模型,虽然一般不能准确目标数值,但很容易得知是正相关还是负相关。而预测股票变化趋势等问题,我们并不想知道市场各种因素对于股市是如何影响的,我们就像知道是涨还是跌,这时候更需要方法的准确性。
这是书中的一张图,通常来讲,随着方法自由度的增加,可解释性逐渐降低。
方差与偏差
这个公式是这一章节最重要的公式了。公式求出了测试集的均方误差(MSE),MSE也是评判方法好坏的标准之一,MSE越小,方法越准确。
公式中第一项是预测的方差,表示了如果我们更换一个训练集,预测函数f(x)的变化程度,一般来说,自由度越高的方法具有越大的方差;第二项是预测的偏差,一般来讲,自由度越高的方法具有越小的偏差;最后一项是不可消除偏差。
红色的曲线代表了MSE,橘黄色曲线代表方差,蓝色的曲线代表偏差,水平虚线代表了不可消除偏差,竖直虚线代表了模型实际的自由度。
上面是回归问题的总结,分类问题与他相似,就不重复整理了。
R语言应用
我的版本为ubuntu15.10+ R version 3.3.0 + RStudio
首先设置工作路径
> getwd() #查询工作路径
[1] "/home/bit_hammer"
> setwd("/home/bit_hammer/Desktop/ISLR") #设置工作路径
读取数据,这个数据在网站上可以下载
> Auto = read.table("Auto.data", header=T, na.string="?")
header = T
表示读入表头
na.string="?"
表示空数据用?表示
> fix(Auto) #显示Auto
> dim(Auto) #Auto维度
[1] 397 9
> Auto[1:4,] #显示Auto前四行,注意R语言遍历从1开始
mpg cylinders displacement horsepower weight acceleration year origin name
1 18 8 307 130 3504 12.0 70 1 chevrolet chevelle malibu
2 15 8 350 165 3693 11.5 70 1 buick skylark 320
3 18 8 318 150 3436 11.0 70 1 plymouth satellite
4 16 8 304 150 3433 12.0 70 1 amc rebel sst
> Auto = na.omit(Auto) # 忽略空数据所在行
> dim(Auto)
[1] 392 9
plot()
函数可以绘制散点图和箱线图
identify()
函数可以标记散点图中的点信息
plot(displacement, mpg, col = "green", xlab = "displacement", ylab = "mpg")
hist()
函数可以绘制直方图
hist(mpg, col =2, breaks = 15)
pairs()
函数可以绘制散点图矩阵
pairs(~ mpg + displacement + horsepower + weight + acceleration)