《机器学习实战》笔记(01):机器学习基础
機器學習基礎
機器學習能讓我們自數據集中受到啟發,換句話說利用計算機來彰顯數據背后的真實含義。
機器學習在日常生活中的應用
何為機器學習
機器學習就是把無序的數據轉換成有用的信息
機器學習用到統計學,為什么用統計學呢?
在現實生活中,并不是每一個問題都存在確定的解決方案。在很多時候,我們都無法透徹地理解問題,或者沒有足夠的計算資源為問題精確建立模型,例如我們無法給人類活動的動機建立模型。為了解決這些問題,我們需要用到統計學知識。
關鍵術語
專家系統(如:鳥類分類系統)
特征feature(屬性attributes)(如:鳥的體重、翼展、背后顏色)
機器學習的主要任務就是分類(從眾多其他鳥類中分辨出啄木鳥)
決定使用某個機器學習算法進行分類,首先要做的算法訓練,即如何如何分類。
通常我們為算法輸入大量已分類數據作為訓練集
上圖表包含6個訓練樣本的訓練集
上圖闡述特征與目標變量Target Variable
目標變量是機器學習算法的預測結果
訓練樣本集必須確定知道目標變量的值,以便機器學習算法可以發現特征和目標變量之間的關系。
為了測試機器學習算法的效果,通常使用兩套獨立的樣品集:訓練數據和測試數據。
比較測試樣品預測的慕不愛變量值與實際樣品類別之間的差距,就可以得出算法的實際精確度。
知識表示knowledge representation:假定這個鳥類分類程序,經過測試滿足精確度要求,是否我們就可以看到機器已經學會了如何區分不同的鳥類?這個工作稱之為知識表示。知識表示可以采用規則集的形式,也可以采用概率分布形式,甚至可以是訓練樣品集中的一個實例。
機器學習的主要任務
-
監督學習(這類算法必須知道預測什么,即目標變量的分類信息)
- 分類(主要任務是將實例數據劃分為合適的分類中)
- 回歸(主要用于數值型數據,例子:通過給定數據點的最優擬合曲線)
-
無監督學習(此時數據沒有類別信息,也不會給定目標類)
- 聚類(將數據集合分成由類似的對象組成的多個類的過程)
- 密度估計(尋找描述數據統計值的過程)
- 可以減少數據特征的維度,以便可以使用二維或三維圖形更加直觀地展示數據
機器學習用到的算法
如何選擇合適的算法
必須考慮下面兩個問題:
1.使用機器學習算法的目的,想要完成何種任務?(注意這不是一成不變的)
if(想要預測目標變量的值){//監督學習算法if(目標變量類型值 == 離散型){//是,否)1、2、3)紅、黑、黃)分類算法}else if(目標變量類型值 == 連續型){//0~100,-999~999回歸算法} }else{//無監督學習算法if(將數據劃分為離散的組){聚類算法}if(將數據劃分為離散的組&&估計數據與每個分組的相似程度){密度估計算法}}2.需要分析或收集的數據是什么?
主要應該了解數據的以下特征:特征值是離散型變量還是連續型變量,特征值中是否存在缺失的值,何種原因造成缺失值,數據中是否存在異常值,某個特征發生的頻率如何等等。
開發機器學習應用程序的步驟
使用Python為機器學習算法語言
本書要安裝Python2
安裝NumPy庫
機器學習算法涉及很多線性代數知識
pip install numpynumpy初體驗
hellonumpy.py
# -*- coding: utf-8 -*- from numpy import *array = random.rand(4, 4)print array#隨機4 * 4數組 print "----------------------------------------"randMat = mat(array) #數組轉換成矩陣print randMat print "----------------------------------------"invRandMat = randMat.I #矩陣求逆print invRandMat print "----------------------------------------"myEye = randMat * invRandMat#矩陣相乘print myEye print "----------------------------------------"pure = myEye - eye(4, 4)#eye(4, 4) 創建單位矩陣print pure""" [[0.59774478 0.27667655 0.83676654 0.34214905][0.15510116 0.34282224 0.67390717 0.82408148][0.74861786 0.72573314 0.76544715 0.04513842][0.73328569 0.08812684 0.72491471 0.48711059]] ---------------------------------------- [[0.59774478 0.27667655 0.83676654 0.34214905][0.15510116 0.34282224 0.67390717 0.82408148][0.74861786 0.72573314 0.76544715 0.04513842][0.73328569 0.08812684 0.72491471 0.48711059]] ---------------------------------------- [[-3.08488433 -0.49366735 1.05662269 2.90410042][-2.21556483 0.95867519 1.79791501 -0.23224319][ 5.28389187 -0.50394398 -1.44547134 -2.72492819][-2.81870016 1.319681 0.2352496 1.77838899]] ---------------------------------------- [[ 1.00000000e+00 1.11022302e-16 1.38777878e-17 1.11022302e-16][-4.44089210e-16 1.00000000e+00 1.38777878e-16 2.22044605e-16][-3.60822483e-16 2.08166817e-17 1.00000000e+00 -8.32667268e-17][-6.66133815e-16 1.11022302e-16 -1.66533454e-16 1.00000000e+00]] ---------------------------------------- [[ 0.00000000e+00 1.11022302e-16 1.38777878e-17 1.11022302e-16][-4.44089210e-16 0.00000000e+00 1.38777878e-16 2.22044605e-16][-3.60822483e-16 2.08166817e-17 -1.11022302e-16 -8.32667268e-17][-6.66133815e-16 1.11022302e-16 -1.66533454e-16 0.00000000e+00]] """總結
以上是生活随笔為你收集整理的《机器学习实战》笔记(01):机器学习基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Numpy 入门
- 下一篇: 剑指offer_02