机器学习Sklearn实战——其他线性模型
生活随笔
收集整理的這篇文章主要介紹了
机器学习Sklearn实战——其他线性模型
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
其他線性模型
嶺回歸
?
相比于傳統(tǒng)的ols,在梯度下降的時(shí)候多了一項(xiàng)-learning_rate*2aw。無(wú)論w是正還是負(fù),都讓結(jié)果的絕對(duì)值變小(讓系數(shù)變小,防止過(guò)擬合)
正則化?
欠擬合:系數(shù)少,系數(shù)小簡(jiǎn)單
過(guò)擬合:系數(shù)多,系數(shù)大復(fù)雜
?就是learning_rate一般取0.01?
lasso
彈性網(wǎng)絡(luò)
多任務(wù)套索
多任務(wù)彈性網(wǎng)?
最小角度回歸
import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error from sklearn import datasets # cv交叉驗(yàn)證 from sklearn.linear_model import LinearRegression,Ridge,Lasso,ElasticNet,ElasticNetCV,LassoCV diabetes = datasets.load_diabetes() X = diabetes["data"] y = diabetes["target"] X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.15) #使用線性回歸 lr = LinearRegression() lr.fit(X_train,y_train) lr.score(X_test,y_test) y_ = lr.predict(X_test) mean_squared_error(y_test,y_)結(jié)果:
0.4954938521776219 3052.1767800521984 ####使用嶺回歸 ridge = Ridge(alpha=0.1) ridge.fit(X_train,y_train) y_ = ridge.predict(X_test)print(ridge.score(X_test,y_test)) mean_squared_error(y_,y_test)結(jié)果:?
0.4853455916799041 3113.5720379350823?數(shù)據(jù)不存在共線性的問(wèn)題(官方提供的數(shù)據(jù)),因此線性回歸的效果比嶺回歸的效果要好
####使用ridgeCV,找最佳a(bǔ)lpha ridgeCV = RidgeCV(alphas=np.linspace(0.01,5,50),scoring = "r2") ridgeCV.fit(X_train,y_train) y_ = ridgeCV.predict(X_test)print(ridge.score(X_test,y_test)) mean_squared_error(y_,y_test)結(jié)果:
0.4853455916799041 3117.234991068462 ridgeCV.alpha_結(jié)果:
0.11183673469387755 print(np.linspace(0.01,5,50)) #等差數(shù)列 print(np.logspace(0.01,5,50)) #等比數(shù)列 數(shù)字比較小的時(shí)候結(jié)果:
[0.01 0.11183673 0.21367347 0.3155102 0.41734694 0.519183670.62102041 0.72285714 0.82469388 0.92653061 1.02836735 1.130204081.23204082 1.33387755 1.43571429 1.53755102 1.63938776 1.741224491.84306122 1.94489796 2.04673469 2.14857143 2.25040816 2.35224492.45408163 2.55591837 2.6577551 2.75959184 2.86142857 2.963265313.06510204 3.16693878 3.26877551 3.37061224 3.47244898 3.574285713.67612245 3.77795918 3.87979592 3.98163265 4.08346939 4.185306124.28714286 4.38897959 4.49081633 4.59265306 4.6944898 4.796326534.89816327 5. ] [1.02329299e+00 1.29370940e+00 1.63558632e+00 2.06780797e+002.61424893e+00 3.30509292e+00 4.17850002e+00 5.28271453e+006.67872986e+00 8.44365757e+00 1.06749868e+01 1.34959693e+011.70624274e+01 2.15713612e+01 2.72718303e+01 3.44787109e+014.35900889e+01 5.51092486e+01 6.96724728e+01 8.80841888e+011.11361403e+02 1.40789877e+02 1.77995148e+02 2.25032320e+022.84499582e+02 3.59681721e+02 4.54731565e+02 5.74899375e+027.26822849e+02 9.18893768e+02 1.16172154e+03 1.46871921e+031.85684439e+03 2.34753591e+03 2.96789806e+03 3.75219771e+034.74375716e+03 5.99734709e+03 7.58221192e+03 9.58589468e+031.21190726e+04 1.53216706e+04 1.93705904e+04 2.44894816e+043.09610960e+04 3.91429057e+04 4.94868483e+04 6.25642915e+047.90975925e+04 1.00000000e+05]總結(jié)
以上是生活随笔為你收集整理的机器学习Sklearn实战——其他线性模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 机器学习Sklearn实战——手写线性回
- 下一篇: 机器学习Sklearn实战——其他线性回