【发布时间】:2018-04-09 23:06:33
【问题描述】:
我已使用以下代码进行分类。我得到了 55% 到 60% 的可变精度。 我想将我的准确率提高到 85%-90%。我分为 8 个不同的类别。我应该采取哪些步骤来提高准确性。
import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.linear_model import SGDClassifier
from sklearn.pipeline import Pipeline
from nltk import word_tokenize
from textblob import TextBlob
cov = pd.read_csv("F:/kipro/ml/dataset.csv",
names = ["Complaint", "target"])
cov.dropna()
s=pd.factorize(cov['target'])
cov['tarname']=s[0]
msk = np.random.rand(len(cov)) < 0.8
train = cov[msk]
test = cov[~msk]
train.dropna()
test.dropna()
y_train, y_test = train.tarname, test.tarname
def tokens(message):
return TextBlob(message).words
def lemmas(message):
message=message.lower()
words = TextBlob(message).words
return [word.lemma for word in words]
text_clf = Pipeline([('vect', CountVectorizer(analyzer=lemmas)),
('tfidf', TfidfTransformer()),
('clf-svm', SGDClassifier())
,])
text_clf = text_clf.fit(train['Complaint'].values.astype('U'),train['tarname'])
predicted = text_clf.predict(test['Complaint'].values.astype('U'))
x=np.mean(( y_test==predicted))*100
print(x)
这是我的数据集截图 enter image description here
【问题讨论】:
-
如果您想要一个相当好的答案,请不要发布数据集的快照。您希望我们也为您复制文本吗?看看这里的一些方向:Good Question
-
首先,除了 tf-idf 之外,您还可以通过其他方式从文本中提取特征。
-
我正在尝试使用 gridsearchcv,但它需要很多时间来适应。你能建议我应该使用哪种特征提取方法@VivekKumar
标签: python machine-learning classification