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

吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn)

這篇具有很好參考價(jià)值的文章主要介紹了吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


有一個(gè)開源的、商業(yè)上可用的機(jī)器學(xué)習(xí)工具包,叫做scikit-learn。這個(gè)工具包包含了你將在本課程中使用的許多算法的實(shí)現(xiàn)。

實(shí)驗(yàn)一

目標(biāo)

在本實(shí)驗(yàn)中,你將:利用scikit-learn實(shí)現(xiàn)使用梯度下降的線性回歸

工具

您將使用scikit-learn中的函數(shù)以及matplotlib和NumPy。

import numpy as np
np.set_printoptions(precision=2)
from sklearn.linear_model import LinearRegression, SGDRegressor
from sklearn.preprocessing import StandardScaler
from lab_utils_multi import  load_house_data
import matplotlib.pyplot as plt
dlblue = '#0096ff'; dlorange = '#FF9300'; dldarkred='#C00000'; dlmagenta='#FF40FF'; dlpurple='#7030A0'; 
plt.style.use('./deeplearning.mplstyle')

np.set_printoptions(precision=2) 的作用是告訴 NumPy 在打印數(shù)組時(shí)只保留浮點(diǎn)數(shù)的兩位小數(shù)。

梯度下降

Scikit-learn有一個(gè)梯度下降回歸模型sklearn.linear_model.SGDRegressor。與之前的梯度下降實(shí)現(xiàn)一樣,該模型在規(guī)范化輸入時(shí)表現(xiàn)最好。sklearn預(yù)處理。StandardScaler將執(zhí)行z-score歸一化在以前的實(shí)驗(yàn)室。這里它被稱為“標(biāo)準(zhǔn)分?jǐn)?shù)”。

加載數(shù)據(jù)集

X_train, y_train = load_house_data()
X_features = ['size(sqft)','bedrooms','floors','age']

縮放/規(guī)范化訓(xùn)練數(shù)據(jù)

scaler = StandardScaler()
X_norm = scaler.fit_transform(X_train)
print(f"Peak to Peak range by column in Raw        X:{np.ptp(X_train,axis=0)}")   
print(f"Peak to Peak range by column in Normalized X:{np.ptp(X_norm,axis=0)}")

吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn),機(jī)器學(xué)習(xí),線性回歸,scikit-learn

創(chuàng)建并擬合回歸模型

sgdr = SGDRegressor(max_iter=1000)
sgdr.fit(X_norm, y_train)
print(sgdr)
print(f"number of iterations completed: {sgdr.n_iter_}, number of weight updates: {sgdr.t_}")

這段代碼使用了 SGDRegressor 類來進(jìn)行線性回歸模型的訓(xùn)練和預(yù)測(cè)。
首先,通過 SGDRegressor(max_iter=1000) 創(chuàng)建了一個(gè)隨機(jī)梯度下降(SGD)回歸器對(duì)象 sgdr,并設(shè)置最大迭代次數(shù)為 1000。
然后,使用 sgdr.fit(X_norm, y_train) 對(duì)模型進(jìn)行擬合,其中 X_norm 是經(jīng)過標(biāo)準(zhǔn)化處理后的特征數(shù)據(jù),y_train 是對(duì)應(yīng)的目標(biāo)變量。
接著,通過 print(sgdr) 打印出 sgdr 對(duì)象的相關(guān)信息,包括模型參數(shù)和超參數(shù)等。
最后,使用 f-string 格式化字符串,打印出訓(xùn)練完成的迭代次數(shù) sgdr.n_iter_ 和權(quán)重更新次數(shù) sgdr.t_。

查看參數(shù)

注意,參數(shù)與規(guī)范化的輸入數(shù)據(jù)相關(guān)聯(lián)。擬合參數(shù)與之前使用該數(shù)據(jù)的實(shí)驗(yàn)室中發(fā)現(xiàn)的非常接近。

b_norm = sgdr.intercept_
w_norm = sgdr.coef_
print(f"model parameters:                   w: {w_norm}, b:{b_norm}")
print(f"model parameters from previous lab: w: [110.56 -21.27 -32.71 -37.97], b: 363.16")

吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn),機(jī)器學(xué)習(xí),線性回歸,scikit-learn

作出預(yù)測(cè)

預(yù)測(cè)訓(xùn)練數(shù)據(jù)的目標(biāo)。同時(shí)使用預(yù)測(cè)例程并使用w和b進(jìn)行計(jì)算。

# make a prediction using sgdr.predict()
y_pred_sgd = sgdr.predict(X_norm)
# make a prediction using w,b. 
y_pred = np.dot(X_norm, w_norm) + b_norm  
print(f"prediction using np.dot() and sgdr.predict match: {(y_pred == y_pred_sgd).all()}")

