国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

機(jī)器學(xué)習(xí)實(shí)戰(zhàn):Python基于LR線性回歸進(jìn)行預(yù)測(cè)(十)

這篇具有很好參考價(jià)值的文章主要介紹了機(jī)器學(xué)習(xí)實(shí)戰(zhàn):Python基于LR線性回歸進(jìn)行預(yù)測(cè)(十)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1 前言

注意這里的LR指的是Linear Regression,線性回歸。而非邏輯回歸Logistic Regression,雖然二者簡(jiǎn)稱都是LR,但是后者我們還是俗稱Logistic多點(diǎn)

1.1 LR的介紹

線性回歸(Linear Regression)是一種用于建立自變量與連續(xù)因變量之間線性關(guān)系模型的統(tǒng)計(jì)學(xué)和機(jī)器學(xué)習(xí)方法。它是最簡(jiǎn)單、最常見的回歸分析方法之一。

線性回歸的目標(biāo)是通過擬合最優(yōu)的直線(一元線性回歸)或超平面(多元線性回歸)來描述自變量與因變量之間的關(guān)系。它假設(shè)自變量和因變量之間存在線性關(guān)系,即因變量可以被自變量的線性組合所解釋。

一元線性回歸模型的數(shù)學(xué)表達(dá)式為:Y = β0 + β1*X + ε,其中Y是因變量,X是自變量,β0和β1是回歸系數(shù),ε是誤差項(xiàng)。這個(gè)模型描述了因變量Y與自變量X之間的直線關(guān)系,β0是截距,β1是斜率。

多元線性回歸模型擴(kuò)展了一元線性回歸,可以處理多個(gè)自變量。數(shù)學(xué)表達(dá)式為:Y = β0 + β1X1 + β2X2 + ... + βn*Xn + ε,其中Y是因變量,X1, X2, ..., Xn是多個(gè)自變量,β0, β1, β2, …, βn是回歸系數(shù),ε是誤差項(xiàng)。

優(yōu)點(diǎn):

  • 簡(jiǎn)單和解釋性: 線性回歸是一種簡(jiǎn)單直觀的方法,易于理解和解釋。它建立了自變量與因變量之間的線性關(guān)系,通過回歸系數(shù)可以解釋自變量對(duì)因變量的影響程度和方向。

  • 計(jì)算效率高: 線性回歸的計(jì)算效率通常很高,特別是在具有大量樣本和低維特征空間的情況下。擬合線性回歸模型的計(jì)算復(fù)雜度較低,可以處理大規(guī)模數(shù)據(jù)集。

  • 可解釋性強(qiáng): 線性回歸可以提供變量之間的關(guān)系和影響程度的定量信息。回歸系數(shù)可以量化自變量對(duì)因變量的貢獻(xiàn),幫助了解變量之間的關(guān)聯(lián)關(guān)系。

  • 預(yù)測(cè)準(zhǔn)確度高: 在數(shù)據(jù)符合線性關(guān)系的情況下,線性回歸可以提供較高的預(yù)測(cè)準(zhǔn)確度。當(dāng)自變量與因變量之間存在線性關(guān)系時(shí),線性回歸可以得到較好的擬合效果。

缺點(diǎn):

  • 線性假設(shè)限制: 線性回歸假設(shè)自變量和因變量之間存在線性關(guān)系,這在實(shí)際問題中并不總是成立。如果數(shù)據(jù)的真實(shí)關(guān)系是非線性的,線性回歸模型可能無法捕捉到復(fù)雜的模式和關(guān)聯(lián)。

  • 對(duì)異常值敏感: 線性回歸對(duì)異常值(在因變量或自變量中的極端值)比較敏感。異常值可能對(duì)模型的擬合產(chǎn)生顯著影響,導(dǎo)致模型的不準(zhǔn)確性。

  • 無法處理高維特征: 線性回歸在處理高維特征空間的問題時(shí)面臨挑戰(zhàn)。當(dāng)自變量的數(shù)量遠(yuǎn)大于樣本數(shù)量時(shí),線性回歸可能會(huì)遇到過擬合問題。

  • 缺乏靈活性: 線性回歸的靈活性較低,無法捕捉復(fù)雜的非線性關(guān)系。對(duì)于非線性問題,需要采用其他更復(fù)雜的模型來提高擬合能力。

1.2 LR的應(yīng)用

