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