日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

基于 Python 實(shí)踐感知器分類算法

瀏覽:35日期:2022-06-30 10:36:02

Perceptron是用于二進(jìn)制分類任務(wù)的線性機(jī)器學(xué)習(xí)算法。它可以被認(rèn)為是人工神經(jīng)網(wǎng)絡(luò)的第一種和最簡單的類型之一。絕對(duì)不是“深度”學(xué)習(xí),而是重要的組成部分。與邏輯回歸相似,它可以快速學(xué)習(xí)兩類分類任務(wù)在特征空間中的線性分離,盡管與邏輯回歸不同,它使用隨機(jī)梯度下降優(yōu)化算法學(xué)習(xí)并且不預(yù)測校準(zhǔn)概率。

在本教程中,您將發(fā)現(xiàn)Perceptron分類機(jī)器學(xué)習(xí)算法。完成本教程后,您將知道:

Perceptron分類器是一種線性算法,可以應(yīng)用于二進(jìn)制分類任務(wù)。 如何使用帶有Scikit-Learn的Perceptron模型進(jìn)行擬合,評(píng)估和做出預(yù)測。 如何在給定的數(shù)據(jù)集上調(diào)整Perceptron算法的超參數(shù)。 教程概述

本教程分為3個(gè)部分,共三個(gè)部分。他們是:

感知器算法 Perceptron與Scikit-學(xué)習(xí) 音調(diào)感知器超參數(shù) 感知器算法

Perceptron算法是兩類(二進(jìn)制)分類機(jī)器學(xué)習(xí)算法。它是一種神經(jīng)網(wǎng)絡(luò)模型,可能是最簡單的神經(jīng)網(wǎng)絡(luò)模型類型。它由將一行數(shù)據(jù)作為輸入并預(yù)測類標(biāo)簽的單個(gè)節(jié)點(diǎn)或神經(jīng)元組成。這可以通過計(jì)算輸入的加權(quán)和和偏差(設(shè)置為1)來實(shí)現(xiàn)。模型輸入的加權(quán)總和稱為激活。

激活=權(quán)重*輸入+偏差

如果激活高于0.0,則模型將輸出1.0;否則,模型將輸出1.0。否則,將輸出0.0。

預(yù)測1:如果激活> 0.0

預(yù)測0:如果激活<= 0.0

假設(shè)輸入已乘以模型系數(shù),如線性回歸和邏輯回歸,則優(yōu)良作法是在使用模型之前對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化或標(biāo)準(zhǔn)化。感知器是線性分類算法。這意味著它將學(xué)習(xí)在特征空間中使用一條線(稱為超平面)將兩個(gè)類別分開的決策邊界。因此,適用于那些類別可以通過線性或線性模型(稱為線性可分離)很好地分離的問題。該模型的系數(shù)稱為輸入權(quán)重,并使用隨機(jī)梯度下降優(yōu)化算法進(jìn)行訓(xùn)練。一次將來自訓(xùn)練數(shù)據(jù)集的示例顯示給模型,模型進(jìn)行預(yù)測并計(jì)算誤差。然后,更新模型的權(quán)重以減少示例的誤差。這稱為Perceptron更新規(guī)則。對(duì)于訓(xùn)練數(shù)據(jù)集中的所有示例(稱為時(shí)期)都重復(fù)此過程。然后,使用示例更新模型的過程會(huì)重復(fù)很多次。在每批中,使用較小比例的誤差來更新模型權(quán)重,并且該比例由稱為學(xué)習(xí)率的超參數(shù)控制,通常將其設(shè)置為較小的值。這是為了確保學(xué)習(xí)不會(huì)太快發(fā)生,從而導(dǎo)致技能水平可能較低,這被稱為模型權(quán)重的優(yōu)化(搜索)過程的過早收斂。

權(quán)重(t + 1)=權(quán)重(t)+學(xué)習(xí)率*(expected_i ?預(yù)測值)* input_i

當(dāng)模型所產(chǎn)生的誤差降至較低水平或不再改善時(shí),或者執(zhí)行了最大時(shí)期數(shù)時(shí),訓(xùn)練將停止。

