电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

基于 Python 實踐感知器分類算法

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

Perceptron是用于二進制分類任務的線性機器學習算法。它可以被認為是人工神經網絡的第一種和最簡單的類型之一。絕對不是“深度”學習,而是重要的組成部分。與邏輯回歸相似,它可以快速學習兩類分類任務在特征空間中的線性分離,盡管與邏輯回歸不同,它使用隨機梯度下降優化算法學習并且不預測校準概率。

在本教程中,您將發現Perceptron分類機器學習算法。完成本教程后,您將知道:

Perceptron分類器是一種線性算法,可以應用于二進制分類任務。 如何使用帶有Scikit-Learn的Perceptron模型進行擬合,評估和做出預測。 如何在給定的數據集上調整Perceptron算法的超參數。 教程概述

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

感知器算法 Perceptron與Scikit-學習 音調感知器超參數 感知器算法

Perceptron算法是兩類(二進制)分類機器學習算法。它是一種神經網絡模型,可能是最簡單的神經網絡模型類型。它由將一行數據作為輸入并預測類標簽的單個節點或神經元組成。這可以通過計算輸入的加權和和偏差(設置為1)來實現。模型輸入的加權總和稱為激活。

激活=權重*輸入+偏差

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

預測1:如果激活> 0.0

預測0:如果激活<= 0.0

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

權重(t + 1)=權重(t)+學習率*(expected_i ?預測值)* input_i

當模型所產生的誤差降至較低水平或不再改善時,或者執行了最大時期數時,訓練將停止。

模型權重的初始值設置為較小的隨機值。另外,在每個訓練紀元之前對訓練數據集進行混洗。這是設計使然,以加速和改善模型訓練過程。因此,學習算法是隨機的,并且每次運行都會獲得不同的結果。因此,優良作法是使用重復評估來總結算法在數據集上的性能,并報告平均分類精度。學習率和訓練時期數是算法的超參數,可以使用啟發式或超參數調整來設置。

現在我們已經熟悉了Perceptron算法,現在讓我們探索如何在Python中使用該算法。

Perceptron 與 Scikit-Learn

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

# define model model = Perceptron(eta0=1.0)

該實現還允許您配置訓練時期的總數(max_iter),默認為1,000。

# define model model = Perceptron(max_iter=1000)

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

# 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)

運行示例將創建數據集并確認數據集的行數和列數。

(1000, 10) (1000,)

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

# create the model model = Perceptron()

下面列出了為綜合二進制分類任務評估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)))

運行示例將在綜合數據集上評估Perceptron算法,并報告10倍交叉驗證的三個重復中的平均準確性。鑒于學習算法的隨機性,您的具體結果可能會有所不同。考慮運行該示例幾次。在這種情況下,我們可以看到該模型實現了約84.7%的平均準確度。

Mean Accuracy: 0.847 (0.052)

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

# 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)

運行示例將使模型適合模型并為新的數據行進行類標簽預測。

Predicted Class: 1

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

調整感知器超參數

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

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

下面的示例使用GridSearchCV類以及我們定義的值網格演示了這一點。

# 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))

運行示例將使用重復的交叉驗證來評估配置的每種組合。鑒于學習算法的隨機性,您的具體結果可能會有所不同。嘗試運行該示例幾次。在這種情況下,我們可以看到,學習率比默認值小會導致更好的性能,學習率0.0001和0.001均達到約85.7%的分類精度,而默認值1.0則達到約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}

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

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

我們將使用上次搜索中的良好學習率0.0001。

# define model model = Perceptron(eta0=0.0001)

下面列出了搜索訓練時期數的網格的完整示例。

# 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))

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

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 實踐感知器分類算法的詳細內容,更多關于Python 實踐感知器分類算法的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 浙江筋膜枪-按摩仪厂家-制造商-肩颈按摩仪哪家好-温州市合喜电子科技有限公司 | 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 直读光谱仪,光谱分析仪,手持式光谱仪,碳硫分析仪,创想仪器官网 | 昆山PCB加工_SMT贴片_PCB抄板_线路板焊接加工-昆山腾宸电子科技有限公司 | ISO9001认证咨询_iso9001企业认证代理机构_14001|18001|16949|50430认证-艾世欧认证网 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 工业rfid读写器_RFID工业读写器_工业rfid设备厂商-ANDEAWELL | 我车网|我关心的汽车资讯_汽车图片_汽车生活! | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 南京交通事故律师-专打交通事故的南京律师| 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 空气能采暖,热泵烘干机,空气源热水机组|设备|厂家,东莞高温热泵_正旭新能源 | 溶氧传感器-pH传感器|哈美顿(hamilton) | 实体店商新零售|微赢|波后|波后合作|微赢集团 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 股票入门基础知识_股票知识_股票投资大师_格雷厄姆网 | 铁素体测量仪/检测仪/铁素体含量测试仪-苏州圣光仪器有限公司 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 东风体检车厂家_公共卫生体检车_医院体检车_移动体检车-锦沅科贸 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 阜阳成人高考_阜阳成考报名时间_安徽省成人高考网 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 广西教师资格网-广西教师资格证考试网 | 土壤墒情监测站_土壤墒情监测仪_土壤墒情监测系统_管式土壤墒情站-山东风途物联网 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 阿米巴企业经营-阿米巴咨询管理-阿米巴企业培训-广东键锋企业管理咨询有限公司 | 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 14米地磅厂家价价格,150吨地磅厂家价格-百科 | 棕刚玉-白刚玉厂家价格_巩义市东翔净水材料厂 | 洛阳网站建设_洛阳网站优化_网站建设平台_洛阳香河网络科技有限公司 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 江西自考网| 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 直流大电流电源,燃料电池检漏设备-上海政飞 |