這是最基礎(chǔ)的機(jī)器學(xué)習(xí)算法,應(yīng)用領(lǐng)域也十分廣泛:

  1. 經(jīng)濟(jì)學(xué)和金融學(xué):線性回歸可以用于預(yù)測(cè)經(jīng)濟(jì)指標(biāo)(如GDP、通貨膨脹率等)與自變量(如消費(fèi)、投資、出口等)之間的關(guān)系,進(jìn)行經(jīng)濟(jì)預(yù)測(cè)和政策分析。在金融領(lǐng)域,線性回歸可用于預(yù)測(cè)股票價(jià)格、利率等金融指標(biāo)。

  2. 市場(chǎng)營(yíng)銷:線性回歸可以用于市場(chǎng)營(yíng)銷研究,例如預(yù)測(cè)銷售量與廣告投入、價(jià)格等因素之間的關(guān)系,進(jìn)行市場(chǎng)需求分析和營(yíng)銷策略制定。

  3. 醫(yī)學(xué)和健康科學(xué):線性回歸可用于分析醫(yī)學(xué)和健康領(lǐng)域的數(shù)據(jù),例如預(yù)測(cè)疾病發(fā)展與風(fēng)險(xiǎn)因素之間的關(guān)系,評(píng)估治療方法的效果,分析生物醫(yī)學(xué)數(shù)據(jù)等。

  4. 社會(huì)科學(xué):線性回歸可用于社會(huì)科學(xué)領(lǐng)域的研究,如教育研究中預(yù)測(cè)學(xué)生成績(jī)與學(xué)習(xí)時(shí)間、家庭背景等因素之間的關(guān)系,社會(huì)經(jīng)濟(jì)學(xué)中分析收入與教育水平、職業(yè)等的相關(guān)性。

  5. 環(huán)境科學(xué):線性回歸可用于分析環(huán)境數(shù)據(jù),如預(yù)測(cè)氣溫與溫室氣體排放、大氣污染物之間的關(guān)系,評(píng)估環(huán)境因素對(duì)生態(tài)系統(tǒng)的影響。

  6. 工程和物理科學(xué):線性回歸可用于建立物理模型和工程設(shè)計(jì)中的預(yù)測(cè)。例如,預(yù)測(cè)材料強(qiáng)度與溫度、壓力等因素之間的關(guān)系,分析電子元件的性能與設(shè)計(jì)參數(shù)的關(guān)聯(lián)。

2. weather數(shù)據(jù)集實(shí)戰(zhàn)演示

2.1 導(dǎo)入函數(shù)

import pandas as pd  
import numpy as np  
import matplotlib.pyplot as plt  
import seaborn as seabornInstance 
from sklearn.model_selection import train_test_split 
from sklearn.linear_model import LinearRegression
from sklearn import metrics
%matplotlib inline

2.2 導(dǎo)入數(shù)據(jù)

weather數(shù)據(jù)集包括降水,降雪,溫度,風(fēng)速以及當(dāng)天是否包括雷暴或其他惡劣天氣條件。任務(wù)是預(yù)測(cè)以輸入特征為最低溫度的最高溫度。
下載地址:https://github.com/Vaibhav-Mehta-19/linear-regression-weather-dataset
python 機(jī)器學(xué)習(xí)算法 lr,機(jī)器學(xué)習(xí),Python,python,機(jī)器學(xué)習(xí),線性回歸,jupyter

dataset = pd.read_csv('weather.csv')
print(dataset.shape)
dataset.describe()

python 機(jī)器學(xué)習(xí)算法 lr,機(jī)器學(xué)習(xí),Python,python,機(jī)器學(xué)習(xí),線性回歸,jupyter

2.3 數(shù)據(jù)整體可視化

# 最高溫和最低溫的二維散點(diǎn)圖
dataset.plot(x='MinTemp', y='MaxTemp', style='o')  
plt.title('MinTemp vs MaxTemp')  
plt.xlabel('MinTemp')  
plt.ylabel('MaxTemp')  
plt.show()

python 機(jī)器學(xué)習(xí)算法 lr,機(jī)器學(xué)習(xí),Python,python,機(jī)器學(xué)習(xí),線性回歸,jupyter

# 檢查平均最高溫
plt.figure(figsize=(15,10))
plt.tight_layout()
seabornInstance.distplot(dataset['MaxTemp'])

python 機(jī)器學(xué)習(xí)算法 lr,機(jī)器學(xué)習(xí),Python,python,機(jī)器學(xué)習(xí),線性回歸,jupyter
根據(jù)結(jié)果看大概在15~20。

2.4 訓(xùn)練模型

