對於機器學習有興趣,很多人應該會先從 Andrew Ng ( 吳恩達 ) 的機器學習課程開始,可是吳恩達的課程是使用git
octave 這個工具看成練習。這個 github 項目包含使用 Python 實現流行機器學習算法的範例,並解釋了其背後的github
數學原理。 每一個算法都有交互式的 Jupyter Notebook 示範,可讓你玩訓練數據、算法配置,並當即在瀏覽器中算法
檢視結果、圖表和預測。 在大多數狀況下,這些解釋都是基於 Andrew Ng 的這門偉大的機器學習課程。瀏覽器
這個儲存庫的目的不是經過使用第三方程式庫」一行程序」來實現機器學習算法,而是從頭開始實踐這些算法,並更好框架
地理解每一個算法背後的數學原理。dom
https://softnshare.com/github-machine-learning-octave/機器學習
在監督式學習,咱們有一組做爲輸入的訓練資料和一組標籤或做爲輸出的每一個訓練集的」正確答案」。 而後咱們訓練咱們的模型(機器學習演算法參數)來正確地對映輸入到輸出(作正確的預測)。 最終的目的是找到這樣的模型參數,將成功地繼續正確的輸入→輸出對映(預測) ,甚至爲新的輸入例子。工具
迴歸 Regression學習
在迴歸問題中,咱們作真實值的預測。 基本上,咱們嘗試沿着訓練樣本繪製一條線 / 平面 / n 維平面( line/plane/n-dimensional plane)。測試
使用範例: 股票價格預測,銷售分析,任何數字的相依等。
Math | Linear Regression-進一步閱讀的理論及連結
Code | Linear Regression-實現範例
Demo | 單變數線性迴歸 Univariate Linear Regression-使用 economy GDP 來預測城市快樂指數
Demo | 多變數線性迴歸 Multivariate Linear Regression-使用 economy GDP 和 freedom index 來預測城市快樂指數
Demo | 非線性迴歸 Non-linear Regression-使用線性迴歸多項式及正弦曲線特徵來預測非線性相關性
分類 Classification
在分類問題中,咱們根據必定的特徵分割輸入範例。
使用範例: 垃圾郵件過濾器,語言偵測,尋找相似的文件,手寫字母識別等。
非監督式學習是機器學習的一個分支,它從未被標記、分類或分類的測試資料中學習。 非監督式學習不是對反饋作出反應,而是根據每一個新資料中是否存在這些共同特性來識別資料中的共同性,並根據這些共同性的存在或不存在作出反應。
聚類 Clustering
在聚類問題中,咱們根據未知特徵對訓練樣本進行分割。 由演算法自己決定用什麼特徵進行分割。
使用範例: 市場劃分分析,社羣網路分析,組織運算聚類,天文資料分析,影像壓縮,等等。
異常檢測 Anomaly Detection
異常檢測指的是識別那些引發懷疑的罕見物品、事件或觀察異常檢測,它們與大多數資料截然不同。
使用範例: 入侵偵測、詐欺偵測、系統健康監控、從資料集中刪除異常資料等。
利用高斯分佈 ( Gaussian Distribution ) 進行異常檢測
神經網路自己不是一個演算法,而是一個框架,將許多不一樣的機器學習演算法一塊兒運做和處理複雜的資料輸入。
使用範例: 做爲全部其它演算法的通常替代,影像辨識,語音辨識,影像處理(應用特定風格) ,語言翻譯等。
多層感知器 Multilayer Perceptron (MLP)
這張機器學習地圖的來源是這篇精彩的部落格文章
確保在機器上安裝了 Python。
您可能但願使用 venv 標準的 Python 程式庫來創建虛擬環境,並從本地專案目錄中安裝和使用 Python、 pip 和全部相依套件服務,以免搞亂系統範圍的套件及其版本。
安裝相依套件
經過執行如下命令安裝專案所需的全部依賴套件:
pip install -r requirements.txt
在本地端啓動 Jupyter
專案中的全部示範均可以直接在瀏覽器中執行,而不須要在本地安裝 Jupyter。 可是若是你想在本地啓動 Jupyter Notebook,你能夠在專案的根資料夾中執行如下命令:
jupyter notebook
在這以後,你能夠經過 http: / / localhost: 8888 訪問 Jupyter Notebook。
遠端啓動 Jupyter
每一個演算法部分包含到 Jupyter NBViewer 的示範連結。 這是一款快速的 Jupyter Notebooks 線上預覽器,你能夠直接在瀏覽器中看到示範的程式碼、圖表和資料,而不須要在本地安裝任何東西。 若是你想改變程式碼和展現的筆記本實驗,你須要啓動在 Binder 的筆記本。 你能夠簡單地點選 NBViewer 右上角的」Execute on Binder」連結。
用於 Jupyter Notebook 演示的資料集列表能夠在 data 資料夾中找到。