数据挖掘从入门到放弃(三):朴素贝叶斯

简介: 数据挖掘从入门到放弃(三):朴素贝叶斯

网络异常,图片无法展示
|

朴素贝叶斯是一种常用的分类算法,适用于维度非常高的数据集,具有速度快,可调参数少有点,非常适合为分类问题提供快速粗糙的基本方案,经常用于垃圾邮件分类等场景中.

朴素贝叶斯算法

朴素贝叶斯算法依据概率论中贝叶斯定理建立模型,前提假设各个特征之间相互独立(这也是正式“朴素”的含义),这个假设非常极端,因为实际场景中多个特征一般存在相关性,特征相对独立的假设使得算法变得简单,因此在特征值有强相关性的场景中容易出现分类不准的问题。


其数学原理很容易理解:如果你看到一个人总是做好事,则会推断那个人多半会是一个好人。这就是说,当你不能准确判断时候,可以依靠事物特定本质相关的事件出现的多少(概率)作为判断依据,贝叶斯定理:


网络异常,图片无法展示
|


该公式表示在 B 发生的条件下 A 发生的条件概率,等于 A 事件发生条件下 B 事件发生的条件概率乘以 A 事件的概率,再除以 B 事件发生的概率。公式中,P(A)叫做先验概率,P(A/B)叫做后验概率。


举个栗子:一个非常炎热的夏天晚上,走在校园里面,伸手不见五指.......lol,这个时候迎面走来一个人,太远看不清楚 ta 的性别,但我们知道 ta 的特征是“短裤+短发”,而且事先有一些学生的调查样本,需要你根据某些特性大致判断 Ta 的性别,请问你应该怎么分类?


**


网络异常,图片无法展示
|


**


这样分析,我们首先计算求得 P(boy|短裤短发)和 P(girl|短裤短发)然后比较两者大小,作为依据判定性别,也就是我们根据以往数据中穿着短裤短发的人中 boy 和 girl 的条件概率作为依据,来判断当我们看见“短裤短发”人的性别,在这个例子中我们很明显把 ta 判定是个 boy,核心思想就是这么简单:


网络异常,图片无法展示
|

拉普拉斯修正

由于特征空间较为稀疏,因此,常常会出现概率为 0 的情况,在这种情况下,需要对其进行一些修正。常用的修正方法是拉普拉斯修正法,就是使得计算条件概率时候分子+1,很容易理解;


蘑菇数据集


该数据集包含了 8124 个样本和 22 个变量(如蘑菇的颜色、形状、光滑度等),是机器学习分类算法算法不可多得的一个优质数据集。

数据探索

import pandas as pd

复制代码


pd.set_option("display.max_columns",100) #让所有列都能加载出来

复制代码


# class标识有毒无毒

复制代码


fig,(ax1,ax2)=plt.subplots(1,2,figsize=(15,5))

复制代码


网络异常,图片无法展示
|


sns.countplot(x='cap-color',hue='class',data=mushrooms)

复制代码


网络异常,图片无法展示
|


# 把有毒无毒换成0/1类型,1标识无毒

复制代码


网络异常,图片无法展示
|


# 使用sklearn进行预处理

复制代码


sns.countplot(x='cap-shape',data=mushrooms,hue='class',)

复制代码


网络异常,图片无法展示
|


建立模型


X=mushrooms.drop('class',axis=1) #Predictors

复制代码


from sklearn.model_selection import train_test_split

复制代码


# 贝叶斯from sklearn.naive_bayes import GaussianNBfrom sklearn import metrics model2 = GaussianNB()model2.fit(X_train, y_train)prediction2 = model2.predict(X_test)print('The accuracy of the Decision Tree is: {0}'.format(metrics.accuracy_score(prediction2,y_test)))


目录
相关文章
|
机器学习/深度学习 存储 传感器
【机器学习入门与实践】合集入门必看系列,含数据挖掘项目实战
【机器学习入门与实践】合集入门必看系列,含数据挖掘项目实战
|
机器学习/深度学习 数据可视化 算法
【机器学习入门与实践】数据挖掘-二手车价格交易预测(含EDA探索、特征工程、特征优化、模型融合等)
【机器学习入门与实践】数据挖掘-二手车价格交易预测(含EDA探索、特征工程、特征优化、模型融合等)
|
机器学习/深度学习 数据挖掘 TensorFlow
数据挖掘从入门到放弃(七):TensorFlow 和 keras 实现线性回归 LinearRegression
数据挖掘从入门到放弃(七):TensorFlow 和 keras 实现线性回归 LinearRegression
189 0
|
机器学习/深度学习 算法 数据挖掘
数据挖掘从入门到放弃(六):K-means 聚类
数据挖掘从入门到放弃(六):K-means 聚类
119 0
|
机器学习/深度学习 数据可视化 数据挖掘
数据挖掘从入门到放弃(五)seaborn 的数据可视化
数据挖掘从入门到放弃(五)seaborn 的数据可视化
222 0
|
存储 算法 数据挖掘
数据挖掘从入门到放弃(四):手撕(绘)关联规则挖掘算法
数据挖掘从入门到放弃(四):手撕(绘)关联规则挖掘算法
159 0
|
机器学习/深度学习 算法 数据挖掘
数据挖掘从入门到放弃(二):决策树
数据挖掘从入门到放弃(二):决策树
143 0
|
机器学习/深度学习 自然语言处理 算法
数据挖掘从入门到放弃(一):线性回归和逻辑回归
数据挖掘从入门到放弃(一):线性回归和逻辑回归
171 0
|
大数据 数据挖掘 前端开发
【经验】零基础该如何入门数据挖掘?
在天池创立之初,我们的使命就是:让无法触及大数据的人能够触及到真正企业级的大数据。秉承着这样的理念,我们在天池平台上培养和锻炼了一批又一批的大数据人才。
1805 0

热门文章

最新文章