最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python機(jī)器學(xué)習(xí)之線性回歸詳解

 更新時(shí)間:2021年04月20日 08:49:53   作者:佩瑞  
這篇文章主要介紹了python機(jī)器學(xué)習(xí)之線性回歸詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下

一、python機(jī)器學(xué)習(xí)–線性回歸

線性回歸是最簡單的機(jī)器學(xué)習(xí)模型,其形式簡單,易于實(shí)現(xiàn),同時(shí)也是很多機(jī)器學(xué)習(xí)模型的基礎(chǔ)。

對(duì)于一個(gè)給定的訓(xùn)練集數(shù)據(jù),線性回歸的目的就是找到一個(gè)與這些數(shù)據(jù)最吻合的線性函數(shù)。

在這里插入圖片描述

二、OLS線性回歸

2.1 Ordinary Least Squares 最小二乘法

一般情況下,線性回歸假設(shè)模型為下,其中w為模型參數(shù)

在這里插入圖片描述

線性回歸模型通常使用MSE(均方誤差)作為損失函數(shù),假設(shè)有m個(gè)樣本,均方損失函數(shù)為:(所有實(shí)例預(yù)測(cè)值與實(shí)際值誤差平方的均值)

在這里插入圖片描述

由于模型的訓(xùn)練目標(biāo)為找到使得損失函數(shù)最小化的w,經(jīng)過一系列變換解得使損失函數(shù)達(dá)到最小值的w為:

在這里插入圖片描述

此時(shí)求得的w即為最優(yōu)模型參數(shù)

2.2 OLS線性回歸的代碼實(shí)現(xiàn)

#OLS線性回歸
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
%matplotlib inline
data = pd.DataFrame(pd.read_excel(r'C:/Users/15643/Desktop/附件1.xlsx'))
feature_data = data.drop(['企業(yè)信譽(yù)評(píng)估'],axis=1)
target_data = data['企業(yè)信譽(yù)評(píng)估']
X_train,X_test,y_train, y_test = train_test_split(feature_data, target_data, test_size=0.3)
from statsmodels.formula.api import ols
from statsmodels.sandbox.regression.predstd import wls_prediction_std
df_train = pd.concat([X_train,y_train],axis=1)
lr_model = ols("企業(yè)信譽(yù)評(píng)估~銷項(xiàng)季度均值+有效發(fā)票比例+是否違約+企業(yè)供求關(guān)系+行業(yè)信譽(yù)度+銷項(xiàng)季度標(biāo)準(zhǔn)差",data=df_train).fit()
print(lr_model.summary())
# 預(yù)測(cè)測(cè)試集
lr_model.predict(X_test)

三、梯度下降算法

很多機(jī)器學(xué)習(xí)算法的最優(yōu)參數(shù)不能通過像最小二乘法那樣的“閉式”方程直接計(jì)算,此時(shí)需要使用迭代優(yōu)化方法。

梯度學(xué)習(xí)算法可被描述為:

(1)根據(jù)當(dāng)前參數(shù)w計(jì)算損失函數(shù)梯度∇J( w )

(2)沿著梯度反方向−∇J( w )調(diào)整w,調(diào)整的大小稱之為步長,由學(xué)習(xí)率η控制w:= w−η∇J( w )

(3)反復(fù)執(zhí)行該過程,直到梯度為0或損失函數(shù)降低小于閾值,此時(shí)稱算法收斂。

在這里插入圖片描述

3.1 GDLinearRegression代碼實(shí)現(xiàn)

from linear_regression import GDLinearRegression
gd_lr = GDLinearRegression(n_iter=3000,eta=0.001,tol=0.00001)
#梯度下降最大迭代次數(shù)n_iter
#學(xué)習(xí)率eta
#損失降低閾值tol

四、多項(xiàng)式回歸分析

多項(xiàng)式回歸是研究一個(gè)因變量與一個(gè)或者多個(gè)自變量間多項(xiàng)式的回歸分析方法。

多項(xiàng)式回歸模型方程式如下:

hθ(x)=θ0+θ1x+θ2x2+...+θmxm

簡單來說就是在階數(shù)=k的情況下將每一個(gè)特征轉(zhuǎn)換為一個(gè)k階的多項(xiàng)式,這些多項(xiàng)式共同構(gòu)成了一個(gè)矩陣,將這個(gè)矩陣看作一個(gè)特征,由此多項(xiàng)式回歸模型就轉(zhuǎn)變成了簡單的線性回歸。以下為特征x的多項(xiàng)式轉(zhuǎn)變:

x−>[1,x,x2,x3...xk]

4.1 多項(xiàng)式回歸的代碼實(shí)現(xiàn)

python的多項(xiàng)式回歸需要導(dǎo)入PolynomialFeatures類實(shí)現(xiàn)

