sklearn 線性回歸 sklearn 線性回歸

2021-10-12 17:04:30 字數 3084 閱讀 1683

sklearn 線性回歸

資料集匯入,以及模型的建立,和線性回歸的應用。

import matplotlib.pyplot as plt

import numpy as np

from sklearn import datasets, linear_model

from sklearn.metrics import mean_squared_error, r2_score,mean_absolute_error

from sklearn.preprocessing import standardscaler

%matplotlib inline

plt.rcparams['font.family'] = ['sans-serif']

plt.rcparams['font.sans-serif'] = ['simhei']

plt.rcparams['axes.unicode_minus']=false

# 線性回歸是比較簡單的模型,沒有調參,預設即可。線性回歸的效能取決於資料本身,而不是調參能力,因此,線性模型的優化只能通過處理資料進行優化。

# sklearn linear_model linearregression

# sklearn.linear_model.linearregression - scikit-learn 0.23.2 documentation

# 引數:class sklearn.linear_model.linearregression(*, fit_intercept=true, normalize=false, copy_x=true, n_jobs=none)

# fit_intercept:是否計算此模型的截距,預設啟用,如果設定為false,則在計算中將不使用截距。

# normalize:和fit_intercept聯動,如果fit_intercept 設定為false,則忽略此引數,如果fit_intercept 設定為true,則對x進行歸一化,如果要進行標準化,則設定normalize=false,並呼叫standardscaler

# copy_x 預設為true,複製x,如果設定為false,則就是為x。

# n_jobs 設定為-1,用所有的處理器。

# 方法:fit,get_params,predict,score,set_params

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

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

diabetes_x_train=diabetes_x[:-20]

diabetes_x_test=diabetes_x[-20:]

# 劃分標籤為訓練集和資料集

diabetes_y_train=diabetes_y[:-20]

diabetes_y_test=diabetes_y[-20:]

sc=standardscaler()

diabetes_x_train_std=sc.fit_transform(diabetes_x_train)

diabetes_x_test_std=sc.transform(diabetes_x_test)

regr=linear_model.linearregression()

regr.fit(diabetes_x_train,diabetes_y_train)

diabetes_y_pred=regr.predict(diabetes_x_test)

regr.coef_

# 均方誤差 mse

print('mse',mean_squared_error(diabetes_y_test,diabetes_y_pred))

# rmse 絕對均方誤差 數值越小,模型擬合度越高

print('rmse',np.sqrt(metrics.mean_squared_error(diabetes_y_test,diabetes_y_pred)))

# mae

print('mae',mean_absolute_error(diabetes_y_test,diabetes_y_pred))

# 確定係數,1是完美的**

print('r2',r2_score(diabetes_y_test,diabetes_y_pred))

# r2偏低,mse偏高:說明和**值差距比較大,

plt.plot(range(len(diabetes_y_test)), diabetes_y_test, 'r', label='測試資料')

plt.plot(range(len(diabetes_y_test)), diabetes_y_pred, 'b', label='**資料')

sklearn 線性回歸

在統計學中,線性回歸 linear regression 是利用稱為線性回歸方程的最小平方函式對乙個或多個自變數和因變數之間關係進行建模的一種回歸分析。這種函式是乙個或多個稱為回歸係數的模型引數的線性組合。只有乙個自變數的情況稱為簡單回歸,大於乙個自變數情況的叫做多元回歸。這反過來又應當由多個相關的...

Sklearn實現線性回歸

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

六 Sklearn線性回歸

參考url 最廣為人知的線性模型 將資料擬合成一條直線。直線擬合的模型方程為y ax b,其中a是直線斜率,b是直線截距。linearregression評估器除了簡單的直線擬合,它還可以處理多維度的線性回歸模型 y a0 a1x1 a2x2 裡面有多個x變數 從幾何學的角度看,這個模型是擬合三維空...