模型權(quán)重的初始值設(shè)置為較小的隨機(jī)值。另外,在每個(gè)訓(xùn)練紀(jì)元之前對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行混洗。這是設(shè)計(jì)使然,以加速和改善模型訓(xùn)練過程。因此,學(xué)習(xí)算法是隨機(jī)的,并且每次運(yùn)行都會(huì)獲得不同的結(jié)果。因此,優(yōu)良作法是使用重復(fù)評(píng)估來總結(jié)算法在數(shù)據(jù)集上的性能,并報(bào)告平均分類精度。學(xué)習(xí)率和訓(xùn)練時(shí)期數(shù)是算法的超參數(shù),可以使用啟發(fā)式或超參數(shù)調(diào)整來設(shè)置。

現(xiàn)在我們已經(jīng)熟悉了Perceptron算法,現(xiàn)在讓我們探索如何在Python中使用該算法。

Perceptron 與 Scikit-Learn

可通過Perceptron類在scikit-learn Python機(jī)器學(xué)習(xí)庫中使用Perceptron算法。該類允許您配置學(xué)習(xí)率(eta0),默認(rèn)為1.0。

# define model model = Perceptron(eta0=1.0)

該實(shí)現(xiàn)還允許您配置訓(xùn)練時(shí)期的總數(shù)(max_iter),默認(rèn)為1,000。

# define model model = Perceptron(max_iter=1000)

Perceptron算法的scikit-learn實(shí)現(xiàn)還提供了您可能想探索的其他配置選項(xiàng),例如提前停止和使用懲罰損失。我們可以通過一個(gè)有效的示例來演示Perceptron分類器。首先,讓我們定義一個(gè)綜合分類數(shù)據(jù)集。我們將使用make_classification()函數(shù)創(chuàng)建一個(gè)包含1,000個(gè)示例的數(shù)據(jù)集,每個(gè)示例包含20個(gè)輸入變量。該示例創(chuàng)建并匯總了數(shù)據(jù)集。

# test classification dataset from sklearn.datasets import make_classification # define dataset X, y = make_classification(n_samples=1000, n_features=10, n_informative=10, n_redundant=0, random_state=1) # summarize the dataset print(X.shape, y.shape)

運(yùn)行示例將創(chuàng)建數(shù)據(jù)集并確認(rèn)數(shù)據(jù)集的行數(shù)和列數(shù)。

(1000, 10) (1000,)

我們可以通過 RepeatedStratifiedKFold類使用重復(fù)的分層k折交叉驗(yàn)證來擬合和評(píng)估Perceptron模型。我們將在測試裝置中使用10折和3次重復(fù)。

# create the model model = Perceptron()

下面列出了為綜合二進(jìn)制分類任務(wù)評(píng)估Perceptron模型的完整示例。

# evaluate a perceptron model on the dataset from numpy import mean from numpy import std from sklearn.datasets import make_classification from sklearn.model_selection import cross_val_score from sklearn.model_selection import RepeatedStratifiedKFold from sklearn.linear_model import Perceptron # define dataset X, y = make_classification(n_samples=1000, n_features=10, n_informative=10, n_redundant=0, random_state=1) # define model model = Perceptron() # define model evaluation method cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1) # evaluate model scores = cross_val_score(model, X, y, scoring=’accuracy’, cvcv=cv, n_jobs=-1) # summarize result print(’Mean Accuracy: %.3f (%.3f)’ % (mean(scores), std(scores)))

運(yùn)行示例將在綜合數(shù)據(jù)集上評(píng)估Perceptron算法,并報(bào)告10倍交叉驗(yàn)證的三個(gè)重復(fù)中的平均準(zhǔn)確性。鑒于學(xué)習(xí)算法的隨機(jī)性,您的具體結(jié)果可能會(huì)有所不同。考慮運(yùn)行該示例幾次。在這種情況下,我們可以看到該模型實(shí)現(xiàn)了約84.7%的平均準(zhǔn)確度。

Mean Accuracy: 0.847 (0.052)

我們可能決定使用Perceptron分類器作為最終模型,并對(duì)新數(shù)據(jù)進(jìn)行預(yù)測。這可以通過在所有可用數(shù)據(jù)上擬合模型管道并調(diào)用傳遞新數(shù)據(jù)行的predict()函數(shù)來實(shí)現(xiàn)。我們可以通過下面列出的完整示例進(jìn)行演示。

