線性回歸模型sklearn實現

2021-10-03 08:40:11 字數 3278 閱讀 1362

classsklearn.linear_model.linearregression(fit_intercept=true, normalize=false, copy_x=true, n_jobs=none)

引數:

fit_intercept    布林值,可選,預設為真

是否計算模型的截距。如果設定為假,則不計算就截距。

normalize布林值,可選,預設為假

當fit_intercept設定為假的時候自動忽略這個引數。如果為真,x在回歸將會進行標準化預處理。如果你希望將資料正則化,可以選用正則化方法事先處理資料並把normalize設定為false.

copy_x      布林值,可選,預設為真

如果為真,x將被複製,否則,它可能重寫。

n_jobs:執行緒數。

屬性:

coef_:係數

rank_:矩陣x的秩

singular_ :

intercept_:截距

方法fit(self, x, y[, sample_weight]) 

訓練模型

get_params(self[, deep])

獲得引數

predict(self, x)

**score(self, x, y[, sample_weight])

返回判定係數r**2

set_params(self, \*\*params)

設定引數

import numpy as np

import matplotlib.pyplot as plt

from sklearn import datasets

from sklearn import metrics

from sklearn.linear_model import linearregression

plt.rcparams['font.sans-serif']=['simhei'] #正常顯示中文名稱

plt.rcparams['axes.unicode_minus']=false #正常顯示負號

#載入資料集

diabetes_x,diabetes_y=datasets.load_diabetes(return_x_y=true)

#選取其中乙個特徵

diabetes_x=diabetes_x[:,np.newaxis,2]

#劃分訓練集和測試集

x_train=diabetes_x[:-30]

x_test=diabetes_x[30:]

y_train=diabetes_y[:-30]

y_test=diabetes_y[30:]

#訓練模型

reg=linearregression()

reg.fit(x_train,y_train)

y_pred=reg.predict(x_test)

#評估模型得分

# 係數

print('coefficients: \n', reg.coef_)

# 均方誤差

print('mean squared error: %.2f'

% metrics.mean_squared_error(y_test, y_pred))

# 判定係數

print('coefficient of determination: %.2f'

% metrics.r2_score(y_test, y_pred))

#畫圖plt.figure()

plt.scatter(x_test,y_test,marker='.',color='blue')

plt.plot(x_test,y_pred,color='r')

plt.title('圖形')

不同的係數對嶺回歸模型的影響

import numpy as np

from sklearn import linear_model

import matplotlib.pyplot as plt

#建立10*10的希爾伯特矩陣

x=1.0/(np.arange(1,11)+np.arange(0,10)[:,np.newaxis])

y=np.ones(10)

#計算路徑

n_alphas=200

alphas=np.logspace(-10,-2,n_alphas)

coefs=

for alpha in alphas:

ridge=linear_model.ridge(alpha=alpha,fit_intercept=false)

ridge.fit(x,y)

#畫圖ax=plt.gca()

ax.plot(alphas,coefs)

ax.set_xscale('log')

ax.set_xlim(ax.get_xlim()[::-1]) #翻轉軸

plt.xlabel('alpha')

plt.ylabel('coef')

plt.title('ridge coefficients as a function of the regularization')

plt.axis('tight')

plt.show()

sklearn包實現線性回歸模型

前言 上篇文章我們利用python實現了梯度下降演算法用於訓練一元線性回歸模型,但正常我坐機器學習多會使用比較成熟的相關包,因為這些封裝好的包,演算法效率相對較高,並且使用方便。本文使用sklearn包中線性模型實現一元線性回歸模型的訓練。一 sklearn訓練線性回歸模型只需要兩句 1 model...

Sklearn實現線性回歸

sklearn是機器學習中常用的第三方模組,對常用的機器學習方法進行了封裝,包括回歸 regression 降維 dimensionality reduction 分類 classfication 聚類 clustering 等方法。今天我們用sklearn實現乙個最簡單的線性回歸模型。coding...

sklearn 線性回歸 sklearn 線性回歸

sklearn 線性回歸 資料集匯入,以及模型的建立,和線性回歸的應用。import matplotlib.pyplot as plt import numpy as np from sklearn import datasets,linear model from sklearn.metrics ...