機器學習中的矩陣
機器學習中矩陣是一個很重要的概念锤岸,對我們理解其中變量的相關(guān)性和相似性擦秽,降維等分析具有很大的作用,其中一些概念和數(shù)學中的矩陣表示有些不同暮的,在這里說明一些笙以,以便加深理解
- 特征
特征在數(shù)學的矩陣中標示的這個向量的特征值和特征向量,但是在機器學習中冻辩,我們習慣將多個實例的變量用表格的形式來進行綜合表述猖腕,比如:
<table>
<tbody>
<tr>
<td>名稱</td>
<td>高度cm</td>
<td>重量kg</td>
</tr>
<tr>
<td>小紅</td>
<td>168</td>
<td>56</td>
</tr>
<tr>
<td>小名</td>
<td>200</td>
<td>50</td>
</tr>
<tr>
<td>橘子</td>
<td>8</td>
<td>4</td>
</tr>
<tr>
<td>香蕉</td>
<td>10</td>
<td>6</td>
</tr>
<tbody>
</table>
在這個表格中拆祈,我們將不同的行表示一個向量,每個列就表示成相應的特征谈息,可以看出缘屹,不同類型中特征差異會挺大的,對于相似性分析來說有很重要的意義
數(shù)據(jù)的預處理侠仇,均值和歸一化
- 數(shù)據(jù)的歸一化(其實就是將數(shù)據(jù)變成正態(tài)分布轻姿,將不是正態(tài)分布的數(shù)據(jù)正態(tài)分布化)
在機器學習和數(shù)據(jù)分析中,我們需要去掉特征的量綱逻炊,好對數(shù)據(jù)進行比較分析互亮,比如人和牛的身高/體重的對比,沒有什么可比性余素,但是將身高/體重的比例進行對比就是發(fā)現(xiàn)不同的身高體重比需要消耗多少能量了
一般我們使用的數(shù)據(jù)歸一化也叫數(shù)據(jù)標準化豹休,其公式如下
X1= (X-M)/S
M為均值,s為標準差
在python中可以使用sklearn來對數(shù)據(jù)進行預處理桨吊,均值化為0威根,方差化為1的正態(tài)分布曲線
from sklearn import preprocessing
import numpy as np
data = np.array([[1,2,3],[0,3,4],[5,2,1]])
X = preprocessing.scale(data)
- ID3算法
ID3算法是用來對決策樹進行規(guī)劃選擇節(jié)點的一種算法,通過選擇不同的節(jié)點來最小化樹的高度视乐,從而進行最小的選擇就能實現(xiàn)分類了
熵值的計算:
H(X) = -∑p*log(p)
I(S1, S2) = -p1log(p1) - p2log(p2)
其中p1=S1/S, p2=S2/S
一個分類下的熵的計算為:
G(分類) = I(該分類標簽) - E(pi(該分類占的權(quán)重)*I(分類結(jié)果下的標簽))
數(shù)據(jù)劃分
使用sklearn中的cross_validate的train_test_split函數(shù)可以簡單快速的完成數(shù)據(jù)集的劃分
X_train,x_test,Y_train,y_test = train_test_split(data, label, test_size=0.3)
機器學習等高線
等高線是用來洛搀,判斷多維圖像的變化快慢程度的一種直觀形式,一般情況下佑淀,等高線圖上的高度都是等間隔的留美,如果一條輪廓線與另一條輪廓線彼此很近,也就是我們可以用很少的橫向距離來增加高度伸刃,因此證明這個大山很陡峭;如果一條輪廓線與另一條輪廓線彼此很遠谎砾,也就是我們要用很長的橫向距離來增加高度,因此證明這個大山很平穩(wěn)捧颅。
機器學習算法的歸類
監(jiān)督學習
回歸算法
采用對誤差的衡量來探索變量之間的區(qū)別和聯(lián)系的一類算法景图,主要有:最小二乘法(Ordinary Least Square),邏輯回歸(Logistic Regression)碉哑,逐步式回歸(Stepwise Regression)挚币,多元自適應回歸樣條(Multivariate Adaptive Regression Splines)以及本地散點平滑估計(Locally Estimated Scatterplot Smoothing)
線性回歸
- 優(yōu)點
簡單,計算快
- 缺點
不直觀
基于實例的算法
基于實例的算法常常用來對決策問題建立模型谭梗,這樣的模型常常先選取一批樣本數(shù)據(jù),然后根據(jù)某些近似性把新數(shù)據(jù)與樣本數(shù)據(jù)進行比較宛蚓。通過這種方式來尋找最佳的匹配激捏。因此,基于實例的算法常常也被稱為“贏家通吃”學習或者“基于記憶的學習”凄吏。常見的算法包括 k-Nearest Neighbor(KNN), 學習矢量量化(Learning Vector Quantization远舅, LVQ)闰蛔,以及自組織映射算法(Self-Organizing Map , SOM)
正則化算法
正則化方法是其他算法(通常是回歸算法)的延伸图柏,根據(jù)算法的復雜度對算法進行調(diào)整序六。正則化方法通常對簡單模型予以獎勵而對復雜算法予以懲罰。常見的算法包括:Ridge Regression蚤吹, Least Absolute Shrinkage and Selection Operator(LASSO)例诀,以及彈性網(wǎng)絡(Elastic Net)。
決策樹學習
決策樹算法根據(jù)數(shù)據(jù)的屬性采用樹狀結(jié)構(gòu)建立決策模型裁着, 決策樹模型常常用來解決分類和回歸問題繁涂。常見的算法包括:分類及回歸樹(Classification And Regression Tree, CART)二驰, ID3 (Iterative Dichotomiser 3)扔罪, C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 隨機森林(Random Forest)桶雀, 多元自適應回歸樣條(MARS)以及梯度推進機(Gradient Boosting Machine矿酵, GBM)
貝葉斯算法
貝葉斯方法算法是基于貝葉斯定理的一類算法,主要用來解決分類和回歸問題矗积。常見算法包括:樸素貝葉斯算法全肮,平均單依賴估計(Averaged One-Dependence Estimators, AODE)漠魏,以及Bayesian Belief Network(BBN)倔矾。
基于核的算法
基于核的算法中最著名的莫過于支持向量機(SVM)了。 基于核的算法把輸入數(shù)據(jù)映射到一個高階的向量空間柱锹, 在這些高階向量空間里哪自, 有些分類或者回歸問題能夠更容易的解決。 常見的基于核的算法包括:支持向量機(Support Vector Machine禁熏, SVM)壤巷, 徑向基函數(shù)(Radial Basis Function ,RBF)瞧毙, 以及線性判別分析(Linear Discriminate Analysis 胧华,LDA)等
聚類算法
聚類,就像回歸一樣宙彪,有時候人們描述的是一類問題矩动,有時候描述的是一類算法。聚類算法通常按照中心點或者分層的方式對輸入數(shù)據(jù)進行歸并释漆。所以的聚類算法都試圖找到數(shù)據(jù)的內(nèi)在結(jié)構(gòu)悲没,以便按照最大的共同點將數(shù)據(jù)進行歸類。常見的聚類算法包括 k-Means算法以及期望最大化算法(Expectation Maximization男图, EM)示姿。
關(guān)聯(lián)規(guī)則學習
關(guān)聯(lián)規(guī)則學習通過尋找最能夠解釋數(shù)據(jù)變量之間關(guān)系的規(guī)則甜橱,來找出大量多元數(shù)據(jù)集中有用的關(guān)聯(lián)規(guī)則。常見算法包括 Apriori算法和Eclat算法等栈戳。
人工神經(jīng)網(wǎng)絡
人工神經(jīng)網(wǎng)絡算法模擬生物神經(jīng)網(wǎng)絡岂傲,是一類模式匹配算法。通常用于解決分類和回歸問題子檀。人工神經(jīng)網(wǎng)絡是機器學習的一個龐大的分支镊掖,有幾百種不同的算法。(其中深度學習就是其中的一類算法命锄,我們會單獨討論)堰乔,重要的人工神經(jīng)網(wǎng)絡算法包括:感知器神經(jīng)網(wǎng)絡(Perceptron Neural Network), 反向傳遞(Back Propagation), Hopfield網(wǎng)絡脐恩,自組織映射(Self-Organizing Map, SOM)镐侯。學習矢量量化(Learning Vector Quantization, LVQ)
過擬合問題的解決
對于過擬合問題的解決驶冒,可以通過下面幾種方式來實現(xiàn):
1. 減少特征變量
2. 使用正則化方式
* 正則化就是對我們的代價函數(shù)加上一個λ∑j的系數(shù)懲罰苟翻,比較加入太多的特征或者是系數(shù)太大而導致的過擬合