日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[机器学习]回归--Polinomial Regression 多项式回归

發(fā)布時(shí)間:2023/12/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [机器学习]回归--Polinomial Regression 多项式回归 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先我們需要明確一個(gè)概念,我們討論的線性或者非線性針對(duì)的是自變量的系數(shù),而非自變量本身,所以這樣的話(huà)不管自變量如何變化,自變量的系數(shù)如果符合線性我們就說(shuō)這是線性的。所以這里我們也就可以描述一下多項(xiàng)式線性回歸。

由此公式我們可以看出,自變量只有一個(gè),就是x,只不過(guò)x的級(jí)數(shù)(degree)不同而已。

我們這次用的數(shù)據(jù)是公司內(nèi)部不同的promotion level所對(duì)應(yīng)的薪資


下面我們來(lái)看一下在Python中是如何實(shí)現(xiàn)的

import numpy as np import matplotlib.pyplot as plt import pandas as pddataset = pd.read_csv('Position_Salaries.csv') X = dataset.iloc[:, 1:2].values # 這里注意:1:2其實(shí)只有第一列,與1 的區(qū)別是這表示的是一個(gè)matrix矩陣,而非單一向量。 y = dataset.iloc[:, 2].values

接下來(lái),進(jìn)入正題,開(kāi)始多項(xiàng)式線性回歸:

from sklearn.preprocessing import PolynomialFeatures poly_reg = PolynomialFeatures(degree = 1) #degree 就是自變量需要的維度 X_poly = poly_reg.fit_transform(X) lin_reg_2 = LinearRegression() lin_reg_2.fit(X_poly, y)

這個(gè)過(guò)程我們?cè)O(shè)置了一元一次的自變量:degree=1 意思是自變量只有一次,相當(dāng)于簡(jiǎn)單線性回歸
我們?cè)趫D像中表示一下:

# 圖像中顯示 plt.scatter(X, y, color = 'red') plt.plot(X, lin_reg_2.predict(poly_reg.fit_transform(X)), color = 'blue') plt.title('Truth or Bluff (Polynomial Regression)') plt.xlabel('Position level') plt.ylabel('Salary') plt.show()

此圖像與用簡(jiǎn)單線性回歸表示的圖像是一樣的

# 簡(jiǎn)單線性回歸 圖像中顯示 plt.scatter(X, y, color = 'red') plt.plot(X, lin_reg.predict(X), color = 'blue') plt.title('Truth or Bluff (Linear Regression)') plt.xlabel('Position level') plt.ylabel('Salary') plt.show()

下面我們?cè)囍淖円幌戮S度,將degree設(shè)置成2,其他不改變,執(zhí)行一下代碼看看圖像:

我們可以發(fā)現(xiàn)整個(gè)趨勢(shì)符合數(shù)據(jù)的分布。

我們將degree改成3 和 4 看看結(jié)果

我們可以發(fā)現(xiàn),當(dāng)degree=4的時(shí)候,基本上已經(jīng)符合所有點(diǎn)的分布了

我們通過(guò)拆分橫坐標(biāo)將圖像變得平滑一些:

X_grid = np.arange(min(X), max(X), 0.1) X_grid = X_grid.reshape((len(X_grid), 1)) plt.scatter(X, y, color = 'red') plt.plot(X_grid, lin_reg_2.predict(poly_reg.fit_transform(X_grid)), color = 'blue') plt.title('Truth or Bluff (Polynomial Regression)') plt.xlabel('Position level') plt.ylabel('Salary') plt.show()

下面我們給出一個(gè)測(cè)試值來(lái)試試結(jié)果 (6,10)

lin_reg_2.predict(poly_reg.fit_transform(6)) lin_reg_2.predict(poly_reg.fit_transform(10))

與實(shí)際值還是比較接近的。

總結(jié)

以上是生活随笔為你收集整理的[机器学习]回归--Polinomial Regression 多项式回归的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。