朴素贝叶斯python代码
时间: 2023-07-09 10:49:49 浏览: 100
以下是朴素贝叶斯分类器的Python代码:
```
from sklearn.naive_bayes import GaussianNB
# 构建数据集
X = [[1, 2], [2, 3], [3, 1], [4, 3]]
Y = [1, 1, 2, 2]
# 创建朴素贝叶斯分类器
clf = GaussianNB()
# 训练模型
clf.fit(X, Y)
# 预测新数据
print(clf.predict([[2, 2]]))
```
在这个例子中,我们使用 `GaussianNB` 类来创建一个高斯朴素贝叶斯分类器。我们使用一个简单的数据集来训练模型,并使用 `predict` 方法来预测新数据。
相关问题
朴素贝叶斯python代码实例垃圾邮件
好的,下面是一个朴素贝叶斯分类器的 Python 代码实例,用于分类垃圾邮件和非垃圾邮件:
```python
import os
import io
import numpy as np
import pandas as pd
from collections import Counter
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
# 加载数据集
def load_data(path):
data = []
targets = []
for filename in os.listdir(path):
with io.open(os.path.join(path, filename), 'r', encoding='utf-8', errors='ignore') as f:
data.append(f.read())
if 'spm' in filename:
targets.append(1) # 垃圾邮件
else:
targets.append(0) # 非垃圾邮件
return data, targets
# 将邮件转换为词频向量
def vectorize(data):
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(data)
return X.toarray(), vectorizer.vocabulary_
# 训练模型
def train(X_train, y_train):
clf = MultinomialNB()
clf.fit(X_train, y_train)
return clf
# 测试模型
def test(clf, X_test, y_test):
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)
return accuracy, precision, recall, f1
# 主函数
if __name__ == '__main__':
# 加载数据集
data, targets = load_data('./data')
# 将数据集分为训练集和测试集
split_point = int(0.8 * len(data))
X_train, y_train = vectorize(data[:split_point])
X_test, y_test = vectorize(data[split_point:])
# 训练模型
clf = train(X_train, y_train)
# 测试模型
accuracy, precision, recall, f1 = test(clf, X_test, y_test)
print('Accuracy:', accuracy)
print('Precision:', precision)
print('Recall:', recall)
print('F1 Score:', f1)
```
在这个代码实例中,我们使用了 `CountVectorizer` 将邮件转换为词频向量,然后使用 `MultinomialNB` 训练朴素贝叶斯分类器,并测试模型的准确率、精确率、召回率和 F1 Score。
汽车满意度数据集 朴素贝叶斯 python代码
以下是一个简单的朴素贝叶斯分类器的Python代码,用于汽车满意度数据集的分类:
```python
import pandas as pd
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 读取数据集
data = pd.read_csv('car_satisfaction.csv')
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(data['reviews'], data['satisfaction'], test_size=0.2, random_state=42)
# 特征提取
vectorizer = CountVectorizer()
X_train = vectorizer.fit_transform(X_train)
X_test = vectorizer.transform(X_test)
# 训练模型
clf = MultinomialNB()
clf.fit(X_train, y_train)
# 预测测试集
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
这个代码使用了sklearn库中的MultinomialNB朴素贝叶斯分类器,CountVectorizer特征提取器和train_test_split函数。首先读入汽车满意度数据集,然后将其划分为训练集和测试集。接下来使用CountVectorizer将文本数据转换为数字特征向量,然后使用MultinomialNB训练模型并预测测试集。最后计算预测准确率。
相关推荐
![](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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)