构建朴素贝叶斯分类模型。 训练集、测试集比例为7:3. 输出模型在测试集上的准确率和召回率
时间: 2024-03-02 22:49:50 浏览: 220
好的,我可以帮您实现这个任务。需要注意的是,在实现过程中需要使用一些第三方库,如Scikit-learn库。
首先,您需要准备训练集和测试集。假设训练集和测试集已经准备好,并且分别存储在train.txt和test.txt文件中。每行数据都是一条文本及其对应的标签,标签与文本之间用制表符分隔。例如:
```
0 this is a negative sentence
1 this is a positive sentence
```
其中,0表示负样本,1表示正样本。
下面是代码实现的步骤:
1. 加载数据集
```python
import pandas as pd
train_data = pd.read_csv('train.txt', sep='\t', header=None, names=['label', 'text'])
test_data = pd.read_csv('test.txt', sep='\t', header=None, names=['label', 'text'])
```
2. 特征提取
```python
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
train_features = vectorizer.fit_transform(train_data['text'])
test_features = vectorizer.transform(test_data['text'])
```
3. 训练模型
```python
from sklearn.naive_bayes import MultinomialNB
model = MultinomialNB()
model.fit(train_features, train_data['label'])
```
4. 预测并评估模型
```python
from sklearn.metrics import accuracy_score, recall_score
test_pred = model.predict(test_features)
test_accuracy = accuracy_score(test_data['label'], test_pred)
test_recall = recall_score(test_data['label'], test_pred, average='binary')
print('Test accuracy:', test_accuracy)
print('Test recall:', test_recall)
```
以上代码实现了朴素贝叶斯分类模型的构建,训练和评估。您可以将代码保存在一个.py文件中,并在命令行中运行。如果您的训练集和测试集数据格式与上述示例不同,需要相应地修改代码。
阅读全文