單變數從統計學的角度為僅有乙個自變數和乙個因變數,從機器學習的角度為僅有乙個特徵變數和乙個目標變數。
使用最小二乘法求得一元線性函式的係數和截距項。
評價指標有平均絕對值差(mae)、均方誤差(mse,與成本函式比較相近)、均方根誤差(rmse)、擬合優度(
以波士頓房屋**的擬合與**為例,簡要說明單變數線性回歸的使用:
# -*- coding: utf-8 -*
# 以波士頓房屋**為例演示單變數線性回歸
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import linearregression
from sklearn import metrics # 評價模組
def main():
boston = load_boston() # 讀取資料
print(boston.keys()) # 資料中包含的內容
print(boston.feature_names) # data變數名
bos = pd.dataframe(boston.data) # 將data資料轉換為dataframe格式以便展示
print(bos[5].head()) # 第6列資料為rm(房間數量)
bos_target = pd.dataframe(boston.target) # medv(房價)
print(bos_target.head())
# 散點圖顯示
x = bos.iloc[:, 5:6]
y = bos_target
plt.scatter(x, y)
plt.grid(true)
plt.xlabel('rm')
plt.ylabel('medv')
plt.title('the relationship between rm and medv')
plt.show()
# 轉成陣列形式,便於計算
x = np.array(x.values)
y = np.array(y.values)
print(x)
print(y)
# 劃分訓練集和測試集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)
print(x_train.shape)
print(x_test.shape)
print(y_train.shape)
print(y_test.shape)
# 訓練,列印截距和係數
lr = linearregression()
lr.fit(x_train, y_train)
print(lr.intercept_)
print(lr.coef_)
# 使用模型進行**
y_pred = lr.predict(x_test)
# 模型評價,作圖
t = np.arange(len(x_test))
plt.plot(t, y_test, color='red', linewidth=1.0, linestyle='-', label='y_test')
plt.plot(t, y_pred, color='green', linewidth=1.0, linestyle='-', label='y_pred')
plt.legend()
plt.grid(true)
plt.show()
# 模型評價,指標計算
r2 = lr.score(x_test, y_test)
mae = metrics.mean_absolute_error(y_test, y_pred)
mse = metrics.mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)
print('r2 = ', r2)
print('mae = ', mae)
print('mse = ', mse)
print('rmse = ', rmse)
if __name__ == '__main__':
main()
原始資料散點圖和**效果如下:
機器學習 單變數線性回歸
1.模型描述 1 常見的字元的意義 2 乙個監督學習演算法的工作方式 2.代價函式 1 什麼是代價函式 平方誤差函式 目標函式 我在網上找了很長時間代價函式的定義,但是準確定義並沒有,我理解的代價函式就是用於找到最優解的目的函式,這也是代價函式的作用。注意 上面的代價函式是二變數的,事實上代價函式可...
機器學習 單變數線性回歸
你有乙個10000平方英呎的房子,現在要進行轉買,能賣多少錢呢?單變數線性回歸,顧名思義是乙個變數對結果產生的影響,例如上題房屋面積對房屋 的影響 回歸是統計學的乙個重要概念,其本意是根據之前的資料 乙個準確的輸出值,解題思路如下 1 定義乙個模型 h x 0 1x,並初始化 0 1的值就會產生乙個...
機器學習 單變數線性回歸
給定房屋面積和房屋 的資料,然後以房屋面積為橫座標,房屋 為縱座標,繪製資料點。通過繪製曲線,獲得房屋房價的模型,根據房屋面積獲得房屋 這就是乙個regression problem 回歸問題 regression指的是根據之前的資料 出乙個準確的輸出值,即predict real valued o...