如何高效入門數據科學?

連接散落的教程文章,作個詳細的導讀,助你更高效入門數據科學。html

問題

2017年6月以來,我陸續在本身的簡書專欄《玉樹芝蘭》裏,寫了一系列數據科學教程。算法

這源於一次研究生課編程工做坊嘗試。受閻教練的創新思惟訓練營啓發,我在課後把詞雲製做流程詳細記錄轉述,分享給了你們。編程

沒想到,這篇《如何用Python作詞雲?》受到了讀者們很是熱烈的歡迎。後端

此後,一發不可收拾。微信

應讀者的要求,結合我本身的學習、科研和教學實踐,我陸續分享了更多與數據科學相關的文章網絡

讀者愈來愈多,我收到的問題也愈發五花八門。框架

許多讀者的問題,我其實都已經在其餘的文章裏面講解過了,所以有時用「請參考個人另外一篇文章《……》,連接爲……」來答覆,也幫助讀者解決了問題。機器學習

在建構同理心(empathy)以前,估計我會問出這樣的問題:工具

他們爲何不翻翻個人其餘文章呢?post

但如今,我能感覺到他們的疑惑:

我哪裏知道你寫過另外一篇文章?

散落在各處的文章,不容易系統學習和檢索。因而我在2017年11月,把寫過的數據科學系列教程聚集到了一塊兒,作了個索引貼

我把這個索引貼連接置於每篇新教程的末尾,並不斷更新維護。

然而,這樣簡單的標題索引,依然沒法知足許多讀者的需求

有的讀者跟着教程作完了詞雲,發現若是對中文文本作分析,就會出現亂碼:

這時候,你該怎麼辦呢?

更進一步,若是你但願把詞雲的外邊框變成指定的形狀,又該如何操做?

光看標題,你可能不容易發現哪一篇文章會幫助本身解決這些問題,甚至可能會選擇放棄

我決定作這個導讀。

這篇文章,再也不是從任務出發,簡單羅列文章標題和連接;而是從先易後難的認知習慣,從新組織文章順序,簡要介紹內容,提示可能遇到的問題。

但願對你的學習能有幫助

基礎環境

大部分的教程,都是在 Python 運行環境 Jupyter Notebook 下運行和演示。

安裝這個運行環境,最簡單的方法,就是安裝 Anaconda 集成套件。

請先收看這個視頻教程《如何安裝Python運行環境Anaconda?(視頻教程)》,本身嘗試安裝Anaconda,運行起第一個Jupyter Notebook,輸出一個「Hello world!」出來。

有了這個基礎,你就能夠嘗試不一樣的數據科學任務了。

個人建議是先作詞雲。

由於簡單,並且有成就感。

詞雲

跟着圖文教程《如何用Python作詞雲?》一步步執行。用幾行Python代碼,你就能夠作出這樣的詞雲來。

我還專門把它升級作成了視頻教程《如何用Python作詞雲?(基礎篇視頻教程)》,供你觀看。

參看這篇文章《如何用Python作中文分詞?》,你就能作出這樣的中文詞雲。

若是你但願改變詞雲邊框外觀,就參考這篇文章《Python編程遇問題,文科生怎麼辦?》的最後部分

到這裏,你已掌握Python運行環境安裝、文本文件讀取、常見軟件包調用、可視化分析與結果呈現和中文分詞等基本功夫了。

回頭望去,是否是成就感爆棚呢?

虛擬環境

細心的你,可能已經發現,圖文教程和視頻內容並不徹底一致

視頻教程目前全系列採用Python 3.6版本,將來得及從新整理的詞雲圖文教程,展現的確實2.7版本Python。

爲何呢?

由於隨着技術的發展,Python已經逐步要過渡到3.X版本了。

許多第三方軟件包都已經宣佈了時間表,儘快支持3.X,放棄2.X版本的支持。

才半年,你就能夠感覺到技術、社羣和環境的變化之快。

但是目前某些軟件包,依然只能支持2.X版本Python。雖然這樣的軟件包愈來愈少了。

你須要暫時作個「兩棲動物」,千萬不要束縛本身,由於「立場緣由」執拗着不願用低版本Python。這樣吃虧的是本身。

怎樣才能作個「兩棲動物」呢?

辦法之一,就是使用Anaconda的虛擬環境。能夠參考《如何在Jupyter Notebook中使用Python虛擬環境?》。

你初始安裝版本針對Python 2.7的Anaconda,並不妨礙你快速創建一個3.6版本Python的虛擬環境

有了這個祕籍,你就能夠在不一樣版本的Python之間左右逢源,遊刃有餘了。

天然語言處理

下一步,咱們來嘗試天然語言處理(Natural Language Processing, NLP)。

情感分析,是NLP在許多社會科學領域熱門的應用之一。

如何用Python作情感分析?》這篇文章,分別從英文和中文兩個案例,分別採用不一樣的軟件包,針對性地解決應用需求。

你只須要幾行代碼,就能讓Python告訴你情感的取向。是否是很厲害?

有了情感分析作基礎,你能夠嘗試增長維度,對更大致量的數據作分析。

增長時間維度,就能夠持續分析變化的輿情。

如何用Python作輿情時間序列可視化?》這篇文章,一步步指引你在時間刻度上可視化情感分析結果:

這圖難看了一些。

不過咱們須要容忍本身起步時的笨拙,不斷迭代與精進。

但願一出手就滿分,對極少數天才,確實無非是平常。

但對大多數人,是拖延症的開始。

你可能火燒眉毛,嘗試換本身的數據作時間序列可視化分析。

不過日期數據若是與樣例有出入,可能會出現問題。

這時候,不要慌,請參考《Python編程遇問題,文科生怎麼辦?》的第二部分,其中有詳細的錯誤緣由分析與對策展現。

看事後,分析結果圖也會迭代成這個樣子:

到這裏,你對情感分析有點兒感受了吧?

若是你不打算使用第三方提供的情感分類算法,打算本身動手訓練一個更爲精確的情感分類模型,能夠參考《如何用Python和機器學習訓練中文文本情感分類模型?》一文。

剛剛這些情感分析,其實只是極性分析(正面vs負面)。可是咱們都知道,人的情感實際上是多方面共同構成的。

如何從文本中,分解出多維度的情感特徵變化呢?

如何用Python和R對《權力的遊戲》故事情節作情緒分析?》一文分析了《權力的遊戲》中某一集劇本,你會得到這樣的結果:

若是你是《權力的遊戲》劇迷,請告訴我,這張圖描繪的是哪一集?

先猜猜看,而後再打開文章,跟結尾作對比。

這篇文章的可視化分析部分,用的是R。

R也是數據科學領域一個很是受歡迎的開源工具。它的通用性和熱度可能不如Python(畢竟Python除了數據科學,還能幹許多其餘的事兒),可是由於有統計學界諸多科學家的擁護和添磚加瓦,所以有很是好的一套生態系統。

若是你但願對單一長文本提取若干重要關鍵詞,該怎麼辦呢?

請你閱讀《如何用Python提取中文關鍵詞?》一文。它採用詞彙向量化、TextRank等成熟的關鍵詞提取算法來解決問題。

課間答疑

隨着知識、技能和經驗的積累,你的疑問可能也逐漸增多了吧?

有的同窗對這種教學方式有疑問——案例挺有意思,也很簡單易學,可是怎麼把它用到我本身的學習、工做和科研中呢?

我爲你寫了一篇答疑說明,叫作《文科生如何高效學數據科學?》。文中提到了如下幾個方面:

  • 如何指定目標?
  • 如何肯定深度?
  • 如何增強協做?

提到協做,就不能不說Github這個全球最大的開源代碼託管倉庫了。

在我們的教程裏,也屢次使用Github來存儲代碼和數據,以便你可以重複運行教程中的結果。

如何高效入門Github?》一文提供了文檔和視頻教程資源,但願能對你掌握這個數據富礦提供幫助。

很多讀者在這個階段常提出這個問題:老師,想學Python,推薦本書唄。

看來,你已經明白了Python的好處了,對吧?

如何高效學Python?》幫助你給本身的學習特性作出了分類。根據分類的結果,你能夠選擇更適合本身的學習路徑。

推薦的教材,不只包括書籍,還包括MOOC。但願這種充滿互動的教學方式,對你入門數據科學有幫助。

機器學習

你能夠嘗試作更進一步的分析了。

例如機器學習(Machine Learning)。

機器學習的妙用,就是在那些你(實際上是人類)沒法準確描述解決步驟的問題上,讓機器經過大量案例(數據)的觀察、試錯,構建一個相對有用的模型,來自動化處理問題,或者爲人類的決策提供輔助依據。

大致上,機器學習主要分爲3類:

  • 監督學習(Supervised Learning)
  • 非監督學習(Unsupervised Learning)
  • 強化學習(Reinforcement Learning)

目前本專欄介紹了前兩類的一些例子。

監督學習與非監督學習最大的差異,在於數據。

數據已有標註(通常是人工賦予標籤),通常用監督學習;

數據沒有標註,通常只能用非監督學習。

監督學習部分,咱們舉了分類(classification)任務的例子。

貸仍是不貸:如何用Python和機器學習幫你決策?》中的案例,選擇了貸款審批輔助決策。

具體的機器學習算法,是決策樹(decision tree)。

有同窗表示,繪製這棵決策樹的時候,遇到了問題。

這主要是由於運行環境的差別和依賴工具的安裝沒有正確完成。

Python編程遇問題,文科生怎麼辦?》的第一部分,對這些問題作了詳細的闡述,請根據列出的步驟嘗試解決。

不只如此,這篇文章展現給你了一種任務導向的學習方式,指望它能夠提高你Python語言和數據科學學習效率。

非監督學習部分,咱們講述了《如何用Python從海量文本抽取主題?》。

文中用一種叫作LDA的聚類(clustering)方法,幫你從可能感興趣的浩如煙海文檔中,提取出可能的類別,對應的主要關鍵詞,而且作可視化處理。

文中說起了停用詞(stopwords)的處理,可是沒有給出中文停用詞的具體應用方法。

如何用Python和機器學習訓練中文文本情感分類模型?》一文中,我不只對停用詞處理方式進行了詳細的介紹,並且把監督學習Naive Bayes模型應用於情感分析,手把手教你如何訓練本身的情感分類模型。

深度學習

深度學習,指用深度神經網絡(Deep Neural Network)進行機器學習。

相對於傳統機器學習方法,它使用的模型結構更爲複雜,須要更多的數據支持,而且訓練起來要消耗更多的計算資源和時間。

常見的深度學習應用,包括語音識別、計算機視覺和機器翻譯等。

固然,新聞裏面最愛提的,是下圍棋這個事兒:

咱們提供的案例,沒有那麼挑戰人類智能極限,而是跟平常工做和生活更加相關。

如何用Python和深度神經網絡發現即將流失的客戶?》爲你介紹了深度神經網絡的基本結構。

這篇文章經過客戶流失預警的例子,講述了使用前饋神經網絡進行監督式學習的基本樣例。

實際操做部分,咱們採用Tensorflow做爲後端,tflearn做爲前段,構造你本身的第一個深度神經網絡。

如何用Python和深度神經網絡發現即將流失的客戶?》一文末尾還爲你提供了進一步掌握深度學習的相關資源。

若是你須要安裝Tensorflow深度學習框架(Google出品哦),歡迎先閱讀這篇《Tensorflow執行pip升級安裝的坑》。

有了深度神經網絡的基礎知識,咱們折騰計算機視覺。

如何用Python和深度神經網絡識別圖像?》一文,舉例分類哆啦a夢和瓦力這兩個機器人的各類花式圖像集合。

卷積神經網絡(Convolutional Neural Network, CNN)這時就大放異彩了。

這篇文章,幫你分析了卷積神經網絡中,不一樣層次(Layer)的做用。

咱們儘可能避免用公式,而是用圖像、動圖和平實簡潔的語言描述來爲你解釋概念。

咱們使用的深度學習框架,是蘋果的TuriCreate。你會調用一個很是深層次的卷積神經網絡,幫咱們遷(tou)移(ji)學(qu)習(qiao),用不多的訓練數據,得到很是高的分類準確率。

有的讀者本身嘗試,測試集準確率竟然達到100%(視運行環境不一樣,有差別),大呼過癮。可同時又以爲難以想象。

爲了解釋這種「奇蹟」,同時解答讀者「如何在私有數據集上以圖搜圖」的疑問,我寫了《如何用Python和深度神經網絡尋找近似圖片?》。

