机器学习(七)朴素贝叶斯、决策树与随机森林

一、朴素贝叶斯

1.原理

公式原型: (贝叶斯公式)

求出两个可能性然后进行对比。

#1:事件发生的全局概率(=发生的事件/总事件)

#2:事件发生的局部概率(=局部内发生的事件/局部内总事件--贴近新的样本)

#3:已知事件坐落与数据空间内的概率(=局部内发生的事件/总事件发生的事件)

#4:利用已知数据求得最终概率

Attention:

①先决条件:假定所有事件的概率都是独立的,

②P(X):在比较的时候可以约掉P(X),但是计算的值将不再是后验概率

③已知组大于两类的情况:将所有后验概率计算出来进行比较

2.Python实现

①使用分类器模板

②创建分类器并拟合

from sklearn.naive_bayes import GaussianNB    --导入朴素贝叶斯分类器
classifier=GaussianNB()    --新建类型
classifier.fit(x_train,y_train)    --拟合

③进行预测并展示图线

pred = classifier.predict(x_test)    --进行预测
    --调用展示模板

 二、决策树

1.原理

类别:分类决策树(按类别划分--分类组之间无序)

回归决策树(连续数据--数据之间有序)

分类决策树原理:对平面进行不断分割(直至所有类被分开)

关键:寻找分割线(目的:提升熵)

流程图:划分决策树的步骤(不一定要完全分割--可以用概率表示)

2.Python实现

①使用分类器模板

②创建和拟合分类器

--由于没有使用欧氏距离,所以不需要特征缩放
from sklearn.tree import DecisionTreeClassifier    --导入库
classifier = DecisionTreeClassifier(criterion = entropy,random_state=0)    
    --参数:基尼系数/熵,随机数
classifier.fit(x_train,y_train)    --拟合

③预测和图线展示

y_pred = classifier.predict(x_test)

错误的分类被称为噪音。过度拟合时会被噪音干扰

 三、随机森林

1.原理

采用多个分类器对数据进行学习,再采用方法(加权/投票)将结果组合

Step1:装袋--随机采用K个训练集的数据,将其装袋

Step2:用装袋的数据,训练分类器

Step3:重复Step1-Step2,直到拥有足够的分类器

Step4:使用这些分类器单独预测,并进行投票

2.Python实现

①套用分类器模板

②创建分类器并拟合

from sklearn.ensemble import RandomForestClassifier    --导入类
classifier = RandomForestClassifier(h_estimators=10,criterion=entropy,random_state=0)
    --估计量(决策树数量),标准(基尼指数/熵)
classifier.fit(x_train,y_train)

③预测和图线输出

y_pred = classifier.predict(x_test)    --预测

对比实际测试结果

经验分享 程序员 微信小程序 职场和发展