1.基本概念
- 機器學習:發明算法將數據轉化為智能行為
- 數據挖掘 VS 機器學習:前者側重尋找有價值的信息,后者側重執行已知的任務。后者是前者的先期准備
- 過程:數據——>抽象化——>一般化。或者:收集數據——推理數據——歸納數據——發現規律
抽象化: - 訓練:用一個特定模型來擬合數據集的過程
- 用方程來擬合觀測的數據:觀測現象——數據呈現——模型建立。通過不同的格式來把信息概念化
一般化: - 一般化:將抽象化的知識轉換成可用於行動的形式
- 采用啟發式算法(利用相近原理和其他一些經驗法則)來划分概念集合,但不能保證找到對數據建模的最優概念集,有時會導致錯誤結論
- 算法偏差:算法的結論是系統性的不准確。偏差是任何機器學習任務的抽象化和一般化這兩個過程相聯系的不可避免的謬誤,一般化的最后一步就是在存在偏差的情況下判斷模型的成功性。由於數據中的噪聲或無法解釋的波動導致模型不能完美的一般化
- 過擬合問題的基礎:試圖用模型擬合噪聲(噪聲無法解釋,解釋就會出錯)
- 過擬合:一個模型訓練時表現好,測試時很差。過度擬合了訓練集,即不能很好地一般化
2.選擇機器學習算法
- 機器學習步驟:
收集數據——探索和准備數據(80%時間)——訓練模型——評價模型性能——改進模型性能 - 沒有免費午餐定理:沒有一種機器學習方法對所有環境都是最好的
- 輸入數據:案例example,特征feature。一般行為案例,列為特征(與基因表達數據相反)
- 算法分類:監督學習算法(用於預測模型),非監督學習(用於描述模型)
- 有監督學習:監督不是人為干預,而是讓目標值監督,告訴學習任務。分類變量可用於分類(類可能有多個水平),數值型數據可建立回歸模型預測
- 無監督學習:沒有一個明確的學習目標(屬性無輕重之分),在數據挖掘中更常用。如購物商品之間聯系的購物籃分析(捆綁銷售)。描述性模型把數據同類型分組稱之聚類。
- 常見有監督學習算法:
分類:K近鄰,朴素貝葉斯,決策樹,分類器
數值預測:線性回歸,回歸樹,模型樹
分類和數值預測:神經網絡,支持向量機 - 常見無監督學習算法:
模式識別:關聯規則
聚類:K均值聚類 - 模型的選擇是帶有隨機性的。當預測准確性是主要考慮因素時,需要測試多個模型,然后選擇一個最好的。
3.使用R進行機器學習
- CRAN收錄的機器學習R包:https://cran.r-project.org/web/views/MachineLearning.html
- RWeka包:基於Java平台的R使用機器學習算法的函數集合
install.packages("RWeka")
library(RWeka)
- R管理數據
save(x,y,z,file='mydata.RData')
load('mydata.RData')
save.image() #立刻結束當前R繪畫,寫入.RData文件中
- 探索和理解數據
str(data)
summary()
mean()
median()
IQR() #四分位距,Q1與Q3之差,體現數據分散程度
quantile() #返回5數
quantile(data$price, probs=c(0.01,0.99)) #第1和第99百分位數
quantile(data$price, seq(from=0, to=1, by=0.2))
#可視化
boxplot()
hist()
- 均值比中位值對極端值(異常值)更敏感
- 偏度(skew):比如,右偏是右邊比左邊更為分散(不要理解反了)
- 均勻分布:所有值等可能發生。並非所有隨機事件都服從均勻分布
- 衡量數據分散程度:方差var或標准差sd(方差平方根),var越大表在均值附近越分散,sd平均來看每個值和均值相差多少
var()
sd()
- 68-95-99.7規則(經驗法則):正態分布中68%的值落在均值左右1個標准差的范圍內,而95%和99.7%的值各自落在均值左右2個和3個標准差的范圍內。數值落在均值的3個標准差以外是極端罕見事件。
- 分類變量探索:
table()
prop.table()
- 變量間關系探索
plot(x,y)
# 並非所有關聯都成直線
二元指示變量(啞變量):如汽車有9種顏色分為2組,一組保守色,一組非保守色,指示變量可分別設為1和0
雙向交叉表/列聯表:
library(gmodels)
CrossTable(x,y) #chisq = TRUE獲取卡方檢驗結果,概率值越小,說明兩個變量相關越大
CrossTable的輸出示例:
機器學習與R語言系列推文匯總:
【機器學習與R語言】1-機器學習簡介
【機器學習與R語言】2-K近鄰(kNN)
【機器學習與R語言】3-朴素貝葉斯(NB)
【機器學習與R語言】4-決策樹
【機器學習與R語言】5-規則學習
【機器學習與R語言】6-線性回歸
【機器學習與R語言】7-回歸樹和模型樹
【機器學習與R語言】8-神經網絡
【機器學習與R語言】9-支持向量機
【機器學習與R語言】10-關聯規則
【機器學習與R語言】11-Kmeans聚類
【機器學習與R語言】12-如何評估模型的性能?
【機器學習與R語言】13-如何提高模型的性能?