问题描述
我正在尝试计算Twitter情绪分析项目的准确性。但是,出现此错误,我想知道是否有人可以帮助我计算准确性?谢谢
错误:ValueError: Classification metrics can't handle a mix of continuous and multiclass targets
我的代码:
import re
import pickle
import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import r2_score
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
df = pd.read_csv("updated_tweet_info.csv")
data = df.fillna(' ')
train,test = train_test_split(data,test_size = 0.2,random_state = 42)
train_clean_tweet=[]
for tweet in train['tweet']:
train_clean_tweet.append(tweet)
test_clean_tweet=[]
for tweet in test['tweet']:
test_clean_tweet.append(tweet)
v = CountVectorizer(analyzer = "word")
train_features= v.fit_transform(train_clean_tweet)
test_features=v.transform(test_clean_tweet)
lr = RandomForestRegressor(n_estimators=200)
fit1 = lr.fit(train_features,train['clean_polarity'])
pred = fit1.predict(test_features)
accuracy = accuracy_score(pred,test['clean_polarity'])`
解决方法
您正在尝试使用precision_score方法,但是准确性是一种分类指标。
在您的情况下,请尝试使用回归度量方法,例如:mean_squared_error()
,然后应用np.sqrt()
。这将返回“均方根误差”。数字越小越好。您还可以查看here了解更多详细信息。
尝试一下:
import numpy as np
rmse = np.sqrt(mean_squared_error(test['clean_polarity'],pred))