本文主要是介绍机器学习 --- 预测天气是否适合出去游玩(一)| 贝叶斯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
🌮开发平台:jupyter lab
🍖运行环境:python3、TensorFlow2.x
预测天气是否适合出去游玩(一)| 贝叶斯
- 2. 代码实现部分
题目:如图所示
解法:
(1)机器学习 — 预测天气是否适合出去游玩(一)| 贝叶斯
(2)机器学习 — 预测天气是否适合出去游玩(二)| 逻辑回归
(3)机器学习 — 预测天气是否适合出去游玩(三)| 神经网络mlp
2. 代码实现部分
# -*- coding: utf-8 -*-
## 1.转换数据:ont-hot编码
## 2.模型:BernoulliNB()
## 3.交叉验证模型:cross_val_score()
import pandas
#读取数据到 data 变量中
data = pandas.read_csv('./machine.csv', encoding='utf8', engine='python'
)
#填充缺失值,把所有放弃投票的值填充为字符串None
data = data.fillna("None")
## 获取关键字
data.keys()
# 将所有属性作为特征
features = ['天气状况', '温度', '湿度', '风力'
]
### 转换变量
from sklearn.preprocessing import OneHotEncoder
#新建独热编码器
oneHotEncoder = OneHotEncoder()
#训练独热编码器,得到转换规则
oneHotEncoder.fit(data[features])
#转换数据
oneHotData = oneHotEncoder.transform(data[features])
## 获取构造器
#伯努利贝叶斯
from sklearn.naive_bayes import BernoulliNB
BNBModel = BernoulliNB()
from sklearn.model_selection import cross_val_score
#进行K折交叉验证
cvs = cross_val_score(BNBModel, oneHotData, data['是否适合游玩'], cv=4)
cvs.mean() # out: 0.6875
## 实例化模型
BNBModel = BernoulliNB()
#使用所有数据训练模型
BNBModel.fit(oneHotData, data['是否适合游玩'])
#对所有的数据进行预测
data['预测是否适合出去游玩'] = BNBModel.predict(oneHotData)
from sklearn.metrics import confusion_matrix
#计算混淆矩阵,labels参数,可由 BNBModel.classes_ 得到
confusion_matrix(data['是否适合游玩'], data['预测是否适合出去游玩'], labels=['是', '否']
)
pandas.crosstab(data['是否适合游玩'], data['预测是否适合出去游玩'])
### 查看贝叶斯预测情况
### 从下图可看出,仅红色部分预测错误,准确率较高;
### 可通过增加数据量提高预测准确值
data
这篇关于机器学习 --- 预测天气是否适合出去游玩(一)| 贝叶斯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!