this blog is based on sklearn dataset,i.e.,diabetes.build a linear regression model.
import numpy as np
from sklearn.utils import shuffle
import matplotlib.pyplot as plt
from sklearn import linear_model,datasets
from sklearn.metrics import mean_squared_error,r2_score
#載入我們的訓練資料
#使用sklearn提供的diabetes資料集
diabetes = datasets.load_diabetes()
#僅選擇一列資料作為訓練資料
diabetes_x = diabetes.data[:, np.newaxis, 2]
#y是標籤
y = diabetes.target
#這裡我們使用sklearn裡的shuffle函式把資料順序打亂
x,y = shuffle(diabetes_x,y,random_state=7)
#分割訓練集和資料集
num_training = int(0.7*len(x))
x_train = x[:num_training]
y_train = y[:num_training]
x_test = x[num_training:]
y_test = y[num_training:]
#構建模型
reg = linear_model.linearregression()
#訓練模型
reg.fit(x_train,y_train)
#**模型
y_pred = reg.predict(x_test)
#輸出模型引數
print("模型引數",reg.coef_)
#計算均方誤差
print("均方誤差",mean_squared_error(y_test,y_pred))
#計算r2值
print("r2值",r2_score(y_test,y_pred))
plt.figure()
plt.subplot(1,2,1)
plt.title('rew data')
plt.scatter(x_test,y_test,color='blue')
plt.subplot(1,2,2)
plt.title('linear model')
plt.scatter(x_test,y_test,color='blue')
plt.plot(x_test,y_pred,color='black',linewidth=4)
plt.show()
輸出結果:
模型引數 [ 1003.04891533]
均方誤差 4039.46847212
r2值 0.258925986194
````
``輸出結果:
class="se-preview-section-delimiter">
模型引數 [ 1003.04891533]
均方誤差 4039.46847212
r2值 0.258925986194
模型引數 [ 1003.04891533]
均方誤差 4039.46847212
r2值 0.258925986194
機器學習 線性回歸python實踐 1
寫在最前面 線性回歸是機器學習最簡單的模型,用來尋找最佳擬合曲線。我曾經在數模比賽時用過,雖然只拿了省二。優點是 易於理解,計算簡單 缺點是 對於非線性的資料擬合效果不好 適用資料型別 數值型和標稱型資料 今天簡單介紹下最小二乘法 ordinary least squares 這是一組樣例資料的的散...
機器學習系列之一 線性回歸模型
目錄1.線性回歸 1.1 問題轉換 1.2 衡量標準 1.3 學習方向 1.線性回歸 1.1 問題轉換 今天我們來談一下線性回歸。問題 假如我想知道乙個房屋的房價是多少,現在我們能提供的資料報含房屋的面積,房屋的朝向,房屋的地理位置等有關房子的資訊,我們該怎麼做呢?聰明的你一定已經知道了。為了方便,...
機器學習 線性回歸
可以說基本上是機器學習中最簡單的模型了,但是實際上其地位很重要 計算簡單 效果不錯,在很多其他演算法中也可以看到用lr作為一部分 先來看乙個小例子,給乙個 線性回歸是什麼 的概念。圖來自 2 假設有乙個房屋銷售的資料如下 面積 m 2 銷售價錢 萬元 123 250 150 320 87 160 1...