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

一、朴素贝叶斯

        1.原理

                公式原型:P(A|B)=\frac{P(B|A)*P(A)}{P(B)} (贝叶斯公式)

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

                        #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)    --预测

                         对比实际测试结果

猜你喜欢

转载自blog.csdn.net/weixin_37878740/article/details/126329277