Sklearn庫例子2:分類——線性回歸分類(Line Regression )例子


線性回歸:通過擬合線性模型的回歸系數W =(w_1,…,w_p)來減少數據中觀察到的結果和實際結果之間的殘差平方和,並通過線性逼近進行預測。

從數學上講,它解決了下面這個形式的問題:      \underset{w}{min\,} {|| X w - y||_2}^2

LinearRegression()模型在Sklearn.linear_model下,他主要是通過fit(x,y)的方法來訓練模型,其中x為數據的屬性,y為所屬類型。線性模型的回歸系數W會保存在他的coef_方法中。

例如:

>>> from sklearn import linear_model
>>> clf = linear_model.LinearRegression()
>>> clf.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
>>> clf.coef_
array([ 0.5,  0.5])

 實例:

使用的數據集為Sklearn.dataset.load_diabetes()一個關於糖尿病的數據集。

為了說明這個回歸技術的一個二維圖,例子僅僅使用了糖尿病數據集的第一個特征。

代碼如下:

# -*- encoding:utf-8 -*-
"""
Line Regression Example
DataBase:diavetes
"""

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets,linear_model
import time

a=time.time()
####加載數據集
diabetes=datasets.load_diabetes()

####僅僅使用一個特征:
diabetes_X=diabetes.data[:,np.newaxis,2]

###s數據划分訓練集和測試集
diabetes_X_train=diabetes_X[:-20]
diabetes_X_test=diabetes_X[-20:]

###目標划分為訓練集和測試集
diabetes_y_train=diabetes.target[:-20]
diabetes_y_test=diabetes.target[-20:]

###訓練模型
regr=linear_model.LogisticRegression()
regr.fit(diabetes_X_train,diabetes_y_train)

###回歸系數
print('Coefficients:\n',regr.coef_)

###均方誤差
print('the mean sqare error:%.2f' %np.mean((regr.predict(diabetes_X_test)-diabetes_y_test)**2))
print('Variance score:%.2f' %regr.score(diabetes_X_test,diabetes_y_test))
##散點圖
plt.scatter(diabetes_X_test,diabetes_y_test,color='black')
plt.plot(diabetes_X_test,regr.predict(diabetes_X_test),color='blue',linewidth=3)
plt.xticks()
plt.yticks()
b=time.time()
print('the running time is %.2f' %(b-a))
plt.show()

 實驗結果:

Coefficients:
 [ 938.23786125]
Residual sum of squares: 2548.07
Variance score: 0.47
the running time is 0.31

 
        
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM