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...