第一部分 分類
本書前兩部分主要探討監(jiān)督學習(supervised learning)蹬碧。
監(jiān)督學習一般使用兩種類型的目標變量:
- 標稱型:目標變量的結果只在有限目標集中取值:真與假舱禽,動物分類集合
- 數(shù)值型:目標變量可以從無限的數(shù)值集合中取值:0.100、42.001恩沽;主要用于回歸分析
第 1 章 機器學習基礎
[TOC]
本章內容:
- 機器學習的簡單概述
- 機器學習的主要任務
- 學習機器學習的原因
- python 語言的優(yōu)勢
1. 何謂機器學習
簡單地說誊稚,機器學習 就是把無序的數(shù)據(jù)轉換成有用的信息。
**機器學習的主要任務 **就是分類。
訓練集 :是用于訓練機器學習算法的數(shù)據(jù)樣板集合里伯。
目標變量 :是機器學習算法的預測結果城瞎。在分類算法中目標變量的類型通常是標稱型的,而在回歸算法中通常是連續(xù)型的疾瓮。
特征 脖镀,或者 屬性 :通常是訓練樣板集的列,它們是獨立測量得到的結果狼电,多個特征聯(lián)系在一起共同組成一個訓練樣板蜒灰。
決定使用某個機器學習算法進行分類時:
- 首先需要做的是算法訓練,即學習如何分類
- 測試機器學習算法的效果肩碟,通常使用兩套獨立的樣本集:訓練數(shù)據(jù)和測試數(shù)據(jù)
2. 機器學習的主要任務
機器學習的任務:分類和回歸强窖。都屬于 監(jiān)督學習。
回歸 :主要用于預測數(shù)據(jù)值型數(shù)據(jù)腾务。
無監(jiān)督學習 :數(shù)據(jù)沒有類別信息毕骡,也不會給定目標值
- 將數(shù)據(jù)集合分成由類似的對象組成的多個類的過程被稱為 聚類 ;
- 將尋找描述數(shù)據(jù)統(tǒng)計值得過程稱之為 密度估計 岩瘦;
- 降維 :無監(jiān)督學習還可以減少數(shù)據(jù)特征的維度未巫,以便我們可以使用二維或三維圖形更加直觀地展示數(shù)據(jù)信息。
表 1-2 列出了機器學習的主要任務启昧,以及解決相應問題的算法:
3. 如何選擇合適的算法
從表1-2中所列的算法中選擇實際可用的算法叙凡,必須考慮下面兩個問題:
- 使用機器學習算法的目的,想要算法完成何種任務
- 想要預測目標變量的值密末,則可選擇監(jiān)督學習算法握爷,否則可以選擇無監(jiān)督學習算法。
- 確定選擇監(jiān)督學習算法后严里,需要進一步確定目標變量類型:離散則分類新啼,連續(xù)則回歸
- 如果不想預測目標變量的值,可以選擇無監(jiān)督學習算法刹碾。
- 進一步分析是否需要將數(shù)據(jù)分為離散的值燥撞,需要則使用聚類算法
- 如果還需要顧及數(shù)據(jù)與每個分組的相似程度,則需要使用密度估計算法
- 其他方面的考慮
- 需要分析或收集的數(shù)據(jù)是什么(主要了解數(shù)據(jù)以下特性)
- 特征值是離散型變量還是連續(xù)型變量
- 特征值中是否存在缺失的值
- 何種原因造成缺失值
- 數(shù)據(jù)中是否存在異常值
- 某個特征發(fā)生的頻率如何迷帜,等等
一般來說物舒,發(fā)現(xiàn)最好算法的關鍵環(huán)節(jié)是反復試錯的迭代過程
4. 開發(fā)及其學習應用程序的步驟
本書學習和使用及其學習算法開發(fā)程序,通常遵循以下的步驟:
- 收集數(shù)據(jù):制作網(wǎng)絡爬蟲從網(wǎng)站上抽取數(shù)據(jù)戏锹、從 RSS 反饋或者 API 中得到數(shù)據(jù)冠胯、設備發(fā)送過來的實測數(shù)據(jù)等
- 準備輸入數(shù)據(jù):必須確保數(shù)據(jù)格式符合要求
- 分析輸入數(shù)據(jù)(主要是人工分析以前得到的數(shù)據(jù),這一步的主要作用是確保數(shù)據(jù)集中沒有垃圾數(shù)據(jù)):
- 最簡單的方法是用文本編輯器打開數(shù)據(jù)文件锦针,查看得到的數(shù)據(jù)是否為空值
- 還可以進一步瀏覽數(shù)據(jù)荠察,分析是否可以識別出模式
- 數(shù)據(jù)中是否存在明顯的異常值
- 通過一維置蜀、二維、三維展示數(shù)據(jù)也是不錯方法
- 訓練算法(4割粮、5 是機器學習的核心):如果使用無監(jiān)督學習算啊盾碗,由于不存在目標變量值,故而不需要訓練算法舀瓢,所有與算法相關的內容都集中在第 5 步
- 測試算法:
- 對于監(jiān)督學習,必須已知用于評估算法的目標變量值
- 對于無監(jiān)督學習耗美,也必須用其他的評測手段來檢驗算法的成功率
- 如果不滿意算法的輸出結果京髓,可以回到第 4 步,改正并加以測試商架。
- 問題常常會跟數(shù)據(jù)的收集和準備有關堰怨,這是必須調回到第 1 步重新開始
- 使用算法:將機器學習算法轉換成應用程序,執(zhí)行實際任務蛇摸,以檢驗以上步驟是否可以實際環(huán)境中正常工作备图。此時如果碰到新的數(shù)據(jù)問題,同樣需要重復執(zhí)行上述的步驟
5.Python 語言的優(yōu)勢
基于以下三個原因赶袄,我們選擇 python 作為實現(xiàn)機器學習算法的編程語言:
- python 的語法清晰
- 易于操作純文本文件
- 使用廣泛揽涮,存在大量的開發(fā)文檔
5.1 可執(zhí)行偽代碼
python 具有清晰的語法結構,也把它稱作 可執(zhí)行偽代碼(executable pseudo-code)饿肺。
python 語言處理和操作文本文件非常簡單蒋困,非常易于處理非數(shù)值型數(shù)據(jù),還提供了豐富的正則表達式函數(shù)以及很多訪問 web 也的函數(shù)庫敬辣,使得從 html 中提取數(shù)據(jù)變得非常簡單直觀雪标。
5.2 python 比較流行
5.3 python 語言的特色
5.4 python 語言的缺點
python 語言唯一的不足是 性能問題 。