机器学习概念
机器学习就是把无序的数据转换成实用的信息。
机器学习的主要任务就是分类,通过通过训练数据训练算法,终于能够将实际的数据分到合适的类别中
监督学习算法:预測目标变量的值
k-means算法。线性回归
朴素贝叶斯算法,局部加权线性回归
支持向量机。ridge回归
决策树。lasso最小回归系数预计
无监督学习算法:不须要预測目标变量的值
k-均值。最大期望算法
DBSCAN,parzen窗设计
确定哪种算法之后,还要确定目标变量的类型:
离散型:是/否,1/2/3 分类器算法
连续性:-999~999 回归算法
数据归一化:
为了使得不同纬度的数据大小相似
newValue = oldValue - min / max - min
一堆測试数据,这些数据,每一行都有对应的分类
兴许将输入数据依据測试数据去学习,将输入数据进行分类
计算输入数据集中每一个数据与已有分类中心的距离,将样本归到距离最短的中心所在类里。然后将该类中全部点计算平均值。更新中心位置维度数据,重复。知道该中心维度数据不变,或者变化误差小于自己定义的误差,则停止,学习结束。
信息熵:
假如时间A的分类是(A1。A2......AN),每部分发生的概率是(P1,P2.......PN),那信息熵的计算公式例如以下:
H = -p1logp1-p2logp2-......-pnlogpn
当这件事的不确定性越大。那么要搞清它所须要的信息量也就越大,也就是信息熵越大。
信息熵衡量的是在你知道一个事件的结果后平均会带给你多大的信息量。
假设一个骰子六个面都是1的话,那么它不会给你带来不论什么新的信息。由于H=-log1 = 0
信息熵计算的是了解这件事所付出的平均信息量。比方32个球队夺冠可能性同样即,pi=1/32,那么信息熵的计算例如以下:
H = -(1/32)log(1/32)-(1/32log(1/32))-......=5/32+5/32+.......5/32 = 5
所以就须要5个比特的信息量才干搞清它的全部结果。
信息增益:
衡量一个属性区分以上数据样本的能力,信息增益量越大。这个属性作为一棵树的根节点就能使这棵树越简洁
DEMO
NO. , Outlook , Temperature , Humidity , Wind , Play
1 , Sunny , Hot , High , Weak , No
2 , Sunny , Hot , High , Strong , No
3 , Overcast , Hot , High , Weak , Yes
4 , Rain , Mild , High , Weak , Yes
5 , Rain , Cool , Normal , Weak , Yes
6 , Rain , Cool , Normal , Strong , No
7 , Overcast , Cool , Normal , Strong , Yes
8 , Sunny , Mild , High , Weak , No
9 , Sunny , Cool , Normal , Weak , Yes
10 , Rain , Mild , Normal , Weak , Yes
11 , Sunny , Mild , Normal , Strong , Yes
12 , Overcast , Mild , High , Strong , Yes
13 , Overcast , Hot , Normal , Weak , Yes
14 , Rain , Mild , High , Strong , No
1 计算分类系统熵
类别是 是否出去玩。取值为yes的记录有9个,取值为no的有5个,即说这个样本里有9个正例,5 个负例。记为S(9+,5-),S是样本的意思(Sample)。那么P(c1) = 9/14, P(c2) = 5/14这里熵记为Entropy(S),计算公式为:
Entropy(S)= -(9/14)*log2(9/14)-(5/14)*log2(5/14)用Matlab做数学运算
2 分别以Wind、Humidity、Outlook和Temperature作为根节点。计算其信息增益
我们来计算Wind的信息增益当Wind固定为Weak时:记录有8条,当中正例6个,负例2个。
相同,取值为Strong的记录6个,正例负例个3个。
我们能够计算对应的熵为:
Entropy(Weak)=-(6/8)*log(6/8)-(2/8)*log(2/8)=0.811
Entropy(Strong)=-(3/6)*log(3/6)-(3/6)*log(3/6)=1.0
如今就能够计算出对应的信息增益了:所以。对于一个Wind属性固定的分类系统的信息量为 (8/14)*Entropy(Weak)+(6/14)*Entropy(Strong)
Gain(Wind)=Entropy(S)-(8/14)*Entropy(Weak)-(6/14)*Entropy(Strong)=0.940-(8/14)*0.811-(6/14)*1.0=0.048
这个公式的奥秘在于,8/14是属性Wind取值为Weak的个数占总记录的比例,相同6/14是其取值为Strong的记录个数与总记录数之比。同理,假设以Humidity作为根节点:
Entropy(High)=0.985 ; Entropy(Normal)=0.592
Gain(Humidity)=0.940-(7/14)*Entropy(High)-(7/14)*Entropy(Normal)=0.151
以Outlook作为根节点:
Entropy(Sunny)=0.971 ; Entropy(Overcast)=0.0 ; Entropy(Rain)=0.971
Gain(Outlook)=0.940-(5/14)*Entropy(Sunny)-(4/14)*Entropy(Overcast)-(5/14)*Entropy(Rain)=0.247
以Temperature作为根节点:
Entropy(Cool)=0.811 ; Entropy(Hot)=1.0 ; Entropy(Mild)=0.918
Gain(Temperature)=0.940-(4/14)*Entropy(Cool)-(4/14)*Entropy(Hot)-(6/14)*Entropy(Mild)=0.029
这样我们就得到了以上四个属性对应的信息增益值:
Gain(Wind)=0.048 ;Gain(Humidity)=0.151 ; Gain(Outlook)=0.247 ;Gain(Temperature)=0.029
最后依照信息增益最大的原则选Outlook为根节点。子节点反复上面的步骤。这颗树能够是这种,它读起来就跟你觉得的那样:
决策树的关键是怎样选定树的根节点。后面依次递归