print(f"Prediction on training set:\n{y_pred[:4]}" )
print(f"Target values \n{y_train[:4]}")

吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn),機(jī)器學(xué)習(xí),線性回歸,scikit-learn

繪制結(jié)果

讓我們繪制預(yù)測(cè)值與目標(biāo)值的對(duì)比圖。

# plot predictions and targets vs original features    
fig,ax=plt.subplots(1,4,figsize=(12,3),sharey=True)
for i in range(len(ax)):
    ax[i].scatter(X_train[:,i],y_train, label = 'target')
    ax[i].set_xlabel(X_features[i])
    ax[i].scatter(X_train[:,i],y_pred,color=dlorange, label = 'predict')
ax[0].set_ylabel("Price"); ax[0].legend();
fig.suptitle("target versus prediction using z-score normalized model")
plt.show()

吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn),機(jī)器學(xué)習(xí),線性回歸,scikit-learn

恭喜

在這個(gè)實(shí)驗(yàn)中,你:利用開源機(jī)器學(xué)習(xí)工具包scikit-learn使用該工具包中的梯度下降和特征歸一化實(shí)現(xiàn)線性回歸

實(shí)驗(yàn)二

目標(biāo)

在本實(shí)驗(yàn)中,你將:利用scikit-learn實(shí)現(xiàn)基于正態(tài)方程的近似解線性回歸

工具

您將使用scikit-learn中的函數(shù)以及matplotlib和NumPy

import numpy as np
np.set_printoptions(precision=2)
from sklearn.linear_model import LinearRegression, SGDRegressor
from sklearn.preprocessing import StandardScaler
from lab_utils_multi import  load_house_data
import matplotlib.pyplot as plt
dlblue = '#0096ff'; dlorange = '#FF9300'; dldarkred='#C00000'; dlmagenta='#FF40FF'; dlpurple='#7030A0'; 
plt.style.use('./deeplearning.mplstyle')

線性回歸,閉式解

Scikit-learn具有線性回歸模型,實(shí)現(xiàn)了封閉形式的線性回歸。讓我們使用早期實(shí)驗(yàn)室的數(shù)據(jù)——一個(gè)1000平方英尺的房子賣了30萬美元,一個(gè)2000平方英尺的房子賣了50萬美元。
吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn),機(jī)器學(xué)習(xí),線性回歸,scikit-learn

加載數(shù)據(jù)集

X_train = np.array([1.0, 2.0])   #features
y_train = np.array([300, 500])   #target value

創(chuàng)建并擬合模型

下面的代碼使用scikit-learn執(zhí)行回歸。第一步創(chuàng)建一個(gè)回歸對(duì)象。第二步使用與對(duì)象相關(guān)的方法之一fit。這將執(zhí)行回歸,將參數(shù)擬合到輸入數(shù)據(jù)。該工具包需要一個(gè)二維X矩陣。

linear_model = LinearRegression()
#X must be a 2-D Matrix
linear_model.fit(X_train.reshape(-1, 1), y_train) 

吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn),機(jī)器學(xué)習(xí),線性回歸,scikit-learn

查看參數(shù)

在scikit-learn中,w和b參數(shù)被稱為“系數(shù)”和“截距”

b = linear_model.intercept_
w = linear_model.coef_
print(f"w = {w:}, b = {b:0.2f}")
print(f"'manual' prediction: f_wb = wx+b : {1200*w + b}")

吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn),機(jī)器學(xué)習(xí),線性回歸,scikit-learn

作出預(yù)測(cè)

調(diào)用predict函數(shù)生成預(yù)測(cè)。

y_pred = linear_model.predict(X_train.reshape(-1, 1))

print("Prediction on training set:", y_pred)

X_test = np.array([[1200]])
print(f"Prediction for 1200 sqft house: ${linear_model.predict(X_test)[0]:0.2f}")

吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn),機(jī)器學(xué)習(xí),線性回歸,scikit-learn

第二個(gè)例子

第二個(gè)例子來自早期的一個(gè)具有多個(gè)特征的實(shí)驗(yàn)。最終的參數(shù)值和預(yù)測(cè)非常接近該實(shí)驗(yàn)室非標(biāo)準(zhǔn)化“長期”的結(jié)果。這種不正常的運(yùn)行需要幾個(gè)小時(shí)才能產(chǎn)生結(jié)果,而這幾乎是瞬間的。封閉形式的解決方案在諸如此類的較小數(shù)據(jù)集上工作得很好,但在較大的數(shù)據(jù)集上可能需要計(jì)算。

封閉形式的解不需要規(guī)范化

# load the dataset
X_train, y_train = load_house_data()
X_features = ['size(sqft)','bedrooms','floors','age']
linear_model = LinearRegression()
linear_model.fit(X_train, y_train) 

吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn),機(jī)器學(xué)習(xí),線性回歸,scikit-learn

b = linear_model.intercept_
w = linear_model.coef_
print(f"w = {w:}, b = {b:0.2f}")

吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn),機(jī)器學(xué)習(xí),線性回歸,scikit-learn
這里的權(quán)重1和權(quán)重4,相對(duì)于權(quán)重2和權(quán)重3太小,不知道為什么這里不舍去

print(f"Prediction on training set:\n {linear_model.predict(X_train)[:4]}" )
print(f"prediction using w,b:\n {(X_train @ w + b)[:4]}")
print(f"Target values \n {y_train[:4]}")

x_house = np.array([1200, 3,1, 40]).reshape(-1,4)
x_house_predict = linear_model.predict(x_house)[0]
print(f" predicted price of a house with 1200 sqft, 3 bedrooms, 1 floor, 40 years old = ${x_house_predict*1000:0.2f}")

吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn),機(jī)器學(xué)習(xí),線性回歸,scikit-learn

恭喜

在這個(gè)實(shí)驗(yàn)中,你:利用開源機(jī)器學(xué)習(xí)工具包scikit-learn使用該工具包中的接近形式的解決方案實(shí)現(xiàn)線性回歸文章來源地址http://www.zghlxwxcb.cn/news/detail-839797.html

