這篇文章重點是介紹,數據挖掘,機器學習項目做爲一個完整的流程是怎麼樣的,意義是制定本身一個規範,因此裏面的具體細節並無花太多的心思,效果很差在所不免。重點是體會這個過程!!!html
這篇文章是這個系列的開篇立論,學了一年的機器學習方面的知識,可是當本身上手去作的時候,問題就來了,好像什麼都知道一些,可是又什麼都作不了,各類困難,實際工做中,沒有人爲你收集處理數據,而數據集質量的好壞,特徵工程的質量,將決定最後模型的性能上限。數據科學,機器學習是一門實踐的知識,而原理的東西彷佛永遠都學不完。實際工做中,真正拉開差距的更可能是對客戶需求,具體業務的理解,和工程的熟練度和深度。而這些東西是課本上學不到的,因此但願在研二這一年,投入到實際的工程中去,作一些真正貼近實際的項目。python
在項目中我會用到python中兩個重要的庫,咱們會使用 Pandas 和 scikit-learn ,tensorflow等庫。咱們會大量用到 Pandas 的DataFrame,這使得在 Python 中讀取和處理表格數據變得很是簡單。這個系列,我會把重點放在:git
特徵工程,github
業務理解,算法
不一樣機器學習算法的適用場合,機器學習
相同場合下不一樣算法的表現,性能
對結果多指標的評價上,因此在實現上咱們直接調用各類輪子來實現咱們的模型。學習
下面這段複製了 知乎上的一篇文章,這篇文章寫的很好,介紹了一個完整的數據科學項目的嚴格流程,按照這個流程作事情,會讓人的頭緒清楚,建議你們直接看下面連接的原文。網站
第一步,咱們要尋找有價值的數據集。 ui
尋找優質數據集進行完整的項目分析很困難。數據集須要足夠大,大到出現內存和性能的限制。還須要具有業務價值。舉個例子,這個數據集中包含了美國大學的招生條件、畢業率和畢業生將來收入的數據。這就是一個能夠用來說故事的優質數據集。然而,若是你仔細想一想,就會發現這裏面沒有足夠的細節來創建一個完整的項目。
舉例說,你能夠告訴別人若是他們去某些(好)大學,他們將來的潛在收入就會更高,可是這隻須要一個很快的查找比較就能夠完成,沒有足夠的空間去展現你的技術能力。你也能夠發現若是大學有更高的入學條件,它們的畢業生就更有可能得到高薪,但這些就更偏向於講故事,而非業務價值了。
當你有 GB 以上的數據量時,或者當你想要預測一些數據細節,內存和性能限制就會逐漸凸現出來,由於得對數據集運行算法運算。
一個優質數據集容許你編寫一系列腳本對數據作變形,從而回答一些動態問題。股票價格就是一個很好的數據集。你能夠根據這些數據預測次日的股價走勢,而且在閉市的時候把新數據提供給算法。這能夠幫助你執行交易,甚至是獲取利潤。這就不是在講故事了 — 而是直接產生價值。
下面是一些可以找到優質數據集的地方:
瀏覽這些數據集時,想想若是有這些數據集,人們可能會問什麼問題,而後再想一想這些問題是不是一次性的(「S&P 500 和房價的相關性是怎樣的?」),或是持續性的(「你能預測股票價格嗎?」)。這裏的關鍵在於找到那些持續性的問題,這些問題須要屢次運行,並輸入不一樣的數據才能回答。
重要的事是要堅持一個角度。一次專一於太多事情會很難作成一個優秀的項目。選擇一個有足夠細節的角度這點也很重要。
咱們首先快速查看原始數據文件。下面是 2012 年第一季度收購數據的前幾行:
100000853384|R|OTHER|4.625|280000|360|02/2012|04/2012|31|31|1|23|801|N|C|SF|1|I|CA|945||FRM|
100003735682|R|SUNTRUST MORTGAGE INC.|3.99|466000|360|01/2012|03/2012|80|80|2|30|794|N|P|SF|1|P|MD|208||FRM|788
100006367485|C|PHH MORTGAGE CORPORATION|4|229000|360|02/2012|04/2012|67|67|2|36|802|N|R|SF|1|P|CA|959||FRM|794
下面是 2012 年第一季度的表現數據的前幾行:
100000853384|03/01/2012|OTHER|4.625||0|360|359|03/2042|41860|0|N||||||||||||||||
100000853384|04/01/2012||4.625||1|359|358|03/2042|41860|0|N||||||||||||||||
100000853384|05/01/2012||4.625||2|358|357|03/2042|41860|0|N||||||||||||||||
在編寫代碼以前,花點時間去理解數據是頗有用的。尤爲對於業務型項目而言,由於咱們沒有互動式地去探索數據,很難發現某些細節,除非一開始就找到它們。這種狀況下,第一步就是去房利美的網站上讀一讀有關數據集的材料:
讀完這些材料以後,咱們知道了一些有用的關鍵信息:
在設計項目結構和處理數據時,這些信息能幫助咱們節省一大筆時間。
在開始下載和探索數據以前,設計好項目結構是很是重要的。在打造一個完整的項目時,咱們的主要目標是:
爲了達到這些目標,咱們要設計好項目的結構。一個結構良好的項目聽從如下規範:
該項目的文件結構以下:
loan-prediction
├── data
├── processed
├── .gitignore
├── README.md
├── requirements.txt
├── settings.py