# make a prediction with a perceptron model on the dataset from sklearn.datasets import make_classification from sklearn.linear_model import Perceptron # define dataset X, y = make_classification(n_samples=1000, n_features=10, n_informative=10, n_redundant=0, random_state=1) # define model model = Perceptron() # fit model model.fit(X, y) # define new data row = [0.12777556,-3.64400522,-2.23268854,-1.82114386,1.75466361,0.1243966,1.03397657,2.35822076,1.01001752,0.56768485] # make a prediction yhat = model.predict([row]) # summarize prediction print(’Predicted Class: %d’ % yhat)

運(yùn)行示例將使模型適合模型并為新的數(shù)據(jù)行進(jìn)行類標(biāo)簽預(yù)測。

Predicted Class: 1

接下來,我們可以看一下配置模型的超參數(shù)。

調(diào)整感知器超參數(shù)

必須為您的特定數(shù)據(jù)集配置Perceptron算法的超參數(shù)。也許最重要的超參數(shù)是學(xué)習(xí)率。較高的學(xué)習(xí)速度可能會(huì)使模型學(xué)習(xí)速度加快,但可能是以降低技能為代價(jià)的。較小的學(xué)習(xí)率可以得到性能更好的模型,但是訓(xùn)練模型可能需要很長時(shí)間。您可以在本教程中了解有關(guān)探索學(xué)習(xí)率的更多信息:訓(xùn)練深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)時(shí)如何配置學(xué)習(xí)率通常以較小的對(duì)數(shù)刻度(例如1e-4(或更小)和1.0)測試學(xué)習(xí)率。在這種情況下,我們將測試以下值:

# define grid grid = dict() grid[’eta0’] = [0.0001, 0.001, 0.01, 0.1, 1.0]

下面的示例使用GridSearchCV類以及我們定義的值網(wǎng)格演示了這一點(diǎn)。

# grid search learning rate for the perceptron from sklearn.datasets import make_classification from sklearn.model_selection import GridSearchCV from sklearn.model_selection import RepeatedStratifiedKFold from sklearn.linear_model import Perceptron # define dataset X, y = make_classification(n_samples=1000, n_features=10, n_informative=10, n_redundant=0, random_state=1) # define model model = Perceptron() # define model evaluation method cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1) # define grid grid = dict() grid[’eta0’] = [0.0001, 0.001, 0.01, 0.1, 1.0] # define search search = GridSearchCV(model, grid, scoring=’accuracy’, cvcv=cv, n_jobs=-1) # perform the search results = search.fit(X, y) # summarize print(’Mean Accuracy: %.3f’ % results.best_score_) print(’Config: %s’ % results.best_params_) # summarize all means = results.cv_results_[’mean_test_score’] params = results.cv_results_[’params’] for mean, param in zip(means, params): print('>%.3f with: %r' % (mean, param))

運(yùn)行示例將使用重復(fù)的交叉驗(yàn)證來評(píng)估配置的每種組合。鑒于學(xué)習(xí)算法的隨機(jī)性,您的具體結(jié)果可能會(huì)有所不同。嘗試運(yùn)行該示例幾次。在這種情況下,我們可以看到,學(xué)習(xí)率比默認(rèn)值小會(huì)導(dǎo)致更好的性能,學(xué)習(xí)率0.0001和0.001均達(dá)到約85.7%的分類精度,而默認(rèn)值1.0則達(dá)到約84.7%的精度。

Mean Accuracy: 0.857 Config: {’eta0’: 0.0001} >0.857 with: {’eta0’: 0.0001} >0.857 with: {’eta0’: 0.001} >0.853 with: {’eta0’: 0.01} >0.847 with: {’eta0’: 0.1} >0.847 with: {’eta0’: 1.0}

另一個(gè)重要的超參數(shù)是使用多少個(gè)時(shí)期來訓(xùn)練模型。這可能取決于訓(xùn)練數(shù)據(jù)集,并且可能相差很大。同樣,我們將以1到1e + 4的對(duì)數(shù)刻度探索配置值。

