小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Pick一下?Python機(jī)器學(xué)習(xí)實(shí)用技巧

 博采簡(jiǎn)納 2018-05-09

雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題Some Essential Hacks and Tricks for Machine Learning with Python,作者為T(mén)irthajyoti Sarkar。

翻譯 | 趙朋飛 Noodlesslee 整理 | 凡江

我們Pick了一些用Python進(jìn)行機(jī)器學(xué)習(xí)實(shí)踐的基本技巧。

我是一名計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)的學(xué)生。我怎么才能入門(mén)機(jī)器學(xué)習(xí)/深度學(xué)習(xí)/人工智能?

入門(mén)機(jī)器學(xué)習(xí)從來(lái)不是一件簡(jiǎn)單的事。除了成熟的MOOC,網(wǎng)絡(luò)上還有海量的免費(fèi)資源,這里列舉了一些曾經(jīng)對(duì)我有幫助的資源:

  1. 從YouTube上的一些精彩的視頻開(kāi)始入門(mén)。讀一些優(yōu)秀的教材或文章。例如,你讀過(guò)《 終極算法: 機(jī)器學(xué)習(xí)和人工智能如何重塑世界 》嗎?并且我敢保證,你會(huì)深深的愛(ài)上這本書(shū)里有關(guān)機(jī)器學(xué)習(xí)的精彩頁(yè)面。
  2. 首先要明確區(qū)分相關(guān)術(shù)語(yǔ)——機(jī)器學(xué)習(xí)、人工智能、深度學(xué)習(xí)、數(shù)據(jù)科學(xué)、計(jì)算機(jī)視覺(jué)、機(jī)器人。閱讀或聆聽(tīng)專(zhuān)家的講座。觀看Brandon Rohrer的精彩視頻,他是一位很有影響力的數(shù)據(jù)科學(xué)家, 這些視頻清晰的講述了數(shù)據(jù)科學(xué)相關(guān)概念的定義和區(qū)別。
  3. 清楚知道自己學(xué)習(xí)想要達(dá)到的目標(biāo)。然后,學(xué)習(xí)Coursera的課程,或者一些來(lái)自華盛頓大學(xué)的課程,也是不錯(cuò)的選擇。
  4. 關(guān)注一些優(yōu)秀的博客: KDnuggets,Mark Meloon的博客,是關(guān)于數(shù)據(jù)科學(xué)的,Brandon Rohrer的博客,Open AI的博客,主要是關(guān)于他們的研究的。
  5. 如果你對(duì)在線(xiàn)mooc課程充滿(mǎn)熱情,不妨看看這篇文章的指導(dǎo)。
  6. 最重要的是,培養(yǎng)一種感覺(jué)。加入一些好的社交論壇, 但是要抵制住誘惑,不要去關(guān)注那些聳人聽(tīng)聞的標(biāo)題和新聞內(nèi)容。 做你自己的閱讀,了解它是什么,它不是什么,它可能去哪里,它會(huì)有什么樣的可能性。 然后坐下來(lái)思考如何將機(jī)器學(xué)習(xí)或者將數(shù)據(jù)科學(xué)原理應(yīng)用到日常工作中。 建立一個(gè)簡(jiǎn)單的回歸模型來(lái)預(yù)測(cè)下一頓午餐的成本,或者從電力公司那里下載你的用電數(shù)據(jù),然后在Excel中做一個(gè)簡(jiǎn)單的時(shí)間序列圖來(lái)發(fā)現(xiàn)一些用電規(guī)律。 在您完全沉迷于機(jī)器學(xué)習(xí)之后,可以看看這個(gè)視頻。

對(duì)于機(jī)器學(xué)習(xí)/人工智能,Python是一款優(yōu)秀的語(yǔ)言嗎?

除非你是一個(gè)研究復(fù)雜算法的純理論證明的博士研究員,否則你將主要使用現(xiàn)有的機(jī)器學(xué)習(xí)算法,并將它們應(yīng)用于解決新問(wèn)題。這就需要你懂得如何編程。

