【发布时间】:2017-09-07 10:05:00
【问题描述】:
我有一个包含四列的 CSV 文件。第一列中的每一行都包含一条推文,第二列包含相应的标签(其中一个字母 - A/N/Q/S - 分别代表可操作/不可操作/查询/建议)。所以第二列基本上包含了目标类。
第三和第四列还没有相关性。
我正在实现决策树分类器。
问题在于分类器还将一些推文视为标签。所以在预测的输出中,虽然我应该只得到 A、N、Q 或 S,但我也得到了一些推文以及这些标签。
以下是分类代码:dtree_csv.py
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.cross_validation import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.decomposition import PCA
import numpy as np
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
try:
df = pd.read_csv('tweet-class1.csv', header=None, sep=',',names=['tweets', 'class', 'dept', 'reply'],encoding='UTF-7',skipinitialspace=True) # columns names if no header
vect = TfidfVectorizer()
x = vect.fit_transform(df['tweets'].values.astype('U'))
y = df['class']
SIZE=50
STEP=.02
train,test,train_lab,test_lab=train_test_split(x,y,test_size=.15,random_state=100)
clf=DecisionTreeClassifier()
clf.fit(train,train_lab)
output = clf.predict(test)
for row in output:
print row
print accuracy_score(test_lab,output)
except UnicodeDecodeError as e:
print 'unicode error'
在运行dtree_csv.py 时,这是我可以在终端上看到的输出。
我尝试了很多东西:
- 使用不同的分隔符和定界符组合
- 使用 TSV 代替 CSV
- 将原始 .xls 文件重新导入 CSV
- 在 UTF-7 和 UTF-8 之间切换编码
- 手动扫描 CSV 文件以查找错误推文
似乎没有任何效果。请让我知道我错过了什么。
【问题讨论】: