Kaggle入門系列:(一)機器學習環境搭建

參加Kaggle競賽的第一步,選定一個平台。目前,在數據分析方向最主流的兩個平台是R語言python,相比較之下,我更推薦大家使用Python來完成Kaggle上的競賽。

原因主要包括以下幾點:

  • Python的生態系統比較完善,針對數據分析、機器學習的各個領域都有相對應的包來解決我們的問題,比如:sklearn,pandas,xgboost 等。
  • Python有一些非常優秀的深度學習框架供我們選擇,比如Theano,TensorFlow,Keras 等
  • Python語法簡單,上手速度快,能夠用最少的代碼解決我們的問題,讓我們的主要精力放在解決業務問題而不是編程問題上。

1、操作系統選擇

Windows是我們平時辦公用的較多的操作系統,但是,在這裡還是推薦使用Linux。Ubuntu是目前使用比較多的桌面Linux系統,各種軟體的支持也比較好。

2、Python開發環境搭建

Python有兩個版本可供我們選擇,python3.x和python2.x。由於3.x與2.x的差異問題,有很多包對3.x的支持不太好,所以建議選擇Python2.x

Ubuntu系統都自帶Python,我們只需要安裝常用的數據分析包:numpy,scipy,pandas,sciket-learn,matplotlib等。

Ubuntu下可以用命令安裝:

sudo apt-get install python-numpy sudo apt-get install python-scipy sudo apt-get install python-matplotlib sudo apt-get install python-pandas sudo apt-get install python-sklearn

Anaconda

如果覺得手動一個一個安裝比較麻煩,我們可以選擇打包好的Python環境。比較推薦大家使用Anaconda來搭建數據分析環境。

Anaconda是一個用於科學計算的Python發行版,支持 Linux, Mac, Windows系統,提供了包管理與環境管理的功能,可以很方便地解決多版本python並存、切換以及各種第三方包安裝問題。

3.深度學習

AlphaGo在2017年年初化身Master,在弈城和野狐等平台上橫掃中日韓圍棋高手,取得60連勝,未嘗敗績。AlphaGo背後神秘的推動力就是深度學習。

深度學習領域目前最為流行的框架主要有:

(1)TensorFlow

TensorFlow是一款開源的數學計算軟體,使用數據流圖(Data Flow Graph)的形式進行計算。圖中的節點代表數學運算,而圖中的線條表示多維數據數組(tensor)之間的交互。TensorFlow靈活的架構可以部署在一個或多個CPU、GPU的台式以及伺服器中,或者使用單一的API應用在移動設備中。TensorFlow最初是由研究人員和Google Brain團隊針對機器學習和深度神經網路進行研究所開發的,目前開源之後可以在幾乎各種領域適用。

(2)Torch

Torch是一個有大量機器學習演算法支持的科學計算框架,其誕生已經有十年之久,但是真正起勢得益於Facebook開源了大量Torch的深度學習模塊和擴展。Torch另外一個特殊之處是採用了編程語言Lua(該語言曾被用來開發視頻遊戲)。

(3)Theano

2008年誕生於蒙特利爾理工學院,Theano派生出了大量深度學習Python軟體包,最著名的包括Blocks和Keras。Theano的核心是一個數學表達式的編譯器,它知道如何獲取你的結構。並使之成為一個使用numpy、高效本地庫的高效代碼,如BLAS和本地代碼(C++)在CPU或GPU上儘可能快地運行。它是為深度學習中處理大型神經網路演算法所需的計算而專門設計的,是這類庫的首創之一(發展始於2007年),被認為是深度學習研究和開發的行業標準。

本篇文章主要是搭建入門機器學習的基礎環境,所以不過多介紹深度學習環境的搭建,有興趣的同學在入門之後可以在這些框架的官方網站得到更多詳細的介紹。

完成基礎環境搭建後,我們可以選擇最簡單的Titanic倖存者預測來入門Kaggle。

系列文章:

Kaggle入門系列:(一)機器學習環境搭建

Kaggle入門系列:(二)kaggle簡介

Kaggle入門系列:(三)Titanic初試身手

歡迎關注微信公眾號:kaggle數據分析


推薦閱讀:

怎麼著手玩kaggle?
如何看待Kaggle最新比赛Zillow禁止中国居民参加第二轮?
kaggle:Titanic: Machine Learning from Disaster,有什麼比較好的feature可以提取,哪位大神hit 80%了?

TAG:Kaggle | 数据分析 | 机器学习 |