使用随机森林进行分类审查,但帽子关键错误?
Posted
技术标签:
【中文标题】使用随机森林进行分类审查,但帽子关键错误?【英文标题】:use random forest to classifier review, but hat key error? 【发布时间】:2015-03-14 04:00:35 【问题描述】:我在 python 中有以下代码:
from sklearn.ensemble import RandomForestClassifier
forest = RandomForestClassifier(n_estimators = 100)
forest = forest.fit( train_data_features, train["sentiment"] )
但是“sentiment”有key错误,不知道为什么,
train = pd.read_csv("labeledTrainData.tsv", header=0, delimiter="\t", quoting=3)
-Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site--packages/pandas/core/frame.py", line 1780, in __getitem__
return self._getitem_column(key)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/frame.py", line 1787, in _getitem_column
return self._get_item_cache(key)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/generic.py", line 1068, in _get_item_cache
values = self._data.get(item)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/internals.py", line 2849, in get
loc = self.items.get_loc(item)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/index.py", line 1402, in get_loc
return self._engine.get_loc(_values_from_object(key))
File "pandas/index.pyx", line 134, in pandas.index.IndexEngine.get_loc (pandas/index.c:3807)
File "pandas/index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas/index.c:3687)
File "pandas/hashtable.pyx", line 696, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12310)
File "pandas/hashtable.pyx", line 704, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12261)
KeyError: 'sentiment'
【问题讨论】:
【参考方案1】:你在参加 Kaggle 比赛吗? https://www.kaggle.com/c/word2vec-nlp-tutorial/data
你确定你已经下载并解压了文件好吗?文件的第一部分内容如下:
id sentiment review
"5814_8" 1 "With all this stuff go
这对我有用:
>>> train = pd.read_csv("labeledTrainData.tsv", delimiter="\t")
>>> train.columns
Index([u'id', u'sentiment', u'review'], dtype='object')
>>> train.head(3)
id sentiment review
0 5814_8 1 With all this stuff going down at the moment w...
1 2381_9 1 \The Classic War of the Worlds\" by Timothy Hi...
2 7759_3 0 The film starts with a manager (Nicholas Bell)...
您应该检查train
变量中的列设置是否正确。您应该有一个 sentiment
列。您的数据框中似乎缺少该列。
【讨论】:
是的,你完成比赛了吗?我使用原始代码阅读并很好地清理了评论,我认为最好再试一次。非常感谢。 在使用这些代码时,如果name == 'main',我们如何填写(file): train = pd.read_csv(os.path.join(os.path.dirname(file), 'data', 'labeledTrainData.tsv'), header=0, \ delimiter="\t" , quoting=3) test = pd.read_csv(os.path.join(os.path.dirname(file), 'data', 'testData.tsv'), header=0, delimiter= "\t", \quoting=3) 我不参加比赛。您的代码格式不正确,因此我很难阅读。 read_csv 的第一个参数是带有完整路径的文件名。如果你只是克隆 github github.com/wendykan/DeepLearningMovies 那么数据需要在一个名为“data”的子目录中。 感谢您的帮助,非常有帮助。我在mac os系统中通过python在终端中逐步编写代码,它运行gut,我得到了Bag_of_word model.csv,你知道我怎样才能在本地将代码完全输出为.py文件吗?当我稍后再次使用它来训练另一个数据时,我不必再次编写它。有可能吗?? 我推荐看看 IPython Notebook以上是关于使用随机森林进行分类审查,但帽子关键错误?的主要内容,如果未能解决你的问题,请参考以下文章