kaggle 电影评论情感分析 贝叶斯分类

import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics  import accuracy_score, roc_auc_score, roc_curve
import matplotlib.pyplot as plt

def performance(y_true , predict , color = "g" , ann = True):
    acc = accuracy_score(y_true , predict[:,1] > 0.5)
    auc = roc_auc_score(y_true , predict[:,1])
    fpr , tpr , thr = roc_curve(y_true , predict[:,1])
    plt.figure()
    plt.plot(fpr , tpr )

df = pd.read_csv("labeledTrainData.tsv" , delimiter="\t") #导入数据 tsv是按照\t分割的
print(df.head(50)) #查看数据存储结构
split = 0.7
d_train = df[:int(split * len(df))] #按照7:3的比例分为测试集和训练集
d_test = df[int((split) * len(df)) :]
print(len(df))
print(len(d_train))
print(len(d_test))
vectorizer = CountVectorizer() #初始化单词计数向量器
features = vectorizer.fit_transform(d_train.review) #训练样本特征值
test_features = vectorizer.transform(d_test.review) #测试样本的特征值
i = 45000
j = 10
words = vectorizer.get_feature_names()[i:i+10]
print(words)
print(features[:3 , i:i+10].todense())

NBmodel = MultinomialNB()
NBmodel.fit(features , d_train.sentiment) #训练模型
predict1 = NBmodel.predict_proba(test_features) #返回在每一类对应的概率
print(predict1)
# performance(d_test.sentiment , predict1)
y_true =  d_test.sentiment
predict = predict1
acc = accuracy_score(y_true, predict[:, 1] > 0.5)
print(predict[:,1])
print("准确率为 = %f" % acc)
auc = roc_auc_score(y_true, predict[:, 1])
fpr, tpr, thr = roc_curve(y_true, predict[:, 1])
print(len(fpr))
print(len(tpr))
print(fpr)
print(tpr)
plt.figure()#定义打开figure名字
plt.plot(fpr, tpr) #画图
plt.xlabel("False positive rate")
plt.ylabel("True positive rate")
plt.annotate("Acc: %0.2f" %acc ,(0.2 , 0.7) , size = 14) #注解
plt.annotate("AUC:%0.2f" %auc  ,(0.2 , 0.6) , size = 14)
plt.show()




  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值