用python写出判断好瓜的朴素贝叶斯代码
时间: 2024-02-18 11:29:54 浏览: 32
以下是一个简单的朴素贝叶斯分类器代码,用于判断一个西瓜是否好瓜:
```python
import pandas as pd
import numpy as np
# 加载数据集
data = pd.read_csv('watermelon.csv')
# 数据预处理
X = data.drop(['编号', '好瓜'], axis=1)
y = data['好瓜']
y = y.map({'是': 1, '否': 0})
# 划分训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
# 计算先验概率
p_y = y_train.mean()
# 计算条件概率
p_x_y0 = (1 - X_train[y_train == 0]).mean()
p_x_y1 = (1 - X_train[y_train == 1]).mean()
# 预测测试集
y_pred = np.zeros(y_test.shape[0])
for i in range(X_test.shape[0]):
p0 = p_x_y0 ** (1 - X_test.iloc[i]) * (1 - p_x_y0) ** X_test.iloc[i]
p1 = p_x_y1 ** (1 - X_test.iloc[i]) * (1 - p_x_y1) ** X_test.iloc[i]
p1_y = p1 * p_y
p0_y = p0 * (1 - p_y)
if p1_y > p0_y:
y_pred[i] = 1
# 计算准确率
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print('准确率:', accuracy)
```
数据集(watermelon.csv)中包含了西瓜的一些特征,如色泽、根蒂、敲声等,以及是否好瓜的标签。在预处理数据后,我们将数据集分为训练集和测试集,并计算先验概率和条件概率。在预测测试集时,我们使用贝叶斯公式计算出每个测试样本属于好瓜和不好瓜的概率,然后选择概率较大的作为预测结果。最后计算准确率。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)