機器學習實踐系列 一 普通線性回歸

2021-08-14 22:53:58 字數 2046 閱讀 3191

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