關(guān)于“最優(yōu)秀的數(shù)據(jù)科學(xué)語(yǔ)言”有很多爭(zhēng)論。當(dāng)爭(zhēng)論激烈的時(shí)候,停下來(lái)讀讀這篇有見(jiàn)地的文章,了解你的想法,看看你的選擇。或者,看看 KDnuggets 的文章。目前,大家普遍認(rèn)為,從開(kāi)發(fā)到部署及維護(hù),Python可以幫助開(kāi)發(fā)人員更有效率。與 Java、C 和 C++ 相比,Python 的語(yǔ)法更簡(jiǎn)單,更高級(jí)。 它擁有充滿(mǎn)活力的社區(qū),開(kāi)源文化,數(shù)以百計(jì)高質(zhì)量的機(jī)器學(xué)習(xí)程序庫(kù),以及來(lái)自行業(yè)巨頭的鼎力支持(例如:谷歌,Dropbox,Airbnb 等)。這篇文章會(huì)關(guān)注PythonIt應(yīng)用于機(jī)器學(xué)習(xí)上的相關(guān)基本技巧。

需要了解及掌握的基礎(chǔ)程序庫(kù)

為使機(jī)器學(xué)習(xí)實(shí)踐效率更高,你需要掌握一些 Python 核心庫(kù)。這些庫(kù)簡(jiǎn)單介紹如下。

Numpy

Numerical Python 的縮寫(xiě),NumPy 是采用 Python 進(jìn)行科學(xué)計(jì)算和數(shù)據(jù)分析所必須的基本程序庫(kù)。幾乎所有的高級(jí)工具都是基于 Numpy 構(gòu)建的,例如 Pandas 和 scikit-learn。 TensorFlow 使用 Numpy數(shù)組作為基礎(chǔ)構(gòu)件模塊,基于此,為深度學(xué)習(xí)任務(wù)構(gòu)建了 Tensor 對(duì)象和 graphflow 。很多 Numpy 操作都是用 C 實(shí)現(xiàn)的,這使它運(yùn)行更快。對(duì)數(shù)據(jù)科學(xué)和現(xiàn)代機(jī)器學(xué)習(xí)任務(wù)來(lái)說(shuō),這是一個(gè)寶貴的優(yōu)勢(shì)。

Pandas

這是 Python 科學(xué)計(jì)算領(lǐng)域進(jìn)行通用數(shù)據(jù)分析方面最流行的庫(kù)。Pandas 基于 Numpy 數(shù)組構(gòu)建,因此保留了計(jì)算速度快的特性,并且提供了很多數(shù)據(jù)工程領(lǐng)域的功能,包括:

  • 可以讀/寫(xiě)多種不同的數(shù)據(jù)格式;
  • 選擇數(shù)據(jù)子集;
  • 跨行列計(jì)算;
  • 查找并填充缺失的數(shù)據(jù);
  • 將操作應(yīng)用到數(shù)據(jù)中的獨(dú)立組 ;
  • 將數(shù)據(jù)重組成不同的形式;
  • 合并多個(gè)數(shù)據(jù)集;
  • 高級(jí)的時(shí)序功能;
  • 通過(guò) Matplotlib 和 Seaborn 實(shí)現(xiàn)可視化;

Matplotlib 與 Seaborn

數(shù)據(jù)可視化和善于用數(shù)據(jù)表達(dá)是每一位數(shù)據(jù)科學(xué)家應(yīng)有的基本技能,這些技能可以有效傳達(dá)從分析中獲得的信息。這對(duì)于掌握并精通機(jī)器學(xué)習(xí)是非常重要的,在你的機(jī)器學(xué)習(xí)工作流(ML Pipeline)中也是如此。在決定應(yīng)用特定的ML算法之前,您需要對(duì)數(shù)據(jù)集進(jìn)行探索性分析。

Matplotlib 是應(yīng)用最廣泛的2維可視化庫(kù),它擁有令人眼花繚亂的數(shù)組命令和接口,能夠從數(shù)據(jù)生成高質(zhì)量的圖表。這里有一個(gè)非常詳細(xì)和內(nèi)容豐富的文章,可以幫你入門(mén) Matplotlib 。

