中国营销网站启信聚客通网络营销策划
news/
2025/9/30 0:39:52/
文章来源:
中国营销网站,启信聚客通网络营销策划,做购物网站骗人,破解直播免费视频目录
一、朴素贝叶斯分类理论
1、贝叶斯分类理论
2、条件概率
3、全概率公式
4、贝叶斯推断
5、朴素贝叶斯推断
6、拉普拉斯平滑系数
二、决策树分类
1、相关概念
2、基于信息增益决策树的建立
3、基于基尼指数决策树的建立 一、朴素贝叶斯分类理论
1、贝叶斯分类理…目录
一、朴素贝叶斯分类理论
1、贝叶斯分类理论
2、条件概率
3、全概率公式
4、贝叶斯推断
5、朴素贝叶斯推断
6、拉普拉斯平滑系数
二、决策树分类
1、相关概念
2、基于信息增益决策树的建立
3、基于基尼指数决策树的建立 一、朴素贝叶斯分类理论
1、贝叶斯分类理论
假设一个数据集它由两类数据组成数据分布如下图所示 p1(x,y)表示数据点(x,y)属于类别1图中红点
p2(x,y)表示数据点(x,y)属于类别2图中蓝点
那么对于一个新数据点 (x,y) 如果p1(x,y)p2(x,y)那么类别为1 如果p1(x,y)p2(x,y)那么类别为2
也就是说我们会选择高概率对应的类别。这就是贝叶斯决策理论的核心思想即选择具有最高概率的决策。
2、条件概率
条件概率(Conditional probability)就是指在事件B发生的情况下事件A发生的概率用P(A|B)来表示。
由事件A、事件B同时发生的概率等于事件B发生的概率乘以事件B发生中事件A也发生的概率即(∩)(|)()同理(∩)(|)()。
得出(|)(|)()/()即条件概率的计算公式。
3、全概率公式
由公式 ()(∩)(∩′)代入(∩)(|)()得到全概率公式()(|)()(|′)(′)再代入条件概率的计算公式 4、贝叶斯推断
(|)(|)()/()中
(|)是后验概率(Posterior probability)可理解为在观察证据 B 时假设 A 发生的概率
(|)是似然度即在假设 A 成立的条件下观察到证据 B 的概率
()是先验概率(Prior probability)即在没有观察到任何证据前假设 A 成立的概率
()是边缘概率即观察到证据 B 的概率可以视为归一化常量
(|)/()称为可能性函数(Likelyhood)这是一个调整因子使得预估概率更接近真实概率。
所以条件概率可以理解为后验概率先验概率调整因子
我们先预估一个先验概率然后加入实验结果看这个实验到底是增强还是削弱了先验概率由此得到更接近事实的后验概率。
5、朴素贝叶斯推断
贝叶斯和朴素贝叶斯的概念是不同的区别就在于“朴素”二字朴素贝叶斯对条件概率分布做了条件独立性的假设。 比如下面的公式假设有n个特征
根据贝叶斯定理后验概率 P(a|X) 可以表示为(a|X)(X|a)(a)/(X)将联合概率 P(X|a) 分解为各个特征的概率乘积 将这个条件独立性假设应用于贝叶斯公式得到 这样朴素贝叶斯分类器就可以通过计算每种可能类别的条件概率和先验概率然后选择具有最高概率的类别作为预测结果。
6、拉普拉斯平滑系数
某些事件或特征可能从未出现过这会导致它们的概率被估计为零。然而在实际应用中即使某个事件或特征没有出现在训练集中也不能完全排除它在未来样本中出现的可能性。拉普拉斯平滑技术可以避免这种“零概率陷阱”。 一般α取值1m的值为总特征数。
通过这种方法即使某个特征在训练集中从未出现过它的概率也不会被估计为零而是会被赋予一个很小但非零的值从而避免了模型在面对新数据时可能出现的过拟合或预测错误。 api: # 朴素贝叶斯算法 sklearn.naive_bayes.MultinomialNB() estimator.fit(x_train, y_train) y_predict estimator.predict(x_test) # 鸢尾花数据集 贝叶斯分类
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB# 加载数据
x,y load_iris(return_X_yTrue)
# 划分数据
x_train,x_test,y_trian,y_test train_test_split(x,y,train_size0.8)
# 处理数据 不用标准化
# 初始化贝叶斯预估器
estimator MultinomialNB()
# 训练模型
estimator.fit(x_train,y_train)
# 评估模型
score estimator.score(x_test,y_test)
print(score)
# 泰坦尼克号数据集 贝叶斯分类
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction import DictVectorizer
import pandas as pddata pd.read_csv(../src/titanic/titanic.csv)
x data[[pclass,age,sex]]
# 众数填充age的缺省值
x[age].fillna(x[age].value_counts().index[0],inplaceTrue)
# 将sex特征下的male和female转换为0和1
x[sex] [0 if imale else 1 for i in x[sex]]
x[pclass][int(i[0]) for i in x[pclass]]
print(x)y data[[survived]]# 划分数据
x_train,x_test,y_train,y_testtrain_test_split(x,y,train_size0.8,random_state100)
# 初始化朴素贝叶斯预估器
estimator MultinomialNB()
# 训练模型
estimator.fit(x_train,y_train)
# 评估模型
score estimator.score(x_test,y_test)
print(score)
# 预测
y_predict estimator.predict([[1,30,1]])
print(y_predict)二、决策树分类
1、相关概念
1.决策节点
通过条件判断而进行分支选择的节点。如将某个样本中的属性值(特征值)与决策节点上的值进行比较从而判断它的流向。
2.叶子节点
没有子节点的节点表示最终的决策结果。
3.决策树的深度
所有节点的最大层次数。决策树具有一定的层次结构根节点的层次数定为0从下面开始每一层子节点层次数增加。
4.决策树优点
可视化-可解释能力-对算力要求低
5.决策树缺点
容易产生过拟合所以应避免调整过大的深度。
2、基于信息增益决策树的建立
信息增益决策树倾向于选择取值较多的属性在有些情况下这类属性可能不会提供太多有价值的信息算法只能对描述属性为离散型属性的数据集构造决策树。
1.信息熵
信息熵描述的是不确定性。信息熵越大不确定性越大。信息熵的值越小则D的纯度越高。
假设样本集合D共有N类第k类样本所占比例为pk则D的信息熵为
2.信息增益
信息增益是一个统计量用来描述一个属性区分数据样本的能力。信息增益越大那么决策树就会越简洁。
这里信息增益的程度用信息熵的变化程度来衡量, 信息增益公式 3.建立步骤
计算根节点的信息熵---计算属性的信息增益---划分属性
3、基于基尼指数决策树的建立
基尼指数(Gini Index)是决策树算法中用于评估数据集纯度的一种度量基尼指数衡量的是数据集的不纯度或者说分类的不确定性。
对于多分类问题如果一个节点包含的样本属于第 k 类的概率是 pk则节点的基尼指数定义为 意义 当一个节点的所有样本都属于同一类别时基尼指数为 0表示纯度最高。 当一个节点的样本均匀分布在所有类别时基尼指数最大表示纯度最低。
应用
在构建决策树时我们希望每个内部节点的子节点能更纯即基尼指数更小。因此选择分割特征和分割点的目标是使子节点的平均基尼指数最小化。
具体来说对于一个特征我们计算其所有可能的分割点对应的子节点的加权平均基尼指数然后选择最小化这个值的分割点。这个过程会在所有特征中重复直到找到最佳的分割特征和分割点。
例如考虑一个数据集 (D)其中包含 (N) 个样本特征 (A) 将数据集分割为 |D_1|和 |D_2| 则特征 (A) 的基尼指数为 其中 |D_1|和 |D_2| 分别是子集 D_1 和 D_2 中的样本数量。
通过这样的方式决策树算法逐步构建一棵树每一层的节点都尽可能地减少基尼指数最终达到对数据集的有效分类。 api: sklearn.tree.DecisionTreeClassifier(....) 参数 criterion gini entropy” 默认为gini 当criterion取值为gini时采用 基尼不纯度Gini impurity算法构造决策树 当criterion取值为entropy”时采用信息增益 information gain算法构造决策树. max_depth int, 默认为None 树的最大深度 可视化决策树 sklearn.tree.export_graphviz(estimator, out_fileiris_tree.dot, feature_namesiris.feature_names) 参数 estimator决策树预估器 out_file生成的文档 feature_names节点特征属性名 功能: 把生成的文档打开复制出内容粘贴到http://webgraphviz.com/中点击generate Graph会生成一个树型的决策树图 # 鸢尾花数据集 使用信息增益算法构造决策树
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.tree import DecisionTreeClassifier,export_graphviziris load_iris()
x,y load_iris(return_X_yTrue)x_train,x_test,y_train,y_test train_test_split(x,y,train_size0.75)scaler StandardScaler()
x_train scaler.fit_transform(x_train)
x_test scaler.transform(x_test)# critierionentropuy 采用信息增益算法构建决策树 (criterion默认为gini 采用基尼不纯度算法构造决策树)
estimator DecisionTreeClassifier(criterionentropuy)
estimator.fit(x_train,y_trian)score estimator.score(x_test,y_test)
print(score)y_predict estimator.predict([[2,2,3,1],[3,5,4,7]])
print(y_predict)# 可视化决策树
# export_graphviz(estimator, out_file../model/iris_tree.dot, feature_namesiris.feature_names)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922371.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!