目前在看統計學習導論:基於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)