Seaborn 是另一個(gè)非常棒的專(zhuān)注于統(tǒng)計(jì)繪圖的可視化庫(kù)。機(jī)器學(xué)習(xí)從業(yè)者是值得學(xué)習(xí)的。在 Matplotlib 基礎(chǔ)之上,Seaborn 提供 API (具備繪圖樣式和顏色默認(rèn)的靈活選擇),針對(duì)常見(jiàn)的統(tǒng)計(jì)繪圖類(lèi)型它定義簡(jiǎn)單的高級(jí)函數(shù),針對(duì) Pandas 庫(kù)可以無(wú)縫對(duì)接。這里有一份適合初學(xué)者的很棒的 Seaborn 教程。

Seaborn plots的例子

Scikit-learn

Scikit-learn 是必備的最重要的常見(jiàn) Python 的機(jī)器學(xué)習(xí)包。它支持多種分類(lèi)、回歸和聚類(lèi)算法,包括支持向量機(jī)、隨機(jī)森林、梯度提升、k-means 和 DBSCAN 。Scikit-learn 可與 NumPy 庫(kù) SciPy 庫(kù)交互操作。它通過(guò)一致界面提供一系列的監(jiān)督和非監(jiān)督算法。Scikit-learn 庫(kù)致力于實(shí)現(xiàn)一定程度的健壯性和支持生產(chǎn)實(shí)踐中的使用。這意味著要深入關(guān)注例如易于使用,代碼質(zhì)量,協(xié)作,文檔和性能等問(wèn)題。可以看看這篇關(guān)于Scikit-learn使用的機(jī)器學(xué)習(xí)詞匯的簡(jiǎn)單介紹。這里是另一篇文章,演示了使用 Scikit-learn 的簡(jiǎn)單機(jī)器學(xué)習(xí)管道方法。這里有另一篇使用Scikit-learn演示簡(jiǎn)單的機(jī)器學(xué)習(xí)方法的文章。

Scikit-learn背后的閃光點(diǎn)

針對(duì)機(jī)器學(xué)習(xí)初學(xué)者和經(jīng)驗(yàn)豐富的專(zhuān)業(yè)人士,Scikit-learn 是非常容易上手的包。然而,即使是非常有經(jīng)驗(yàn)的ML從業(yè)人員也可能沒(méi)有意識(shí)到這個(gè)包背后所有的的閃光點(diǎn),它們可以顯著提升效率。我試圖展示scikit-learn中少為人知的方法/接口。

管道:它可以將多個(gè) estimators 封裝成一個(gè)。處理數(shù)據(jù)過(guò)程中通常有一系列固定步驟所以它非常有用,例如特征選擇、規(guī)范化和分類(lèi)。這里有份教程供深入了解。

網(wǎng)格搜索:超參數(shù)不是在estimators直接學(xué)習(xí)到的參數(shù)。在 scikit-learn 中它們作為參數(shù)傳遞給估計(jì)類(lèi)的構(gòu)造函數(shù)。搜索超參數(shù)空間以便獲得最好交叉驗(yàn)證分?jǐn)?shù)是可行且被推薦的做法。當(dāng)構(gòu)建 estimators 時(shí)待估的任何參數(shù)都可以用這種方式優(yōu)化。點(diǎn)擊這里閱讀更多信息。

驗(yàn)證曲線(xiàn):每個(gè) estimator 都有其優(yōu)缺點(diǎn)。泛化誤差可依據(jù)偏差,方差和噪音分解。estimators 的偏差是不同訓(xùn)練集的平均誤差。estimators 的方差表示其對(duì)改變訓(xùn)練集有多敏感。噪音是數(shù)據(jù)的一個(gè)屬性。繪制單個(gè)超參數(shù)在訓(xùn)練集和驗(yàn)證集的分?jǐn)?shù),以確定某些超參數(shù)估計(jì)量是過(guò)擬合還是欠擬合的做法是非常有用的。Scikit-learn 內(nèi)置方法請(qǐng)移步于此。

分類(lèi)數(shù)據(jù)的獨(dú)熱編碼:它是一種非常常見(jiàn)的數(shù)據(jù)預(yù)處理任務(wù),用于將輸入的分類(lèi)特征轉(zhuǎn)換為分類(lèi)或預(yù)測(cè)任務(wù)中使用的二進(jìn)制編碼(例如:摻有數(shù)指和文本特征的邏輯回歸)。Scikit-learn 提供強(qiáng)大而簡(jiǎn)單的方法實(shí)現(xiàn)上述過(guò)程。它直接在 Pandas 數(shù)據(jù)框或 Numpy 數(shù)組上操作,因此便于用戶(hù)為這些轉(zhuǎn)換編寫(xiě)任何特殊的 map/apply 函數(shù)。

