机器学习第2天:简单线性回归模型
文章目錄
- 一、概念
- 1. 什么是回歸
- 2. 什么是線性
- 3. 什么是線性回歸
- 二、具體實現步驟
- 第1步:數據預處理
- 第2步:使用簡單線性回歸模型來訓練訓練集
- 第3步:預測結果
- 第4步:可視化
- 訓練集結果可視化
- 測試集結果可視化
- 三、可視化結果展示
- 訓練集結果可視化結果
- 測試集結果可視化結果
- 四、知識點詳解
- 1. 關于LinearRegression()
- 2. 關于數據可視化
一、概念
1. 什么是回歸
回歸的目的是為了預測,比如在【待補充】這篇文章中通過花瓣長度預測花瓣寬度
回歸之所以能預測是因為它通過大量的花瓣長度與寬度數據,“弄懂了”花瓣長度與寬度之間的線性關系,在這個基礎之上就可以通過花瓣長度預測花瓣寬度了。
2. 什么是線性
線性就是關系可以用線性方程來表示,通過一個或多個變量來表示另外一個變量。
通俗的說符合“越…,越…”這種說法的可能就是線性關系,比如
- “房子”越大,“租金”就越高
- “漢堡”買的越多,花的“錢”就越多
- 杯子里的“水”越多,“重量”就越大
但是也并非所有“越…,越…”都是線性的,比如“彈簧的彈力與位移的關系”,
3. 什么是線性回歸
通過兩個或多個變量之間的線性關系來預測結果。
通過鳶尾花的花瓣長度與寬度的線性關系來預測花瓣寬度,通過杯子里水的體積就可以知道(預測)水的重量
二、具體實現步驟
第1步:數據預處理
import pandas as pd import numpy as np import matplotlib.pyplot as pltdataset = pd.read_csv('studentscores.csv') X = dataset.iloc[ : , :1].values Y = dataset.iloc[ : ,1].valuesfrom sklearn.model_selection import train_test_split X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=1/4, random_state=0)第2步:使用簡單線性回歸模型來訓練訓練集
from sklearn.linear_model import LinearRegression regressor = LinearRegression() regressor = regressor.fit(X_train, Y_train)第3步:預測結果
Y_pred = regressor.predict(X_test)第4步:可視化
訓練集結果可視化
plt.scatter(X_train, Y_train, color='red') plt.plot(X_train, regressor.predict(X_train), color='blue') plt.show()測試集結果可視化
plt.scatter(X_test, Y_test, color='red') plt.plot(X_test, regressor.predict(X_test), color='blue') plt.show()三、可視化結果展示
訓練集結果可視化結果
測試集結果可視化結果
四、知識點詳解
1. 關于LinearRegression()
sklearn.linear_model包實現了廣義線性模型,包括線性回歸、Ridge回歸、Bayesian回歸等。LinearRegression是其中較為簡單的線性回歸模型。
解釋一下什么是回歸:回歸最簡單的定義是,給出一個點集D,用一個函數去擬合這個點集,并且使得點集與擬合函數間的誤差最小,如果這個函數曲線是一條直線,那就被稱為線性回歸,如果曲線是一條二次曲線,就被稱為二次回歸。
更多關于回歸知識見:線性回歸
2. 關于數據可視化
plt.scatter():繪畫出訓練集數據的散點圖
plt.plot():繪畫出依據模型(LinearRegression的線性回歸模型)生成的直線
更加直觀的觀察數據集中的X、Y是否存在線性關系
關于數據可視化更多知識見:Matplotlib 簡介
你可以在下方留下你的疑惑,大家一起來看看
總結
以上是生活随笔為你收集整理的机器学习第2天:简单线性回归模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬虫 - 解决动态网页信息抓
- 下一篇: 线性回归实例-鸢尾花数据集