何謂機器學習
機器學習就是把無序的數(shù)據(jù)轉(zhuǎn)換成有用的信息,對與任何需要操作數(shù)據(jù)的領(lǐng)域都有所裨益九秀。
機器學習的主要任務就是分類婚度,當我們決定使用某個機器學習算法進行分類皱卓,首先需要做的是算法訓練伟葫,即學習如何分類恨搓。通常我們?yōu)樗惴ㄝ斎氪罅恳逊诸悢?shù)據(jù)作為算法的訓練集。訓練集是用于訓練機器學習算法的數(shù)據(jù)樣本集合筏养,每個訓練樣本包含多個特征和一個目標變量斧抱。目標變量是機器學習算法的預測結(jié)果,在分類算法中目標變量的類型通常是標稱型的渐溶,而在回歸算法中通常是連續(xù)型的辉浦。訓練樣本必須知道目標變量的值,以便機器學習算法可以發(fā)現(xiàn)特征和目標變量之間的關(guān)系茎辐。我們通常將分類問題中的目標變量稱為類別宪郊,并假定分類問題只存在有限個數(shù)的類別。
為了測試機器學習算法的效果拖陆,通常使用兩套獨立的樣本集:訓練數(shù)據(jù)和測試數(shù)據(jù)废膘。當機器學習程序開始運行時,使用訓練樣本集作為算法的輸入慕蔚,訓練完成之后輸入測試樣本。輸入測試樣本時并不提供測試樣本的目標變量斋配,由程序決定樣本屬于哪個類別孔飒。比較測試樣本預測的目標變量值與實際樣本類別之間的差別,就可以得出算法的實際精度艰争。
機器學習的主要任務
除了分類問題(將實例數(shù)據(jù)劃分到合適的分類中)外坏瞄,機器學習的另一項任務就是回歸,它主要用于預測數(shù)值型數(shù)據(jù)甩卓,如數(shù)據(jù)擬合曲線鸠匀。分類和回歸都屬于監(jiān)督學習,因為這類算法必須知道預測什么逾柿,即目標變量的分類信息缀棍。
與監(jiān)督學習相對應的是無監(jiān)督學習此時數(shù)據(jù)沒有類別信息宅此,也不會給定目標值。在無監(jiān)督學習中爬范,將數(shù)據(jù)集合分成由類似對象組成的多個累的過程被稱為聚類父腕;將尋找描述數(shù)據(jù)統(tǒng)計值的過程稱為密度估計。此外青瀑,無監(jiān)督學習還可以減少數(shù)據(jù)特征的維度璧亮,以便使用二維或三圍圖形直觀地展示數(shù)據(jù)信息。
如何選擇合適的算法
選擇實際可用的算法必須考慮以下兩個問題:使用機器學習算法的目的斥难;需要分析或收集的數(shù)據(jù)是什么枝嘶。
考慮使用機器學習的目的。如果想要預測目標變量的值哑诊,則可以選擇監(jiān)督學習算法群扶。在根據(jù)目標變量的類型,離散型選擇分類器算法搭儒,連續(xù)數(shù)值型選擇回歸算法穷当。如果不想預測目標變量的值,則可以選擇無監(jiān)督算法淹禾,再根據(jù)是否需要將數(shù)據(jù)劃分為離散的組馁菜,確定使用聚類算法,如果還需估計數(shù)據(jù)與每個分組的相似程度則選擇使用密度估計算法铃岔。
這里我們主要聚焦在分類器算法
其次需要考慮數(shù)據(jù)問題汪疮。特征值是離散型變量還是連續(xù)型變量,特征值中是否存在缺失的值毁习,何種原因造成缺失智嚷,數(shù)據(jù)中是否存在異常值,某個特征發(fā)生的頻率如何纺且。充分了解這些數(shù)據(jù)特性有助于我們選擇機器學習算法盏道。
開發(fā)機器學習應用程序的步驟
- 收集數(shù)據(jù):如使用網(wǎng)絡(luò)爬蟲從網(wǎng)上抽取數(shù)據(jù),設(shè)備發(fā)送來的實測數(shù)據(jù)等
- 準備輸入數(shù)據(jù):確保數(shù)據(jù)格式符合要求载碌,方便匹配操作
- 分析輸入數(shù)據(jù):人工分析得到的數(shù)據(jù)是否存在空值猜嘱、異常值,是否可以識別出模式
- 訓練算法:將訓練數(shù)據(jù)集輸入到算法中嫁艇,抽取知識或信息
- 測試算法:評估算法的效果朗伶,如識別準確率、用時等
- 使用算法:將算法轉(zhuǎn)換為應用程序步咪,執(zhí)行實際任務论皆。
Python語言的優(yōu)勢
為什么選擇Python作為實現(xiàn)機器學習算法的編程語言?
- Python的語法清晰
- 易于操作純文本文件
- 使用廣發(fā),存在大量的開發(fā)文檔
缺點:性能問題点晴,運行效率不高感凤。