我有一个CSV文件与线100K与包含在其他斯堪的纳维亚的字符无一列文本和我接头scikit学习分类预测真/假(给定在另一列中)给定一段文字。更改参数scikit学习分类结果的UnicodeDecodeError
我使用这个例子作为一个起点:http://scikit-learn.org/0.15/auto_examples/grid_search_text_feature_extraction.html
起初我唯一改变的是数据,而培训+测试进行了有用的结果很好。
不过,我想测试liblinear样LinearSVC分类,因为这可能会产生在某些情况下更好的结果。改变什么,但分类为“LinearSVC”或可选择地坚持SGDClassifier作为例子,但改变了损失函数从默认的铰链结果squared_hinge在
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 312: ordinal not in range(128)
我假定这错误必须从输入CSV上升,但无法理解为什么来自url的初始示例运行平稳,并且使用完全相同的输入数据更改分类器属性会导致此错误。任何想法,为什么这可能是?
其次,我不熟悉Python堆栈跟踪,并希望了解有关如何调试错误/跟踪下来的问题字节任何帮助。堆栈跟踪如下:
Traceback (most recent call last):
File "<ipython-input-33-2a0e420237f0>", line 48, in <module>
grid_search.fit(data_train.kuvaus, data_train.loukkaantuneita)
File "C:\Users\x\AppData\Local\Continuum\Anaconda2\lib\site-packages\sklearn\model_selection\_search.py", line 945, in fit
return self._fit(X, y, groups, ParameterGrid(self.param_grid))
File "C:\Users\x\AppData\Local\Continuum\Anaconda2\lib\site-packages\sklearn\model_selection\_search.py", line 564, in _fit
for parameters in parameter_iterable
File "C:\Users\x\AppData\Local\Continuum\Anaconda2\lib\site-packages\sklearn\externals\joblib\parallel.py", line 768, in __call__
self.retrieve()
File "C:\Users\x\AppData\Local\Continuum\Anaconda2\lib\site-packages\sklearn\externals\joblib\parallel.py", line 696, in retrieve
stack_start=1)
File "C:\Users\x\AppData\Local\Continuum\Anaconda2\lib\site-packages\sklearn\externals\joblib\format_stack.py", line 417, in format_outer_frames
return '\n'.join(format_records(output[stack_end:stack_start:-1]))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 312: ordinal not in range(128)
的data_train是熊猫数据帧与真/假data_train.loukkaantuneita和自由文本(应该是UTF-8)data_train.kuvaus柱。
然后在这里发表的堆栈跟踪。同时发布你的代码和一些示例数据如果可能的话] –
@VivekKumar添加堆栈跟踪。对于代码,它是相同的如上述的URL例如,当一切顺利,并且当我改变“‘clf_loss’:([‘squared_hinge’])”中的参数,这导致到UnicodeError,其中我不不明白,因为我不会在两次运行之间以任何方式更改输入文本。 – rize
使用圆括号或方形,而不是两者。使用''clf__n_iter':('squared_hinge')'。 –