但願讀過此文,你對遷移學習(Transfer Learning)有了更深刻的認識。

若是這兩篇文章學完,你對卷積神經網絡的基礎知識依然不是很清晰,也不要緊,由於個人研究生們遭遇了一樣的問題。

爲此,我專門錄製了一段講解答疑視頻

這段視頻裏,我主要談及瞭如下幾個方面:

  • 深度神經網絡的基本結構;
  • 神經元的計算功能實現;
  • 如何對深度神經網絡作訓練;
  • 如何選擇最優的模型(超參數調整);
  • 卷積神經網絡基本原理;
  • 遷移學習的實現;
  • 疑問解答。

但願看過以後,你再從論文裏讀到計算機視覺的神經網絡模型,就能夠遊刃有餘了。

另外一批做者又來發問了:

老師,我用Windows,死活就是裝不上TuriCreate,可怎麼辦?

我替他們着急的時候,剛好找到了一個寶貝。因而寫了《如何免費雲端運行Python深度學習框架?》。

無償使用GPU,用極爲簡易的操做,就能夠在Google雲端Linux主機上部署和執行蘋果深度學習框架……

聽着是否是像作夢啊?

感謝Google這家爲人類知識積累作出貢獻的企業。

數據獲取

學完深度學習以後,你會發現本身變成了「數據飢渴」症患者。

由於若是沒有大量的數據,就沒法支撐你的深度神經網絡。

如何獲取數據呢?

咱們先要區分數據的來源。

數據來源不少。可是對於研究者來講,網絡數據和文獻數據比較經常使用。

目前主流(合法)的網絡數據方法,主要分爲3類:

  • 開放數據集下載;
  • API讀取;
  • 爬蟲爬取(Crawling)。

如何用Python讀取開放數據?》一文中,我爲你講解了如何把開放數據集下載而且在Python中使用。

這篇文章介紹了常見的CSV/Excel, JSON和XML等開放數據文件格式的讀取、初步處理和可視化方法與流程。

若是沒有開放數據集整理好供你下載,網站只提供API接口,你該怎麼辦呢?

如何用R和API免費獲取Web數據?》一文,咱們使用R讀取維基百科API,得到指定條目的訪問數量記錄,而且作了可視化。

若是沒有人爲你整理好數據,網站也沒有開放API給你,那你就得「直接上大錘」了。

如何用Python爬數據?(一)網頁抓取》一文爲你介紹了很是人性化、易用的網頁抓取軟件包 requests_html,你能夠嘗試抓取網頁內的指定類型連接。

文獻數據可能存儲爲各類格式,但其中pdf格式較爲常見。

應諸多讀者的要求,我寫了《如何用Python批量提取PDF文本內容?》。

你能夠批量提取pdf文檔的文本內容,而且進行各類分析。

文中的分析相對簡單,咱們只是統計了文檔字符數量。

可是發揮想象力,你可能會作出很是有價值的分析結果。

但願這些文章能夠幫助你高效得到優質數據,支撐起你本身的機器學習模型。

小結

本文把《玉樹芝蘭》專欄目前的數據科學類文章進行了梳理和歸類,創建了連接,以幫你看清它們之間的邏輯依賴關係。

專欄中,數據科學類文章主要圍繞如下方面展開:

  • 環境搭建;
  • 基礎入門;
  • 天然語言處理;
  • 機器學習;
  • 深度學習;
  • 數據獲取;
  • 答疑。

你可能早已發現,咱們還有不少話題,沒有來得及涉及。

彆着急。

本專欄會持續添加新的內容。這篇導讀也會不按期更新。歡迎關注。

討論

本專欄數據科學類的文章裏,你更喜歡哪一個方面的主題?除此之外,你還但願讀到哪些內容?歡迎留言,把你的經驗和思考分享給你們,咱們一塊兒交流討論。

喜歡請點贊。還能夠微信關注和置頂個人公衆號「玉樹芝蘭」(nkwangshuyi)

若是你對數據科學感興趣,不妨閱讀個人系列教程索引貼《如何高效入門數據科學?》,裏面還有更多的有趣問題及解法。

相關文章
相關標籤/搜索