https://github.com/LiuChuang0059/100days-ML-code/blob/master/Day2_SImple_Linear_regression/README.md
簡(jiǎn)單線性回歸
使用單一特征預(yù)測(cè)響應(yīng)值?;谧宰兞縓來(lái)預(yù)測(cè)因變量Y的方法,假設(shè)兩者線性相關(guān),尋找一種根據(jù)特征或自變量X的線性函數(shù)來(lái)預(yù)測(cè)Y。
目標(biāo)
- 找最佳擬合線,最小化預(yù)測(cè)誤差(最小化觀測(cè)值 Y i Y_i Yi?和模型預(yù)測(cè)值 Y p Y_p Yp?之間的長(zhǎng)度)
- m i n { s u m ( y i ? y p ) 2 } min \{ sum(y_i - y_p)^2\} min{sum(yi??yp?)2}
- y = b 0 + b 1 x 1 y = b_0+b_1x_1 y=b0?+b1?x1?( b 0 b_0 b0?截距, b 1 b_1 b1?斜率)
步驟
- 數(shù)據(jù)預(yù)處理:同day1 六步驟(導(dǎo)入庫(kù)–導(dǎo)入數(shù)據(jù)集–檢查缺失數(shù)據(jù)–解析分類數(shù)據(jù)–拆分?jǐn)?shù)據(jù)集–特征縮放)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataset = pd.read_csv('studentscores.csv')
X = dataset.iloc[ : , : 1 ].values
Y = dataset.iloc[ : , 1 ].values
from sklearn.model_selection import train_test_split #new
# sklearn.cross_validation 模塊已經(jīng)在最新版本的 Scikit-learn 中被移除了。
#from sklearn.cross_validation import train_test_split #old
X_train, X_test, Y_train, Y_test = train_test_split( X, Y, test_size = 1/4, random_state = 0)
- 通過(guò)訓(xùn)練集訓(xùn)練簡(jiǎn)單線性回歸模型:使用sklearn.linear_model庫(kù)的LinearRegression類,得到模型regressor
### Step 2: Fitting Simple Linear Regression Model to the training set
# 把數(shù)據(jù)集擬合到簡(jiǎn)單線性回歸模型,使用fit函數(shù)
from sklearn.linear_model import LinearRegression
regressor = LinearRegression() ## 創(chuàng)建一個(gè)regressor 對(duì)象
regressor = regressor.fit(X_train, Y_train) ### 對(duì)象擬合到數(shù)據(jù)集里面
# 使用fit方法將線性回歸模型擬合到訓(xùn)練數(shù)據(jù)集上,其中:
# X_train 是訓(xùn)練集的特征數(shù)據(jù),包含了獨(dú)立變量。
# Y_train 是訓(xùn)練集的目標(biāo)變量數(shù)據(jù),包含了因變量。
# 使用fit()方法將 regressor 對(duì)象擬合到訓(xùn)練集的特征矩陣 X_train 和目標(biāo)變量 Y_train
# 擬合過(guò)程根據(jù)線性回歸計(jì)算b0和b1
模型的擬合過(guò)程會(huì)根據(jù)訓(xùn)練數(shù)據(jù)集來(lái)估計(jì)線性回歸模型的參數(shù),以使其能夠最好地?cái)M合訓(xùn)練數(shù)據(jù)。一旦模型被擬合到數(shù)據(jù)集上,你就可以使用它來(lái)進(jìn)行預(yù)測(cè)。
線性回歸模型是一種用于建模和預(yù)測(cè)連續(xù)數(shù)值型因變量的簡(jiǎn)單線性模型。在這個(gè)模型中,它會(huì)嘗試找到最佳的線性關(guān)系來(lái)擬合自變量和因變量之間的關(guān)系。通過(guò)擬合模型,你可以使用它來(lái)預(yù)測(cè)新的數(shù)據(jù)點(diǎn)的因變量值。
- 預(yù)測(cè)結(jié)果:預(yù)測(cè)測(cè)試集,結(jié)果存到Y(jié)_pred,用2中訓(xùn)練的回歸模型regressor的LinearRegression類的預(yù)測(cè)方法對(duì)結(jié)果進(jìn)行預(yù)測(cè)。
### Step 3: Predecting the Result
#在訓(xùn)練好的regressor使用預(yù)測(cè)模型
#結(jié)果輸出到向量Y_pred
Y_pred = regressor.predict(X_test)
調(diào)用 predict 方法,模型會(huì)使用測(cè)試集的特征數(shù)據(jù) X_test 來(lái)生成相應(yīng)的預(yù)測(cè)值,這些預(yù)測(cè)值將存儲(chǔ)在 Y_pred 中
有了Y_pred,可以使用不同的評(píng)估指標(biāo)來(lái)評(píng)估模型的性能,例如均方誤差(Mean Squared Error,MSE)或可決系數(shù)(Coefficient of Determination,R-squared),以了解模型的擬合程度和預(yù)測(cè)精度
- 可視化:用matplotlib.pyplot對(duì)訓(xùn)練集和測(cè)試集的結(jié)果做散點(diǎn)圖,查看預(yù)測(cè)結(jié)果。
### Step 4: Visualization
plt.scatter(X_train , Y_train, color = 'red')
# 紅色散點(diǎn)圖繪制了訓(xùn)練集的數(shù)據(jù)點(diǎn),橫軸X_train,縱軸Y_train
plt.plot(X_train , regressor.predict(X_train), color ='blue') ## 藍(lán)色的線圖繪制了模型在訓(xùn)練集上的預(yù)測(cè)結(jié)果
# 回歸線,橫軸X_train,縱軸regressor.predict(X_train)--訓(xùn)練集預(yù)測(cè)結(jié)果
plt.scatter(X_test , Y_test, color = 'green')
# 綠色散點(diǎn)圖繪制了測(cè)試集的數(shù)據(jù)點(diǎn),橫軸X_test,縱軸Y_test
plt.plot(X_test , regressor.predict(X_test), color ='blue')
## 藍(lán)色的線圖繪制了模型在測(cè)試集上的預(yù)測(cè)結(jié)果
# 回歸線,測(cè)試集合預(yù)測(cè)結(jié)果
可視化模型在訓(xùn)練集和測(cè)試集上的表現(xiàn),以及模型的擬合情況。散點(diǎn)圖顯示了實(shí)際數(shù)據(jù)點(diǎn),而線圖顯示了模型的預(yù)測(cè)結(jié)果。
函數(shù)介紹
plt.scatter
是 matplotlib.pyplot
庫(kù)中用于創(chuàng)建散點(diǎn)圖
的函數(shù)。散點(diǎn)圖是一種用于可視化數(shù)據(jù)分布的常用圖表類型,通常用于顯示兩個(gè)變量之間的關(guān)系。以下是 plt.scatter 的基本用法:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-521479.html
plt.scatter(x, y, s=None, c=None, marker=None,
cmap=None, norm=None, vmin=None, vmax=None,
alpha=None, linewidths=None, edgecolors=None,
*, data=None, **kwargs)
x 和 y: 表示散點(diǎn)圖中的數(shù)據(jù)點(diǎn)的x坐標(biāo)和y坐標(biāo)。
s(可選): 表示數(shù)據(jù)點(diǎn)的大小。
c(可選): 表示數(shù)據(jù)點(diǎn)的顏色。
marker(可選): 表示數(shù)據(jù)點(diǎn)的標(biāo)記類型。
alpha(可選): 表示數(shù)據(jù)點(diǎn)的透明度。
其他參數(shù)用于進(jìn)一步自定義圖表的外觀。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-521479.html
到了這里,關(guān)于[github-100天機(jī)器學(xué)習(xí)]day2 simple linear regression的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!