網(wǎng)站性能檢測(cè)評(píng)分
注:本網(wǎng)站頁(yè)面html檢測(cè)工具掃描網(wǎng)站中存在的基本問題,僅供參考。
python新手項(xiàng)目
使用Python,創(chuàng)建你的第一個(gè)實(shí)用型入門機(jī)器學(xué)習(xí)項(xiàng)目(下) 行業(yè)視頻課程
注:本文分上、下兩部分,本章是教程的下半部分。
你可以通過下面的鏈接找到上半部分的教程內(nèi)容:
“使用Python,創(chuàng)建你的第一個(gè)實(shí)用型入門機(jī)器學(xué)習(xí)項(xiàng)目(上)”
https://toutiao/i6529328389931663875/
4. 可視化數(shù)據(jù)集
我們現(xiàn)在對(duì)數(shù)據(jù)有一個(gè)基本的想法,我們需要用一些可視化來擴(kuò)展它。
我們要看看兩種類型的情節(jié):
使用單變量繪圖以更好地理解各個(gè)屬性
使用多變量繪圖以更好地理解各個(gè)屬性之間的關(guān)系
4.1 單變量情節(jié)
我們從一些單變量圖開始,即每個(gè)變量的圖。
鑒于輸入變量是數(shù)字,我們可以創(chuàng)建每個(gè)變量的箱-線圖。
# 箱-線圖
dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)
plt.show()
這使我們對(duì)輸入屬性的分布有了更清晰的認(rèn)識(shí):
箱-線圖
我們還可以創(chuàng)建每個(gè)輸入變量的直方圖(即矩陣圖),以了解分布情況。
# 直方圖
dataset.hist()
plt.show()
看起來似乎兩個(gè)輸入變量有一個(gè)高斯分布,這點(diǎn)很有用,因?yàn)槲覀兛梢允褂盟惴▉眚?yàn)證這種假設(shè)。
直方圖
4.2 多變量圖
現(xiàn)在我們可以看看變量之間的相互作用。
首先,我們來看看所有對(duì)屬性的散點(diǎn)圖, 這有助于發(fā)現(xiàn)輸入變量之間的結(jié)構(gòu)關(guān)系。
# 散點(diǎn)圖矩陣
scatter_matrix(dataset)
plt.show()
請(qǐng)注意一些屬性對(duì)的對(duì)角線分組,這表明高度相關(guān)性和可預(yù)測(cè)的關(guān)系。
散點(diǎn)圖矩陣
5 評(píng)估算法
現(xiàn)在是時(shí)候創(chuàng)建一些數(shù)據(jù)模型,并估計(jì)它們對(duì)未查看數(shù)據(jù)的準(zhǔn)確性。
以下是我們將在此步驟中涵蓋的內(nèi)容:
分離出驗(yàn)證數(shù)據(jù)集。
設(shè)置測(cè)試工具以使用10倍交叉驗(yàn)證。
建立5種不同的模型來預(yù)測(cè)花朵測(cè)量的物種
選擇最好的模型。
5.1 創(chuàng)建一個(gè)驗(yàn)證數(shù)據(jù)集
我們將使用統(tǒng)計(jì)方法來估計(jì)我們?cè)诳床灰姷臄?shù)據(jù)上創(chuàng)建的模型的準(zhǔn)確性, 我們還希望通過對(duì)實(shí)際看不見的數(shù)據(jù)進(jìn)行評(píng)估,更準(zhǔn)確地估計(jì)未見數(shù)據(jù)的最佳模型的準(zhǔn)確性,我們需要知道我們創(chuàng)建的模型是好的。
也就是說,我們將阻止一些算法無(wú)法看到的數(shù)據(jù),我們將使用這些數(shù)據(jù)獲得第二個(gè)獨(dú)立的想法,即最佳模型實(shí)際可能有多準(zhǔn)確。我們將加載的數(shù)據(jù)集分成兩部分,其中80%用于訓(xùn)練我們的模型,20%用作驗(yàn)證數(shù)據(jù)集。
# 拆分驗(yàn)證數(shù)據(jù)集
array=dataset.values
X=array[:,0:4]
Y=array[:,4]
validation_size=0.20
seed=7
X_train,X_validation,Y_train,Y_validation=model_selection.train_test_split(X,Y,test_size=validation_size,random_state=seed)
您現(xiàn)在已經(jīng)在X_train和Y_train中準(zhǔn)備了用于準(zhǔn)備模型的訓(xùn)練數(shù)據(jù)以及稍后可以使用的X_validation和Y_validation集。
5.2 測(cè)試
我們將使用10倍交叉驗(yàn)證來估計(jì)準(zhǔn)確性。
這將把我們的數(shù)據(jù)集分成10個(gè)部分,在9上進(jìn)行訓(xùn)練并在1上進(jìn)行測(cè)試,并對(duì)列車測(cè)試分組的所有組合進(jìn)行重復(fù)。
#測(cè)試選項(xiàng)和評(píng)估指標(biāo)
seed=7
scoring='accuracy'
我們正在使用“準(zhǔn)確度”度量來評(píng)估模型。 這是正確預(yù)測(cè)的實(shí)例數(shù)量除以數(shù)據(jù)集中的實(shí)例總數(shù)乘以100得到的百分比(例如95%準(zhǔn)確)的比率。 當(dāng)我們運(yùn)行構(gòu)建并接下來評(píng)估每個(gè)模型時(shí),我們將使用評(píng)分變量。
5.3 構(gòu)建模型
我們不知道哪種算法在這個(gè)問題上很好,或者使用哪種配置。 我們從這些圖中得到一些想法,即某些類在某些維度上可以部分線性分離,所以我們期望通常會(huì)有很好的結(jié)果。
我們來評(píng)估6種不同的算法:
Logistic回歸(LR)
線性判別分析(LDA)
K-最近鄰居(KNN)。
分類和回歸樹(CART)。
高斯樸素貝葉斯(NB)。
支持向量機(jī)(SVM)。
這是簡(jiǎn)單線性(LR和LDA),非線性(KNN,CART,NB和SVM)算法的良好混合。 我們?cè)诿看芜\(yùn)行之前重置隨機(jī)數(shù)種子,以確保使用完全相同的數(shù)據(jù)拆分執(zhí)行每個(gè)算法的評(píng)估。 它確保結(jié)果可以直接比較。
讓我們來構(gòu)建和評(píng)估我們的五個(gè)模型:
# Spot Check Algorithms
models = []
models.append(('LR', LogisticRegression()))
models.append(('LDA', LinearDiscriminantAnalysis()))
models.append(('KNN', KNeighborsClassifier()))
models.append(('CART', DecisionTreeClassifier()))
models.append(('NB', GaussianNB()))
models.append(('SVM', SVC()))
# evaluate each model in turn
results = []
names = []
for name, model in models:
kfold = model_selection.KFold(n_splits=10, random_state=seed)
cv_results = model_selection.cross_val_score(model, X_train, Y_train, cv=kfold, scoring=scoring)
results.append(cv_results)
names.append(name)
msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std())
print(msg)
5.4 選擇最佳模型
我們現(xiàn)在有6個(gè)模型和準(zhǔn)確度估計(jì)值。 我們需要將模型相互比較并選擇最準(zhǔn)確的模型。
運(yùn)行上面的例子,我們得到以下原始結(jié)果:
LR: 0.966667 (0.040825)
LDA: 0.975000 (0.038188)
KNN: 0.983333 (0.033333)
CART: 0.975000 (0.038188)
NB: 0.975000 (0.053359)
SVM: 0.991667 (0.025000)
我們可以看到,它看起來像KNN具有最大的估計(jì)準(zhǔn)確性。
我們還可以創(chuàng)建模型評(píng)估結(jié)果的圖表,并比較每個(gè)模型的差異和平均準(zhǔn)確度。 每種算法都有一組準(zhǔn)確性度量,因?yàn)槊糠N算法都進(jìn)行了10次評(píng)估(10次交叉驗(yàn)證)。
# 算法比較
fig = plt.figure()
fig.suptitle('Algorithm Comparison')
ax = fig.add_subplot(111)
plt.boxplot(results)
ax.set_xticklabels(names)
plt.show()
您可以看到盒子和線須塊在范圍的頂部被壓扁,許多樣品達(dá)到100%的準(zhǔn)確度。
算法比較
6 預(yù)測(cè)
KNN算法是我們測(cè)試的最精確的模型。 現(xiàn)在我們想要了解我們驗(yàn)證集上模型的準(zhǔn)確性。
這將使我們對(duì)最佳模型的準(zhǔn)確性進(jìn)行獨(dú)立的最終檢查。 為了防止在訓(xùn)練過程中發(fā)生故障(如過度訓(xùn)練集或數(shù)據(jù)泄漏),保留驗(yàn)證集非常有用。 兩者都會(huì)導(dǎo)致過于樂觀的結(jié)果。
我們可以直接在驗(yàn)證集上運(yùn)行KNN模型,并將結(jié)果匯總為最終準(zhǔn)確度分?jǐn)?shù),混淆矩陣和分類報(bào)告。
# 在驗(yàn)證數(shù)據(jù)集上做預(yù)測(cè)
knn = KNeighborsClassifier()
knn.fit(X_train, Y_train)
predictions = knn.predict(X_validation)
print(accuracy_score(Y_validation, predictions))
print(confusion_matrix(Y_validation, predictions))
print(classification_report(Y_validation, predictions))
我們可以看到準(zhǔn)確度為0.9或90%。 混淆矩陣提供了三個(gè)錯(cuò)誤的指示。 最后,分類報(bào)告按精度,召回率,f1分?jǐn)?shù)和支持顯示出色的結(jié)果(授予驗(yàn)證數(shù)據(jù)集很?。┨峁┟總€(gè)類的分類。
6 你可以使用Python進(jìn)行機(jī)器學(xué)習(xí)
通過上面的教程,這將需要109到20分鐘,最多!你就可以對(duì)機(jī)器學(xué)習(xí)有個(gè)比較全面的了解!
你不需要了解一切。 (至少不是現(xiàn)在)你的目標(biāo)是貫穿教程的端到端并得到結(jié)果。你不需要了解第一遍的所有內(nèi)容。當(dāng)你走的時(shí)候列出你的問題。大量使用Python中的幫助(“FunctionName”)幫助語(yǔ)法來了解您正在使用的所有功能。
你不需要知道算法是如何工作的。了解限制和如何配置機(jī)器學(xué)習(xí)算法是很重要的。但是關(guān)于算法的學(xué)習(xí)可能會(huì)晚一些。您需要在很長(zhǎng)一段時(shí)間內(nèi)慢慢建立這種算法知識(shí)。今天,首先要讓平臺(tái)變得舒適。
你不需要成為一名Python程序員。如果你是新手,Python語(yǔ)言的語(yǔ)法可以是直觀的。就像其他語(yǔ)言一樣,關(guān)注函數(shù)調(diào)用(例如function())和賦值(例如a =“b”)。這會(huì)讓你獲得最大的成就。你是一名開發(fā)人員,你知道如何快速掌握一門語(yǔ)言的基礎(chǔ)知識(shí)。剛開始,稍后再深入細(xì)節(jié)。
你不需要成為機(jī)器學(xué)習(xí)專家。您可以稍后了解各種算法的優(yōu)點(diǎn)和局限性,并且您可以稍后閱讀大量文章,以了解機(jī)器學(xué)習(xí)項(xiàng)目的步驟以及使用交叉驗(yàn)證評(píng)估準(zhǔn)確性的重要性。
機(jī)器學(xué)習(xí)項(xiàng)目中的其他步驟如何?我們沒有涵蓋機(jī)器學(xué)習(xí)項(xiàng)目中的所有步驟,因?yàn)檫@是您的第一個(gè)項(xiàng)目,我們需要關(guān)注關(guān)鍵步驟。即,加載數(shù)據(jù),查看數(shù)據(jù),評(píng)估一些算法并做出一些預(yù)測(cè)。
結(jié)束語(yǔ)
在這篇文章中,你逐步發(fā)現(xiàn)了如何用Python完成你的第一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目。
您發(fā)現(xiàn)從加載數(shù)據(jù)到做出預(yù)測(cè)完成一個(gè)小型的端到端項(xiàng)目是熟悉新平臺(tái)的最佳途徑。
下一步
你是否練習(xí)了本教程所有步驟?
列出你遇到的問題,發(fā)布在下面的評(píng)論中,我們可以一起探討。
關(guān)注我的頭條,分享知識(shí)!
2018年最火的5大Python開源項(xiàng)目,總有適合你的! 互聯(lián)網(wǎng)視頻課程
前幾天看到一條新聞,說是高中生課程里面開設(shè)python課程了,這小孩子都來?yè)屨际袌?chǎng)了,這就是打了很多人的臉,特別是已經(jīng)畢業(yè)很多年或者正在學(xué)校的人,小孩子都作為標(biāo)準(zhǔn)的教材來學(xué)習(xí)了,作為過來人還有什么理由說學(xué)不好。讓自己做得多說的少最合適。
說到python現(xiàn)在處于風(fēng)口期,相對(duì)來說入門也比較容易。在人工智能以及大數(shù)據(jù)分析上都具備很強(qiáng)的特性。
Python語(yǔ)言易學(xué)易學(xué),高效開發(fā)。Python語(yǔ)言開發(fā)的開源項(xiàng)目非?;钴S。下面是五個(gè)最活躍的Python開源項(xiàng)目。
1)排名第一,當(dāng)然是關(guān)于機(jī)器學(xué)習(xí)谷歌開源項(xiàng)目tensorflow,TensorFlow是一個(gè)對(duì)數(shù)值計(jì)算的數(shù)據(jù)流圖,對(duì)開源項(xiàng)目的統(tǒng)計(jì),這個(gè)項(xiàng)目被宣布與一百萬(wàn)星和叉,被廣泛應(yīng)用于機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)研究。
2)第二個(gè)地方是python的新燒瓶。燒瓶是一個(gè)小型的Python Web開發(fā)框架。它是基于WSGI工具箱和jinja2模板引擎,它可以配置和開發(fā)Python網(wǎng)站最靈活快速的。
3。)第三的地方是在Python Web方向的經(jīng)典Django,和Django Web框架,采用m-v-t設(shè)計(jì)模式。在Django,由于控制器接受用戶輸入部分由框架本身的處理,所以Django編程更側(cè)重于模型(模型)、模板(模板)和視圖(視圖)。小編推薦一個(gè)學(xué)Python的學(xué)習(xí)裙【五八八,零九零,九四二】,無(wú)論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有很多干貨和技術(shù)分享使用Django,我們可以快速創(chuàng)建高質(zhì)量、易維護(hù)、數(shù)據(jù)庫(kù)驅(qū)動(dòng)的Web服務(wù)程序,特別是與學(xué)生建立數(shù)據(jù)庫(kù)的操作不是很熟悉,寶。
4)是Python的成熟,功能齊全的排在功能測(cè)試框架pytest pytest測(cè)試框架第四,可以幫助你更好的編寫自動(dòng)化測(cè)試程序,它可以適應(yīng)全功能測(cè)試,集成測(cè)試復(fù)雜,從簡(jiǎn)單的單元測(cè)試,以及眾多的支持插件開發(fā)。
5)在數(shù)據(jù)收集工具Scrapy排名第五,Scrapy是一個(gè)優(yōu)秀的數(shù)據(jù)網(wǎng)絡(luò)爬蟲框架,用戶只需要定制幾個(gè)模塊的開發(fā)可以實(shí)現(xiàn)完美的網(wǎng)絡(luò)爬蟲容易,使用它來抓取網(wǎng)頁(yè)內(nèi)容的數(shù)據(jù)和各種圖像文件等非常方便;Scrapy還提供各種履帶式基礎(chǔ)的類型,如basespider和站點(diǎn);Scrapy被廣泛應(yīng)用于數(shù)據(jù)挖掘、網(wǎng)絡(luò)監(jiān)控和自動(dòng)測(cè)試等。
以上排名是基于代碼提交和叉活動(dòng)的排名,只反映了開源代碼的流行,企業(yè)市場(chǎng)應(yīng)用不熱,注意差異,你必須根據(jù)自己的需要選擇適合你的項(xiàng)目的python開源框架和工具。
不管你是懷著什么目的,求職加薪,或者是興趣。首先你得準(zhǔn)備吃苦的思想準(zhǔn)備。學(xué)編程語(yǔ)言是枯燥的,得持之以恒。如果學(xué)python都是從入門到放棄,那么學(xué)其它東西會(huì)更難。
還需要有些自學(xué)能力,出現(xiàn)問題,自己嘗試解決。多加練習(xí),在練習(xí)和不斷挫折中理解和掌握,熟能生巧。
不要急躁,真正能為你所用的技能,不是一朝一夕速成的。真正能被你吸收的養(yǎng)分,不是別人嚼爛了給你。你自己體會(huì)到的知識(shí),才會(huì)被你吸收,在大腦里停留許久。
10大Python開源項(xiàng)目推薦 企業(yè)視頻課程
▌Rank 1:Requests-HTML v0.9(7385 stars on Github,來自Kenneth Reitz)
該庫(kù)旨在盡可能簡(jiǎn)單直觀地解析 HTML,僅支持 Python 3.6。
項(xiàng)目地址:https://github/kennethreitz/requests-html
▌Rank 2:PyTest v3.5(2453 stars on Github,來自Pytest-dev)
該項(xiàng)目是一個(gè)可擴(kuò)展的 Python 框架,可以輕松編寫小型測(cè)試,支持更復(fù)雜的功能測(cè)試。
項(xiàng)目地址:https://github/pytest-dev/pytest
▌Rank 3:Lector(327 stars on Github,來自BasioMeusPuga)
基于 Qt 的電子書閱讀器
項(xiàng)目地址:https://github/BasioMeusPuga/Lector
▌Rank 4:Asciinema v2.0(5491 stars on Github,來自Asciinema)
Python 編寫的終端會(huì)話錄制器。
項(xiàng)目地址:https://github/asciinema/asciinema
▌Rank 5:Snips-nlu v0.13(1416 stars on Github,來自Snips)
Snips-nlu 是一個(gè) Python 庫(kù),可以解析用自然語(yǔ)言編寫的句子并提取結(jié)構(gòu)化信息。
項(xiàng)目地址:https://github/snipsco/snips-nlu
▌Rank 6:Black(1665 stars on Github,來自u(píng)kasz Langa)
Python 代碼格式化工具庫(kù)。
項(xiàng)目地址:https://github/ambv/black
▌Rank 7:Instagram-terminal-news-feed(690 stars on Github,來自Bill Cheng)
Instagram Terminal Feed
項(xiàng)目地址:https://github/billcccheng/instagram-terminal-news-feed
▌Rank 8:Makesite(481 stars on Github,來自Sunaina Pai)
適合 Python 工程師的簡(jiǎn)單、輕量級(jí)靜態(tài)網(wǎng)站/博客生成器。
項(xiàng)目地址:https://github/sunainapai/makesite
▌Rank 9:Twitter-scraper(832 stars on Github,來自Kenneth Reitz)
Python 寫的 Twitter 爬蟲工具,無(wú) API 流速限制,非常高效,可輕松獲取任何用戶的推文。
項(xiàng)目地址:https://github/kennethreitz/twitter-scraper
▌Rank 10:Fast-Pandas(667 stars on Github,來自M. Mansour)
Pandas 是為數(shù)據(jù)科學(xué)家和開發(fā)人員提供的最靈活、最強(qiáng)大的工具之一。開發(fā)者可通過幾種方式執(zhí)行特定的任務(wù)。Fast-Pandas 旨在針對(duì)這些情況下的不同可用方法進(jìn)行基準(zhǔn)測(cè)試。此外,在 numpy 和 pandas 中都有專門的功能部分。
項(xiàng)目地址:https://github/mm-mansour/Fast-Pandas
原文地址:https://medium.mybridge.co/python-top-10-open-source-of-the-month-v-apr-2018-9e91343756a