数据集定义:
- data 列表包含了文本样本及其对应的情感标签。每个元素是一个元组,第一个元素是文本,第二个元素是标签。
特征提取:
- 使用 CountVectorizer 将文本转换为词频向量。 fit_transform 方法在训练数据上拟合向量器并进行转换。
模型训练:
- 初始化 MultinomialNB 模型,这是适用于离散数据(如词频)的朴素贝叶斯分类器。
- 使用 fit 方法在提取的特征和标签上训练模型。
预测:
- 对新的文本数据,先使用 vectorizer.transform 方法将其转换为特征向量,然后使用训练好的模型进行预测。
评估:
- 这里简单地假设了新文本的真实标签,使用 accuracy_score 计算预测准确率。在实际应用中,应使用独立的测试集来评估模型性能。
import numpy as np
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
# 自定义数值型数据集
X = np.array([
[1, 2],
[2, 3],
[3, 4],
[4, 5]
])
y = np.array([0, 0, 1, 1])# 初始化并训练高斯朴素贝叶斯模型
clf = GaussianNB()
clf.fit(X, y)# 新数据进行预测
new_X = np.array([
[1.5, 2.5],
[3.5, 4.5]
])
predictions = clf.predict(new_X)# 输出预测结果
for new_data, pred in zip(new_X, predictions):
print(f"Data: {new_data}, Prediction: {pred}")# 假设我们有真实标签用于计算准确率(这里只是示例,实际应用中需有真实测试集标签)
true_labels = [0, 1]
accuracy = accuracy_score(true_labels, predictions)
print(f"Accuracy: {accuracy}")