多項(xiàng)式特征生成:對(duì)于不盡其數(shù)的回歸建模任務(wù),在輸入數(shù)據(jù)中考慮非線(xiàn)性特征來(lái)增加模型的復(fù)雜性是有用的。一個(gè)簡(jiǎn)單且常用的方法是使用多項(xiàng)式特征,可得到特征的高階和交互項(xiàng)。Scikit-learn有現(xiàn)成的函數(shù),可根據(jù)給定的特征集和用戶(hù)選擇的最高多項(xiàng)式的程度生成高階的交叉項(xiàng)。

數(shù)據(jù)集生成器:Scikit-learn包含各種隨機(jī)樣本生成器,可用于構(gòu)建給定大小和復(fù)雜度的人工數(shù)據(jù)集。它具有分類(lèi),聚類(lèi),回歸,矩陣分解和多種測(cè)試的函數(shù)。

實(shí)踐交互式機(jī)器學(xué)習(xí)

在2014年 Jupyter 項(xiàng)目于脫胎于 IPython 項(xiàng)目,并迅速演變?yōu)橹С炙兄髁骶幊陶Z(yǔ)言的交互式數(shù)據(jù)科學(xué)和科學(xué)計(jì)算的筆記本。毫無(wú)疑問(wèn),它在幫助數(shù)據(jù)科學(xué)家快速測(cè)試,為他/她的想法創(chuàng)建原型,展示成果給同行和開(kāi)源社區(qū)等方面帶來(lái)巨大影響。

然而,只有當(dāng)用戶(hù)能夠交互式地控制模型參數(shù)并實(shí)時(shí)看到效果(幾乎)的時(shí)侯,學(xué)習(xí)和測(cè)試數(shù)據(jù)才變得真正浸潤(rùn)其中。Jupyter 中大多數(shù)呈現(xiàn)都是靜態(tài)的

但是你需要更多控制,你想通過(guò)簡(jiǎn)單的滑動(dòng)鼠標(biāo)而不是通過(guò)編寫(xiě) for 循環(huán)改變變量。該怎么辦?你可以使用 IPython 的插件。

插件是重要的 python 組件,它通過(guò)瀏覽器有所體現(xiàn),通常作為一個(gè)前端 (HTML/Java) 呈現(xiàn)通道控件,如滑塊、文本框等。

本文我演示使用簡(jiǎn)單插件完成基礎(chǔ)的曲線(xiàn)擬合練習(xí)。后續(xù)文章將進(jìn)一步擴(kuò)展到交互式及其學(xué)習(xí)技術(shù)領(lǐng)域。

深度學(xué)習(xí)框架

本文介紹使用 Python 探索機(jī)器學(xué)習(xí)奇妙世界的重要技巧。但它不包括 TensorFlow,Keras 或 PyTorch等深度學(xué)習(xí)框架,因?yàn)樗鼈兠恳粋€(gè)都需要深入討論。您可以在這里閱讀一些關(guān)于上述主題的非常棒的文章,但稍后我們可能會(huì)對(duì)這些驚艷的框架進(jìn)行專(zhuān)門(mén)討論。

  • 7 great articles on TensorFlow (Datascience Central)
  • Datacamp tutorial on neural nets and Keras example
  • AnalyticsVidhya tutorial on PyTorch

總結(jié)

文章不可能覆蓋機(jī)器學(xué)習(xí)主題的全部?jī)?nèi)容(即使是一小部分)。但是,希望這篇文章能激發(fā)你的興趣,也為你提供 Python 生態(tài)系統(tǒng)中已存在一些強(qiáng)大框架的明確指針,確保開(kāi)始你的機(jī)器學(xué)習(xí)之旅。

博客原址 https://heartbeat./some-essential-hacks-and-tricks-for-machine-learning-with-python-5478bc6593f2

雷鋒網(wǎng)雷鋒網(wǎng)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多