目前在看统计学习导论:基于R应用,觉得这本书非常适合入门,打算把课后习题全部做一遍,记录在此博客中。
第二章习题
1.
(a) 当样本量n非常大,预测变量数p很小时,这样容易欠拟合,所以一个光滑度更高的学习模型更好。
(b) 当样本量n非常小,预测变量数p很大时,这样容易过拟合,所以一个光滑度更小的学习模型更好。
(c) 当预测变量与响应变量之间的关系是非线性时,说明光滑度小的模型会容易欠拟合,所以光滑度高的模型更适合。
(d) 在这里,方差是指用一个不同的训练数据集估计f时,估计函数的改变量。一般来说,光滑度越高的统计模型有更高的方差,所以这里选择一个光滑度小的模型。
2.
这个题目首先给人的感觉是开放性的,看你通过下面信息能够推断或者预测什么结果。
在这里,预测是指输入X得到Y,而推断是指理解Y作为X1,X2...Xp的函数是怎么变化。回归和分类的定义就不多说了。
(a)给人的直观感觉是回归问题。预测问题在这里似乎没有什么意义,反而是可以考虑推断。比如,可以推断员工人数,产业类型以及CEO工资来和利润的关系。
(b)这里明显是有成功和失败两种状态,所以是分类问题,而且是预测新产品。
(c)这里也是回归和预测问题。比较直白。
3.
(a) 图书里有,关键是理解偏差和方差的区别吧。
(b) 把图画出来了就差不多理解啦。
4.
又是找例子题,醉了~
5.
这个题的知识点和第一题类似。
(a)一个光滑度高的回归模型或者分类模型,能够更好的拟合非线性模型,偏差更小。但是模型越光滑,所需要计算的参数就越多,而且容易过拟合,方差更大。当我们更想预测,而不是推断的时候,我们优先考虑光滑度高的模型。
(b)一个光滑度低的回归模型或者分类模型,上述相反~
6.
中文版15,16也原话。
(a)参数方法是一种基于模型估计的两阶段方法。优点是,它把估计f的问题简化到估计一组参数,对f假设一个具体的参数形式将简化对f的估计,因为估计参数是更为容易的,不需要拟合任意一个函数f。缺点是,选定的模型并非与实际的f形式上一致,而且还有过拟合的可能情况。
(b)非参数方法不需要对函数f的形式实现做明确说明的假设。相反,这类方法追求的接近数据点的估计,估计函数在去粗和光滑处理后尽量可能与更多的数据点接近。优点是,不限定函数f的具体形式,可以更大的范围选择更适宜的f形状的估计。缺点是,无法将估计f的问题简单到对少数参数进行估计的问题,所以往往需要大量的观察点。
7.
(a)欧几里德距离:|x| = sqrt( x[1]^2 + x[2]^2 + … + x[n]^2 )
所以计算结果是:1.3、2.2、3.sqrt(10)、4.sqrt(5)、5.sqrt(2)、6.sqrt(3)
(b) Green。最近的点obs.5是绿色。
(c) Red.
(d) 小。书29页的图可以知道,1/K越大,光滑度越高,也就越非线性。所以K应该小。
8.
题目略简单。提示很多。
(a)
college = read.csv("College.csv")
(b)
fix(college)
rownames(college) = college[,1]
college = college[,-1]
fix(college)
(c)
i.summary(college)
ii.pairs(college[,1:10])
iii.plot(college$Private, college$Outstate)
iv.
Elite = rep("No", nrow(college))
Elite[college$Top10perc>50] = "Yes"
Elite = as.factor(Elite)
college = data.frame(college, Elite)
summary(college$Elite)
plot(college$Elite, college$Outstate)
v.
par(mfrow=c(2,2))
hist(college$Apps)
hist(college$perc.alumni, col=2)
hist(college$S.F.Ratio, col=3, breaks=10)
hist(college$Expend, breaks=100)
vi.*发挥
9.
这个题中文版的(d)翻译错了,我们按照原书来
Auto = read.table("Auto.data.txt", header = T ,na.strings="?")
Auto = na.omit(Auto)
dim(Auto)
summary(Auto)
(a)
quantitative: mpg, cylinders, displacement, horsepower, weight, acceleration, year
qualitative: name, origin
(b)
sapply(Auto[, 1:7], range)
(c)
sapply(Auto[, 1:7], mean)
sapply(Auto[, 1:7], sd)
(d)
newAuto = Auto[-(10:85),]
sapply(newAuto[, 1:7], range)
sapply(newAuto[, 1:7], mean)
sapply(newAuto[, 1:7], sd)
(e)
自己感兴趣哪个就plot哪个吧
(f)
pairs(Auto)
看结果感觉horsepower和weight可以作为变量来做预测
10.
(a)
library(MASS)
?Boston
dim(Boston)
(b)
pairs(Boston)
(c)
从pairs(Boston)的结果来看,感觉crim和age, dis, rad, tax, ptratio有较大的相关性
plot(Boston$age, Boston$crim)
plot(Boston$dis, Boston$crim)
plot(Boston$rad, Boston$crim)
plot(Boston$tax, Boston$crim)
plot(Boston$ptratio, Boston$crim)
(d)
par(mfrow=c(1,3))
hist(Boston$crim[Boston$crim>1], breaks=25)
hist(Boston$tax, breaks=25)
hist(Boston$ptratio, breaks=25)
(e)
dim(subset(Boston, chas == 1))
(f)
median(Boston$ptratio)
(g)
t(subset(Boston, medv == min(Boston$medv)))
summary(Boston)
(h)
dim(subset(Boston, rm > 7))
dim(subset(Boston, rm > 8))
summary(subset(Boston, rm > 8))
summary(Boston)