#scikit-learn 多項(xiàng)式擬合(多元多項(xiàng)式回歸)
#PolynomialFeatures和linear_model的組合 (線性擬合非線性)
#[x1,x2,x3]==[[1,x1,x1**2],[1,x2,x2**2],[1,x3,x3**2]]
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression,Perceptron
from sklearn.metrics import mean_squared_error,r2_score
from sklearn.model_selection import train_test_split
target = std_df_female['總分']
data_complete_ = std_df_female.loc[:,['1000/800','50m','立定跳遠(yuǎn)','引仰']]
x_train, x_test, y_train, y_test = train_test_split(data_complete_,target, test_size=0.3)
# 多項(xiàng)式擬合
poly_reg  =PolynomialFeatures(degree=2)
x_train_poly = poly_reg.fit_transform(x_train)
model = LinearRegression()
model.fit(x_train_poly, y_train)
#print(poly_reg.coef_,poly_reg.intercept_) #系數(shù)及常數(shù)
# 測(cè)試集比較
x_test_poly = poly_reg.fit_transform(x_test)
y_test_pred = model.predict(x_test_poly)
#mean_squared_error(y_true, y_pred) #均方誤差回歸損失,越小越好。
mse = np.sqrt(mean_squared_error(y_test, y_test_pred))
# r2 范圍[0,1],R2越接近1擬合越好。
r2 = r2_score(y_test, y_test_pred)
print(r2)

到此這篇關(guān)于python機(jī)器學(xué)習(xí)之線性回歸詳解的文章就介紹到這了,更多相關(guān)python線性回歸內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python進(jìn)行體育競(jìng)技分析(預(yù)測(cè)球隊(duì)成績)

    使用Python進(jìn)行體育競(jìng)技分析(預(yù)測(cè)球隊(duì)成績)

    這篇文章主要介紹了用Python進(jìn)行體育競(jìng)技分析(預(yù)測(cè)球隊(duì)成績),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • python實(shí)現(xiàn)貪吃蛇游戲源碼

    python實(shí)現(xiàn)貪吃蛇游戲源碼

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Pyhon Flask框架:第一個(gè)Flask程序

    Pyhon Flask框架:第一個(gè)Flask程序

    這篇文章主要介紹了Flask搭建虛擬環(huán)境并運(yùn)行第一個(gè)flask程序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • Python代碼連接到 Chat GPT API的方法

    Python代碼連接到 Chat GPT API的方法

    Chat GPT 由于其獨(dú)特、近乎準(zhǔn)確且類似人類的響應(yīng),如今在互聯(lián)網(wǎng)上引起了過多的討論,本文討論如何通過 Python 代碼連接到 Chat GPT API,感興趣的朋友一起看看吧
    2023-02-02
  • python裝飾器相當(dāng)于函數(shù)的調(diào)用方式

    python裝飾器相當(dāng)于函數(shù)的調(diào)用方式

    今天小編就為大家分享一篇python裝飾器相當(dāng)于函數(shù)的調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python?windows安裝cuda+cudnn+pytorch教程

    python?windows安裝cuda+cudnn+pytorch教程

    這篇文章主要介紹了python?windows安裝cuda+cudnn+pytorch教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • python基礎(chǔ)之函數(shù)的定義和調(diào)用

    python基礎(chǔ)之函數(shù)的定義和調(diào)用

    這篇文章主要介紹了python函數(shù)的定義和調(diào)用,實(shí)例分析了Python中返回一個(gè)返回值與多個(gè)返回值的方法,需要的朋友可以參考下
    2021-10-10
  • Python生成隨機(jī)數(shù)的方法詳解(最全)

    Python生成隨機(jī)數(shù)的方法詳解(最全)

    Python生成隨機(jī)數(shù)的方法有很多,譬如random模塊、NumPy庫、secrets模塊等。本文為大家整理了五個(gè)生成隨機(jī)數(shù)的方法(應(yīng)該是最全的了吧),希望對(duì)大家有所幫助
    2023-02-02
  • python對(duì)列進(jìn)行平移變換的方法(shift)

    python對(duì)列進(jìn)行平移變換的方法(shift)

    今天小編就為大家分享一篇python對(duì)列進(jìn)行平移變換的方法(shift),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 用python實(shí)現(xiàn)的去除win下文本文件頭部BOM的代碼

    用python實(shí)現(xiàn)的去除win下文本文件頭部BOM的代碼

    windows環(huán)境下新建或編輯文本文件,保存時(shí)會(huì)在頭部加上BOM。使用ftp上傳到linux下,在執(zhí)行時(shí)第一行即報(bào)錯(cuò)。以下方法可以去除BOM頭,有需要的朋友可以參考下
    2013-02-02

最新評(píng)論

镇平县| 桑日县| 昭平县| 平山县| 通渭县| 苗栗县| 洞口县| 象州县| 隆林| 金堂县| 东丽区| 九江市| 上思县| 和顺县| 定州市| 南开区| 拜城县| 巴中市| 冕宁县| 高陵县| 辽阳县| 乌兰察布市| 湟源县| 壤塘县| 齐齐哈尔市| 黑水县| 宿州市| 邮箱| 郴州市| 镇赉县| 得荣县| 辉南县| 天等县| 三都| 云龙县| 宜良县| 临汾市| 安康市| 福建省| 宕昌县| 连江县|