from sklearn.linear_model import ridge, linearregression
#linearregression 是普通線性回歸
from pandas import dataframe
from sklearn import datasets
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import r2_score
from sklearn.model_selection import train_test_split
def first():
x = [[2,1,1],[1,2,3]]
y = [3,1]
#建立物件
liner=linearregression()
#訓練資料
liner.fit(x,y)
#alpha就是 (lamda )
ridge=ridge(alpha=0.01)
ridge=ridge.fit(x,y)
print(liner.coef_)#係數。斜率
print(ridge.coef_)
看出嶺回歸可以縮減係數
歸納總結
作圖分析(lamda)和coef的關係
def second():
x = 1. / (np.arange(1, 11) + np.arange(0, 10).reshape(-1, 1))
y = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
alphas=np.logspace(-10,-2,200)
# print(alphas)
ridge=ridge()
coefs=
for alpha in alphas:
ridge.set_params(alpha=alpha)
ridge.fit(x,y)
plt.figure(figsize=(10,6))
data=plt.plot(alphas,coefs)
plt.xscale('log')
plt.show()
#lasso回歸
r ^ 2(確定係數)回歸分數函式。
最好的分數是1.0,它可能是負的(因為模型可以任意更差)。總是**y的期望值的常數模型,忽略輸入特徵,將得到r ^ 2得分為0.0。
from sklearn.linear_model import lasso
def third():
boston = datasets.load_boston()
data = boston.data
target = boston.target
feature_names = boston.feature_names
samples = dataframe(data=data, columns=feature_names)
x_train, x_test, y_train, y_test = train_test_split(samples, target, test_size=0.2, random_state=1)
ridge=ridge(alpha=0.8)
lasso=lasso(alpha=0.0006)
ridge.fit(x_train,y_train)
#嶺回歸
lasso.fit(x_train,y_train)
#lasso 回歸
y1_=ridge.predict(x_test)
y2_=lasso.predict(x_test)
print('ridge r2_score is %f' % r2_score(y_test, y1_))
print('lasso r2_score is %f' % r2_score(y_test, y2_))
# print(ridge.coef_)
# print(lasso.coef_)
linear=linearregression()
linear.fit(x_train,y_train)
y_=linear.predict(x_test)
a=r2_score(y_test,y_)
print(a)
普通線性回歸,嶺回歸和lasso回歸的對比 嶺回歸與lasso回歸
a.什麼是嶺回歸和lasso回歸?為什麼要用嶺回歸和lasso回歸?嶺回歸選參的一般原則是什麼。對ols進行範數1正則化叫lasso回歸。對ols進行範數2正則化叫嶺回歸。進行嶺回歸和lasso回歸的主要目的 1.解決病態矩陣的過擬合和欠擬合問題。2.消除多重共線性造成的行列式趨近於0,從而引起的大...
嶺回歸 lasso回歸
嶺回歸 ridge regression 和lasso least absolute shrinkage and selection operator 都是ols的改進,知乎上有關於三者異同的詳細討論 關於lasso 這裡記錄一下最近的學習心得。嶺回歸的含義 嶺回歸的權值計算公式中有單位方陣i,就像...
R 嶺回歸 lasso回歸
1.嶺回歸 嶺回歸 ridge regression,tikhonov regularization 實際上算是最小二乘法 ols 的改良版。最小二乘法中使用的是無偏估計回歸,而嶺回歸使用的是 有偏估計回歸 通過損失部分資訊 減低精度得到的回歸係數,但是這樣跟符合實際情況。因為ols有四個基本假設 ...