到了這里,關(guān)于吳恩達(dá)機(jī)器學(xué)習(xí)-可選實(shí)驗(yàn):使用ScikitLearn進(jìn)行線性回歸(Linear Regression using Scikit-Learn)的文章就介紹完了。如果您還想了解更多內(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)文章

  • 【機(jī)器學(xué)習(xí)】機(jī)器學(xué)習(xí)筆記(吳恩達(dá))

    【機(jī)器學(xué)習(xí)】機(jī)器學(xué)習(xí)筆記(吳恩達(dá))

    https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes https://www.bilibili.com/video/BV164411b7dx?p=4 https://study.163.com/course/courseLearn.htm?courseId=1210076550#/learn/video?lessonId=1280912351courseId=1210076550 定義機(jī)器學(xué)習(xí)為:在進(jìn)行特定編程的情況下,給予計(jì)算機(jī) 學(xué)習(xí)能力的領(lǐng)域。目前存在幾種不同類型的學(xué)習(xí)算

    2024年02月06日
    瀏覽(51)
  • 機(jī)器學(xué)習(xí)(吳恩達(dá)第一課)

    機(jī)器學(xué)習(xí)(吳恩達(dá)第一課)

    課程鏈接 從給出“正確答案”的數(shù)據(jù)集中學(xué)習(xí) 1、回歸(Regression) 2、分類(Classification) 總結(jié) 1.術(shù)語。 2.單變量線性回歸 平方誤差代價(jià)函數(shù) 梯度下降算法選擇不同的起點(diǎn),可能會(huì)得到不同的結(jié)果,因?yàn)樗玫降氖且粋€(gè)局部最小值。 1、學(xué)習(xí)率 2、用于線性回歸的梯度下降 線性回

    2024年02月09日
    瀏覽(23)
  • 吳恩達(dá)機(jī)器學(xué)習(xí)2022-Jupyter-機(jī)器學(xué)習(xí)實(shí)例

    吳恩達(dá)機(jī)器學(xué)習(xí)2022-Jupyter-機(jī)器學(xué)習(xí)實(shí)例

    在這個(gè)實(shí)驗(yàn)室里: 探索特征工程和多項(xiàng)式回歸,它可以讓你使用線性回歸機(jī)制來適應(yīng)非常復(fù)雜,甚至非常非線性的函數(shù)。 您將利用在以前的實(shí)驗(yàn)中開發(fā)的函數(shù)以及matplotlib和NumPy。 線性回歸提供了一種模型方法,公式形式為: 如果您的特性/數(shù)據(jù)是非線性的或者是特性的組合,該

    2024年02月16日
    瀏覽(18)
  • 吳恩達(dá)《機(jī)器學(xué)習(xí)》1-4:無監(jiān)督學(xué)習(xí)

    吳恩達(dá)《機(jī)器學(xué)習(xí)》1-4:無監(jiān)督學(xué)習(xí)

    一、無監(jiān)督學(xué)習(xí) 無監(jiān)督學(xué)習(xí)就像你拿到一堆未分類的東西,沒有標(biāo)簽告訴你它們是什么,然后你的任務(wù)是自己找出它們之間的關(guān)系或者分成不同的組,而不依賴于任何人給你關(guān)于這些東西的指導(dǎo)。 以聚類為例,無監(jiān)督學(xué)習(xí)算法可以將數(shù)據(jù)點(diǎn)分成具有相似特征的群組,而不需

    2024年02月07日
    瀏覽(23)
  • 吳恩達(dá)《機(jī)器學(xué)習(xí)》5-6:向量化

    吳恩達(dá)《機(jī)器學(xué)習(xí)》5-6:向量化

    在深度學(xué)習(xí)和數(shù)值計(jì)算中,效率和性能是至關(guān)重要的。一個(gè)有效的方法是使用向量化技術(shù),它可以顯著提高計(jì)算速度,減少代碼的復(fù)雜性。接下來將介紹向量化的概念以及如何在不同編程語言和工具中應(yīng)用它,包括 Octave、MATLAB、Python、NumPy、C和C++。 一、什么是向量化? 向量

    2024年02月05日
    瀏覽(23)
  • 吳恩達(dá)機(jī)器學(xué)習(xí)2022-Jupyter

    吳恩達(dá)機(jī)器學(xué)習(xí)2022-Jupyter

    在這個(gè)實(shí)驗(yàn)室中,您將擴(kuò)展數(shù)據(jù)結(jié)構(gòu)和以前開發(fā)的例程,以支持多個(gè)特性。一些程序被更新使得實(shí)驗(yàn)室看起來很長,但是它對(duì)以前的程序做了一些小的調(diào)整使得它可以很快的回顧。 擴(kuò)展我們的回歸模型例程以支持多個(gè)特性 擴(kuò)展數(shù)據(jù)結(jié)構(gòu)以支持多個(gè)特性 重寫預(yù)測(cè),成本和梯度

    2024年02月16日
    瀏覽(15)
  • 【機(jī)器學(xué)習(xí)】吳恩達(dá)課程1-Introduction

    【機(jī)器學(xué)習(xí)】吳恩達(dá)課程1-Introduction

    計(jì)算機(jī)程序從經(jīng)驗(yàn)E中學(xué)習(xí),解決某一任務(wù)T,進(jìn)行某一性能P,通過P測(cè)定在T上的表現(xiàn)因經(jīng)驗(yàn)E而提高。 跳棋程序 E:程序自身下的上萬盤棋局 T:下跳棋 P:與新對(duì)手下跳棋時(shí)贏的概率 給算法一個(gè)數(shù)據(jù)集,其中包含了正確答案,算法的目的是給出更多的正確答案。 (1)預(yù)測(cè)房價(jià)

    2024年02月16日
    瀏覽(24)
  • 吳恩達(dá)《機(jī)器學(xué)習(xí)》2-2->2-4:代價(jià)函數(shù)

    吳恩達(dá)《機(jī)器學(xué)習(xí)》2-2->2-4:代價(jià)函數(shù)

    一、代價(jià)函數(shù)的概念 代價(jià)函數(shù)是在監(jiān)督學(xué)習(xí)中用于評(píng)估模型的性能和幫助選擇最佳模型參數(shù)的重要工具。它表示了模型的預(yù)測(cè)輸出與實(shí)際目標(biāo)值之間的差距,即建模誤差。代價(jià)函數(shù)的目標(biāo)是找到使建模誤差最小化的模型參數(shù)。 二、代價(jià)函數(shù)的理解 訓(xùn)練集數(shù)據(jù) :假設(shè)我們有一

    2024年02月07日
    瀏覽(29)
  • 關(guān)于吳恩達(dá)機(jī)器學(xué)習(xí)中反向傳播的理解

    在機(jī)器學(xué)習(xí)視頻反向傳播章節(jié) [1] 中: 我們用 (delta) 來表示誤差,則: (boldsymboldelta^{left(4right)}=boldsymbol a^{left(4right)}?boldsymbol y) 。我們利用這個(gè)誤差值來計(jì)算前一層的誤差: (boldsymboldelta^{left(3right)}=left(boldsymbolTheta^{left(3right)}right)^Tboldsymboldelta^{left(4rig

    2024年02月01日
    瀏覽(23)
  • 吳恩達(dá)471機(jī)器學(xué)習(xí)入門課程1第3周——邏輯回歸

    吳恩達(dá)471機(jī)器學(xué)習(xí)入門課程1第3周——邏輯回歸

    實(shí)施邏輯回歸并將其應(yīng)用于兩個(gè)不同的數(shù)據(jù)集。 在這一部分中,你將建立一個(gè)邏輯回歸模型來預(yù)測(cè)學(xué)生是否被大學(xué)錄取。 2.1、問題描述 假設(shè)你是一所大學(xué)部門的管理員,并且想要根據(jù)每個(gè)申請(qǐng)人在兩次考試中的成績來確定他們被錄取的機(jī)會(huì)。 你有先前申請(qǐng)者的歷史數(shù)據(jù),可

    2024年02月09日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包