机器学习算法:朴素贝叶斯 | Python和R语言代码的实现
朴素贝叶斯
它是一种基于贝叶斯定理的分类技术,假设预测变量之间独立。简而言之,朴素贝叶斯分类器假设类中某些特征的存在独立于其他特征的存在。例如,红色、圆形、直径约 3 英寸的水果可以被视为苹果。即使这些特征相互依赖或存在其他特征,朴素贝叶斯分类器也会考虑所有这些策略来独立区分该水果是苹果的概率。
朴素贝叶斯模型易于构建,适用于非常大的数据集。虽然简单,朴素贝叶斯却被誉为高性能甚至复杂的分类方法。
Bayes定理提供了一种计算P(C)、P(X)和P(X,C)的后验概率p(C* x)的方法。看下面的等式:
这里,
- P(C x) 是给定(目标)类(属性)的后验概率。
- P(C) 是该类别的先验概率。
- P(x,c) 是预测某个类别的概率。
- P(x) 是预测变量的先验概率。
示例:让我们通过一个例子来理解。下面我有天气训练数据集和相应的目标变量“play”。现在,我们要根据天气情况来判断玩家是否愿意出战。让我们按照下面的步骤来进行操作。
步骤 1:将数据集转换为频率表
步骤 2:通过找到暗概率 = 0.29 的概率和概率 0.64 来创建概率表。
第3步:使用朴素贝叶斯方程计算每个类别的后验概率。后验概率最高的类别是预测结果。
问:玩家真的想在天气好的时候去玩吗?
我们可以用上面讨论的方法来解决,所以 P(Yes | Sunny) = P(Sunny | Yes) * P(Yes) / P (Sunny)
这里我们有 P (Sunny | Yes) = 3/9 = 0.33, P(Sunny) = 5/14 = 0.36, P(Yes)= 9/14 = 0.64 下一个 P(Yes | Sunny) = 0.33 * 0, 64 / 0.36 = 0.60,其中具有更高的可能性。
朴素贝叶斯使用类似的方法根据不同的属性预测不同的类别概率。该算法主要用于文本分类,存在不同类型的问题。
Python代码
#Import Library
from sklearn.naive_bayes import GaussianNB
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create SVM classification object model = GaussianNB() # there is other distribution for multinomial classes like Bernoulli Naive Bayes, Refer link
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)
R语言代码
library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-naiveBayes(y_train ~ ., data = x)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网