# define grid grid = dict() grid[’max_iter’] = [1, 10, 100, 1000, 10000]

我們將使用上次搜索中的良好學(xué)習(xí)率0.0001。

# define model model = Perceptron(eta0=0.0001)

下面列出了搜索訓(xùn)練時(shí)期數(shù)的網(wǎng)格的完整示例。

# grid search total epochs for the perceptron from sklearn.datasets import make_classification from sklearn.model_selection import GridSearchCV from sklearn.model_selection import RepeatedStratifiedKFold from sklearn.linear_model import Perceptron # define dataset X, y = make_classification(n_samples=1000, n_features=10, n_informative=10, n_redundant=0, random_state=1) # define model model = Perceptron(eta0=0.0001) # define model evaluation method cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1) # define grid grid = dict() grid[’max_iter’] = [1, 10, 100, 1000, 10000] # define search search = GridSearchCV(model, grid, scoring=’accuracy’, cvcv=cv, n_jobs=-1) # perform the search results = search.fit(X, y) # summarize print(’Mean Accuracy: %.3f’ % results.best_score_) print(’Config: %s’ % results.best_params_) # summarize all means = results.cv_results_[’mean_test_score’] params = results.cv_results_[’params’] for mean, param in zip(means, params): print('>%.3f with: %r' % (mean, param))

運(yùn)行示例將使用重復(fù)的交叉驗(yàn)證來評(píng)估配置的每種組合。鑒于學(xué)習(xí)算法的隨機(jī)性,您的具體結(jié)果可能會(huì)有所不同。嘗試運(yùn)行該示例幾次。在這種情況下,我們可以看到從10到10,000的時(shí)間段,分類精度幾乎相同。一個(gè)有趣的例外是探索同時(shí)配置學(xué)習(xí)率和訓(xùn)練時(shí)期的數(shù)量,以查看是否可以獲得更好的結(jié)果。

Mean Accuracy: 0.857 Config: {’max_iter’: 10} >0.850 with: {’max_iter’: 1} >0.857 with: {’max_iter’: 10} >0.857 with: {’max_iter’: 100} >0.857 with: {’max_iter’: 1000} >0.857 with: {’max_iter’: 10000}

