朴素贝叶斯学习实例【机器学习】

朴素贝叶斯学习实例【机器学习】


文章目录

  • 朴素贝叶斯学习实例【机器学习】
  • 一、题目要求
  • 二、数据预处理
    • 1.数据替换
    • 2.OneHotEncoder的使用
  • 三、实验代码
    • 1.包的导入
    • 2.读入数据
    • 3.贝叶斯分类
  • 四、总结


一、题目要求

请编写代码(使用sklearn),预测D15的结果
朴素贝叶斯学习实例【机器学习】_第1张图片


二、数据预处理

1.数据替换

假设:Outlook:{sunny:0,overcast:1,rain:2}
Temperature:{hot:0,mild:1,cool:2}
Humidity:{high:0,normal:1}
Wind:{weak:0,strong:1}
PlayTennis:{no:0,yes:1}

2.OneHotEncoder的使用

它可以实现将分类特征的每个元素转化为一个可以用来计算的值。

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
enc.fit(X)
X = enc.transform(X).toarray()

三、实验代码

1.包的导入

from sklearn.naive_bayes import MultinomialNB
import pandas as pd
from sklearn.preprocessing import OneHotEncoder

2.读入数据

x = pd.read_csv("C:\\Users\\Linyz\\Desktop\\data.csv",header=0)
X= x.iloc[:14,1:5]
Y= x.iloc[:14,5]
predict = x.iloc[14:,1:5]

3.贝叶斯分类

enc = OneHotEncoder()
enc.fit(X)
X = enc.transform(X).toarray()
predict = enc.transform(predict).toarray()

# 从使用默认配置初始化朴素贝叶斯模型。
mnb = MultinomialNB(alpha=0.50)
# 利用训练数据对模型参数进行估计。
mnb.fit(X, Y)
y_predict = mnb.predict(predict)
print(y_predict)

四、总结

1.由于样本过少,不需要进行测试集和训练集的划分。
2.使用OneHot是因为朴素贝叶斯模型fit(X,Y)中X需要特征概率(不太确定是否这样解释)
朴素贝叶斯学习实例【机器学习】_第2张图片

你可能感兴趣的:(机器学习,机器学习,学习,python)