嶺回歸與lasso回歸

2021-09-01 09:21:16 字數 2237 閱讀 6773

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有四個基本假設 ...