我做的書「介紹統計學習與R應用」由詹姆斯,威騰,黑斯蒂,Tibshirani(2013)的邏輯迴歸。比較scikit學習的分類任務與迴歸
更具體而言,我擬合二元分類模型來從在§7.8.1中描述將R包「ISLR」的「工資」數據集。
預測變量'年齡'(轉換爲多項式,4級)適用於二元分類工資> 250。然後將年齡與「真」值的預測概率作圖。
R中的模型擬合如下:
fit=glm(I(wage>250)~poly(age,4),data=Wage, family=binomial)
agelims=range(age)
age.grid=seq(from=agelims[1],to=agelims[2])
preds=predict(fit,newdata=list(age=age.grid),se=T)
pfit=exp(preds$fit)/(1+exp(preds$fit))
完整代碼(作者的網站):http://www-bcf.usc.edu/~gareth/ISL/Chapter%207%20Lab.txt
從書中相應的曲線:http://www-bcf.usc.edu/~gareth/ISL/Chapter7/7.1.pdf(右)
我試圖適應模型轉換爲scikit-learn中的相同數據:
poly = PolynomialFeatures(4)
X = poly.fit_transform(df.age.reshape(-1,1))
y = (df.wage > 250).map({False:0, True:1}).as_matrix()
clf = LogisticRegression()
clf.fit(X,y)
X_test = poly.fit_transform(np.arange(df.age.min(), df.age.max()).reshape(-1,1))
prob = clf.predict_proba(X_test)
然後我繪製了'True'val反對年齡範圍。但結果/情節看起來完全不同。 (不是在談論CI樂隊或rugplot,只是概率情節。)我在這裏錯過了什麼嗎?