以上就是基于 Python 實(shí)踐感知器分類算法的詳細(xì)內(nèi)容,更多關(guān)于Python 實(shí)踐感知器分類算法的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲日本国产| 日韩成人午夜精品| 欧美日韩尤物久久| 亚洲精品视频一二三区| 欧美精品导航| 国户精品久久久久久久久久久不卡| 久久精品青草| 88久久精品| 九色精品91| 久久男人av| 视频一区视频二区中文字幕| 久久99蜜桃| 亚洲精品一二三**| 欧美成人基地 | 精品国产乱码| 视频一区二区三区入口| 日韩欧美国产精品综合嫩v| 欧美一区成人| 亚洲激情精品| 久久精品国产999大香线蕉| 日韩中文字幕在线一区| 91av亚洲| 精品久久久亚洲| 欧美激情网址| 久久精品99久久久| 欧美aa在线观看| 私拍精品福利视频在线一区| 麻豆91小视频| 久久国内精品| 日韩黄色在线观看| 久久亚洲色图| 美日韩精品视频| 午夜在线一区二区| 久久久精品五月天| 电影亚洲精品噜噜在线观看| 国产精品不卡| 97精品国产福利一区二区三区| 国产亚洲一区二区三区不卡| 国产欧美另类| 日韩精品久久理论片| 日本不卡的三区四区五区| 亚洲欧洲日韩精品在线| 中文字幕av一区二区三区人| 亚洲aa在线| 欧美午夜三级| 国产精品最新自拍| 日韩一二三区在线观看| 蜜臀va亚洲va欧美va天堂| 五月天久久777| 免费国产亚洲视频| 日韩精品一区二区三区免费视频| 日本91福利区| 另类专区亚洲| 国产午夜精品一区二区三区欧美 | 免费日韩精品中文字幕视频在线| 午夜在线观看免费一区| 日本亚洲三级在线| 国产剧情一区| 99国产精品一区二区| 午夜久久影院| 国产日韩一区二区三区在线播放| 国产一区二区三区四区五区传媒| 日本少妇一区| 欧美在线看片| 激情欧美日韩一区| 国产欧美精品久久| 精品一区免费| 久久亚州av| 中文字幕一区二区三区日韩精品| 国产精品流白浆在线观看| 欧美aa国产视频| 国产精品a级| 99在线|亚洲一区二区| 久久久久九九精品影院| 亚洲www啪成人一区二区| 亚洲三区欧美一区国产二区| 国产粉嫩在线观看| 亚洲精品一二| 久久国产成人午夜av影院宅| 日韩av电影一区| 亚洲国产福利| 欧美日韩一区二区综合| 国产精品4hu.www| 亚洲欧美日韩国产综合精品二区| 六月丁香综合在线视频| 日韩激情网站| 亚洲午夜免费| 亚洲精华国产欧美| а√天堂8资源中文在线| 亚洲综合激情在线| 亚洲福利国产| 精品国产第一福利网站| 亚洲欧美在线专区| 伊人成人在线视频| 色婷婷狠狠五月综合天色拍| 国产毛片精品| 日韩一区二区三区精品| 精品一区免费| 中文另类视频| 久久伦理在线| 成人看片网站| 日韩高清不卡| 色婷婷久久久| 久久精品亚洲欧美日韩精品中文字幕| 国产精品男女| 你懂的亚洲视频| 久久xxx视频| 福利片在线一区二区| 国产一区二区三区国产精品| 欧美激情91| 一区二区国产在线观看| 亚洲最新无码中文字幕久久| 欧美精品aa| 精品国产一区二区三区性色av| 国产精品xxx在线观看| 国产精品中文字幕制服诱惑| 欧美国产另类| 激情国产在线| 欧美91福利在线观看| 蜜桃精品在线| 久久亚洲影院| 蜜臀久久久99精品久久久久久| 1024精品久久久久久久久| 国产在线欧美| 亚洲精品免费观看| 美腿丝袜亚洲一区| 四虎国产精品免费观看| 日韩在线观看不卡| 美女网站久久| 欧美91在线| 亚洲国产成人精品女人| 老色鬼久久亚洲一区二区| 91综合久久爱com| 久久字幕精品一区| 国产精品乱战久久久| 久久久水蜜桃av免费网站| 视频一区日韩精品| 国产成人精选| 亚洲欧美网站在线观看| 伊人久久国产| 日韩va亚洲va欧美va久久| 98精品视频| 亚洲影院天堂中文av色| 超级白嫩亚洲国产第一| 石原莉奈在线亚洲二区| а√天堂8资源在线| 日本午夜精品一区二区三区电影| 性感美女一区二区在线观看| 激情综合网址| 久久精品理论片| 亚洲精品九九| 亚洲精品一区二区妖精| 老司机免费视频一区二区| 美女精品在线| 亚洲国产专区| 久久久久久一区二区| 国产日韩一区二区三区在线| 国产麻豆综合| 天堂资源在线亚洲| 日韩久久视频| 精品欧美视频| 国产精品www.| 国产精品亚洲欧美一级在线| 日韩精品中文字幕一区二区| 亚洲欧美日本国产| 国产一区二区三区亚洲综合| 日韩福利视频导航| 亚洲精品人人| 蜜臀av在线播放一区二区三区| 午夜久久黄色| 国产精品免费看| 高潮一区二区| 国产福利一区二区三区在线播放| 欧美久久精品| 国产日产高清欧美一区二区三区| 最新国产精品久久久| 日韩三级精品| 国产日产高清欧美一区二区三区 | 久久国产中文字幕| 亚洲精品在线观看91| 国产精品视区| 日韩av网站在线观看| 国产欧美69| 精品免费av| 伊人久久大香线蕉av不卡| 欧美精品九九| 日韩成人av影视| 国产一区二区三区不卡视频网站| 国产精品xxx| 欧美sm一区| 久久国产88| 三级欧美在线一区| 老司机久久99久久精品播放免费| 国产成人精品一区二区三区免费 | 精品国产18久久久久久二百| 日本不良网站在线观看| 欧美理论视频| 日韩国产欧美三级| 国产69精品久久| 亚洲视频播放|