如何实现一个线性SVM来处理多类问题,并返回测试样本的概率矩阵。
训练样本:mxn
训练标签:mxc
测试标签:mxc,其中每列都有每个类别的概率。
在sklearn中执行“一对其余”LinearSVC的函数不像SVC那样为每个样本返回概率数组。
在sklearn中执行“一对其余”LinearSVC的函数不像SVC那样为每个样本返回概率数组。
print X_train.shape,y.shape
svc = LinearSVC()
clf = CalibratedClassifierCV(svc, cv=10)
clf.fit(X_train, y)
输出:
(7112L, 32L) (7112L, 6L)
Traceback (most recent call last):
File "SVC_Calibirated_Probability.py", line 171, in <module>
clf.fit(X_train, y)
File "C:\Anaconda\lib\site-packages\sklearn\calibration.py", line 110, in fit
force_all_finite=False)
File "C:\Anaconda\lib\site-packages\sklearn\utils\validation.py", line 449, in check_X_y
y = column_or_1d(y, warn=True)
File "C:\Anaconda\lib\site-packages\sklearn\utils\validation.py", line 485, in column_or_1d
raise ValueError("bad input shape {0}".format(shape))
ValueError: bad input shape (7112L, 6L)
n_jobs
来并行化OneVsRestClassifier
。有关更多详细信息,请参见文档。 - yangjie