X = dataset['MinTemp'].values.reshape(-1,1)
y = dataset['MaxTemp'].values.reshape(-1,1)
# 老慣例,訓(xùn)練集/測(cè)試集按7/3分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
regressor = LinearRegression()  
regressor.fit(X_train, y_train) 

計(jì)算截距和斜率:

print(regressor.intercept_)
print(regressor.coef_)

python 機(jī)器學(xué)習(xí)算法 lr,機(jī)器學(xué)習(xí),Python,python,機(jī)器學(xué)習(xí),線性回歸,jupyter
意味著最小溫度每變化一個(gè)單位,最高溫度的變化約為0.82

2.5 預(yù)測(cè)模型

y_pred = regressor.predict(X_test)
df = pd.DataFrame({'Actual': y_test.flatten(), 'Predicted': y_pred.flatten()})
df

python 機(jī)器學(xué)習(xí)算法 lr,機(jī)器學(xué)習(xí),Python,python,機(jī)器學(xué)習(xí),線性回歸,jupyter

# 柱狀圖可視化結(jié)果
df1 = df.head(25)
df1.plot(kind='bar',figsize=(16,10))
plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')
plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')
plt.show()

python 機(jī)器學(xué)習(xí)算法 lr,機(jī)器學(xué)習(xí),Python,python,機(jī)器學(xué)習(xí),線性回歸,jupyter
這里展示了25組數(shù)據(jù),模型準(zhǔn)確性有點(diǎn)不高,但是預(yù)測(cè)的百分比還是相對(duì)接近實(shí)際百分比

# 繪制組間比較線
plt.scatter(X_test, y_test,  color='gray')
plt.plot(X_test, y_pred, color='red', linewidth=2)
plt.show()

python 機(jī)器學(xué)習(xí)算法 lr,機(jī)器學(xué)習(xí),Python,python,機(jī)器學(xué)習(xí),線性回歸,jupyter

2.6 評(píng)估模型

  • 平均絕對(duì)誤差(MAE),誤差絕對(duì)值的平均值:

MAE = (1/n) * Σ|i - yi|

  • 均方誤差(MSE),平方誤差的平均值:

MSE = (1/n) * Σ(i - yi)^2

  • 均方根誤差(RMSE),平方誤差均值的平方根:

RMSE = √(MSE)

評(píng)估模型主要是以上三個(gè)指標(biāo),用Scikit-Learn庫(kù)預(yù)構(gòu)建的函數(shù)計(jì)算即可

print('Mean Absolute Error:', metrics.mean_absolute_error(y_test, y_pred))  
print('Mean Squared Error:', metrics.mean_squared_error(y_test, y_pred))  
print('Root Mean Squared Error:', np.sqrt(metrics.mean_squared_error(y_test, y_pred)))

python 機(jī)器學(xué)習(xí)算法 lr,機(jī)器學(xué)習(xí),Python,python,機(jī)器學(xué)習(xí),線性回歸,jupyter
三個(gè)指標(biāo)都是越小越好,雖然有點(diǎn)差強(qiáng)人意,不過均方根誤差為4.42,平均絕對(duì)誤差為3.76,可以認(rèn)為該模型的預(yù)測(cè)誤差相對(duì)較小

3.討論

我認(rèn)為線性回歸是機(jī)器學(xué)習(xí)中最基礎(chǔ)和常見的模型之一。線性回歸模型通過建立特征與目標(biāo)變量之間的線性關(guān)系來進(jìn)行預(yù)測(cè)。它具有一些優(yōu)點(diǎn),如模型的簡(jiǎn)單性和可解釋性,使其在許多應(yīng)用領(lǐng)域得到廣泛應(yīng)用。

然而,線性回歸模型也有一些限制。它假設(shè)特征與目標(biāo)之間的關(guān)系是線性的,并且對(duì)異常值敏感,像2.3的散點(diǎn)圖中可以看出數(shù)據(jù)的發(fā)散性較強(qiáng)。此外,它不能捕捉到非線性關(guān)系和特征之間的復(fù)雜交互作用。對(duì)于這些情況,可能需要考慮更復(fù)雜的模型或?qū)μ卣鬟M(jìn)行轉(zhuǎn)換。文章來源地址http://www.zghlxwxcb.cn/news/detail-775783.html

到了這里,關(guān)于機(jī)器學(xué)習(xí)實(shí)戰(zhàn):Python基于LR線性回歸進(jìn)行預(yù)測(cè)(十)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包