欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python機器學習之線性回歸詳解

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

一、python機器學習–線性回歸

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

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

在這里插入圖片描述

二、OLS線性回歸

2.1 Ordinary Least Squares 最小二乘法

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

2.2 OLS線性回歸的代碼實現(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è)信譽評估'],axis=1)
target_data = data['企業(yè)信譽評估']
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è)信譽評估~銷項季度均值+有效發(fā)票比例+是否違約+企業(yè)供求關(guān)系+行業(yè)信譽度+銷項季度標準差",data=df_train).fit()
print(lr_model.summary())
# 預(yù)測測試集
lr_model.predict(X_test)

三、梯度下降算法

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

梯度學習算法可被描述為:

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

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

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

在這里插入圖片描述

3.1 GDLinearRegression代碼實現(xiàn)

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

四、多項式回歸分析

多項式回歸是研究一個因變量與一個或者多個自變量間多項式的回歸分析方法。

多項式回歸模型方程式如下:

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

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

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

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

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

#scikit-learn 多項式擬合(多元多項式回歸)
#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','立定跳遠','引仰']]
x_train, x_test, y_train, y_test = train_test_split(data_complete_,target, test_size=0.3)
# 多項式擬合
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ù)
# 測試集比較
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機器學習之線性回歸詳解的文章就介紹到這了,更多相關(guān)python線性回歸內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pytorch中LN(LayerNorm)及Relu和其變相的輸出操作

    pytorch中LN(LayerNorm)及Relu和其變相的輸出操作

    這篇文章主要介紹了pytorch中LN(LayerNorm)及Relu和其變相的輸出操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Django中如何用xlwt生成表格的方法步驟

    Django中如何用xlwt生成表格的方法步驟

    這篇文章主要介紹了Django中如何用xlwt生成表格的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Python實現(xiàn)多項式擬合正弦函數(shù)詳情

    Python實現(xiàn)多項式擬合正弦函數(shù)詳情

    這篇文章主要介紹了Python實現(xiàn)多項式擬合正弦函數(shù)詳情,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • torch.optim優(yōu)化算法理解之optim.Adam()解讀

    torch.optim優(yōu)化算法理解之optim.Adam()解讀

    這篇文章主要介紹了torch.optim優(yōu)化算法理解之optim.Adam()解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 簡單談?wù)凱ython中的幾種常見的數(shù)據(jù)類型

    簡單談?wù)凱ython中的幾種常見的數(shù)據(jù)類型

    Python 中的變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建。在 Python 中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內(nèi)存中對象的類型。
    2017-02-02
  • Python3.x中自定義比較函數(shù)

    Python3.x中自定義比較函數(shù)

    這篇文章主要介紹了Python3.x中自定義比較函數(shù),本文給出了自定義對象的比較、字典值value的比較實現(xiàn)方法,需要的朋友可以參考下
    2015-04-04
  • Python利用matplotlib.pyplot.boxplot()繪制箱型圖實例代碼

    Python利用matplotlib.pyplot.boxplot()繪制箱型圖實例代碼

    相信大家應(yīng)該都知道Python繪制箱線圖主要用matplotlib庫里pyplot模塊里的boxplot()函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python利用matplotlib.pyplot.boxplot()繪制箱型圖的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 詳細分析Python collections工具庫

    詳細分析Python collections工具庫

    這篇文章主要介紹了詳解Python collections工具庫的相關(guān)資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Pycharm中運行程序在Python?console中執(zhí)行,不是直接Run問題

    Pycharm中運行程序在Python?console中執(zhí)行,不是直接Run問題

    這篇文章主要介紹了Pycharm中運行程序在Python?console中執(zhí)行,不是直接Run問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python保存dict字典類型數(shù)據(jù)到Mysql并自動創(chuàng)建表與列

    Python保存dict字典類型數(shù)據(jù)到Mysql并自動創(chuàng)建表與列

    這篇文章主要介紹了Python保存dict字典類型數(shù)據(jù)到Mysql并自動創(chuàng)建表與列,字典是另一種可變?nèi)萜髂P?,且可存儲任意類型對象,想了解更多?nèi)容的小伙伴可以和小編一起進入下面文章學習更多內(nèi)容,希望對你有所幫助
    2022-02-02

最新評論