sklearn 最小二乘線性回歸

2021-08-29 15:46:13 字數 2593 閱讀 9674

sklearn是機器學習中的乙個常用的python第三方模組,裡面對機器學習的許多方法進行了封裝,在進行機器學習的任務時,許多常用的演算法可在這個模組中直接呼叫。並且sklearn中還提供了許多可用於分類、回歸的優質資料集。使用好sklearn最直接的方法就是仔細閱讀官方

sklearn就像是乙個模板庫,是許多機器學習框架中的基礎

首先import datasets在sklearn中載入你需要的資料集

from sklearn import datasets     #從sklearn中匯入其自帶的優質資料集

import numpy as np

import matplotlib.pyplot as plt

'''例如:

iris=datasets.load_iris() #使用其中的鳶尾花資料集(分類)

x=iris.data #得到資料的特徵集,該資料集有四個特徵:花萼長、寬和花瓣長、寬

y=iris.target #該資料的標籤集

'''boston=datasets.load_boston() #波士頓房價資料集(506*13,回歸)

#print boston.descr #可以檢視sklearn資料集的一些屬性

x=boston.data #資料有506條,每條資料有十三個特徵和乙個真實值

y=boston.target

自己可以將得到的資料集手動劃分得到需要的訓練集和測試集

sampleratio=0.5               #劃分訓練集和測試集各一半

m=len(x)

sampleboundary=int(m*sampleratio)

myshuffle=list(range(m)) #注意python3中range()返回range物件而不是陣列物件,要將其轉為序列

np.random.shuffle(myshuffle) #shuffle()函式將序列內的元素全部隨機排序

#分別取出訓練集和測試集的資料

train_fea=x[myshuffle[sampleboundary:]] #前一半資料集作為訓練集

train_tar=y[myshuffle[sampleboundary:]]

test_fea=x[myshuffle[:sampleboundary]] #後一半資料作為測試集

test_tar=y[myshuffle[:sampleboundary]]

波士頓房價問題是乙個經典的回歸問題,可以選用sklearn中的最小二乘線性回歸進行擬合。

linear_model中的函式方法

1.fit(x,y,sample_weight=none)

用於擬合函式,x是訓練集特徵值,y為訓練集真實值,sample_weight是每條測試資料的權重,三個引數型別都是矩陣型

2.predict(x)

用於**函式,對測試集的特徵值進行**

3.score(x,y,sample_weight=none)

評分函式,將返回乙個小於1的數值。x是測試集得特徵值,y是測試集得真實值

4.linearregreession將方程分為兩個部分存放,coef_存放回歸係數,intercept_存放截距,檢視可以獲得該回歸方程

from sklearn import linear_model

#使用最小二乘線性回歸進行擬合,匯入相應的模組

lr=linear_model.linearregression()

lr.fit(train_fea,train_tar) #擬合

y=lr.predict(test_fea) #得到**值集合y

plt.scatter(y,test_tar) #畫出散點圖,橫軸是**值,縱軸是真實值

plt.plot([y.min(), y.max()], [y.min(), y.max()], 'b',lw=5) #直線的起點為(y.min(),y.min()),終點是(y.max(),y.max())

plt.show()

coef=lr.coef_ #獲得該回該方程的回歸係數與截距

intercept=lr.intercept_

print("**方程回歸係數:",coef)

print("**方程截距:",intercept)

score=lr.score(test_fea,test_tar) #對得到的模型打分

print("對該模型的評分是:%.5f" %score)

注意做出的圖反映的是**值與真實值之間的關係,在直線上的點是**準確的,直線上方是**值偏低、下方是**值偏高。如果想反應**值與特徵值之間的關係,則需要進行降維把多維的特徵值降維到二維影象中!

此外sklearn還會提供其他許多資料預處理、誤差驗證分析等等許多功能。

線性回歸 最小二乘 diabetes

資料集 特徵 age 年齡 性別 bmi 體質指數 bp 血壓 s1,s2,s3,s4,s4,s6 六種血清的化驗資料 標籤 value 一年後疾病進展的量化指標 一 載入庫 import numpy as np import pandas as pd from sklearn import dat...

線性回歸 最小二乘求解

線性回歸 線性回歸用於數值 它的主要思想是利用預定的權值將屬性進行線性組合來表示類別 y w0 w1x1 w2x2 wnxn 其中,y是類別屬性值,x1,x2,xn是一般屬性值,w1,w2,xn是權值,w0稱為偏置,類似於一元線性回歸y ax b中b。求解線性回歸就是通過已知的一些資料點 1,xi1...

線性回歸之普通最小二乘

from sklearn import linear model reg linear model.linearregression print reg.fit 0,0 1,1 2,2 0,1,2 linearregression copy x true,fit intercept true,n j...