使用 OneVsRestClassifier 时全为零
All zeros when using OneVsRestClassifier
我正尝试在我的数据集上使用 OneCsRestClassifier
。我提取了训练模型的特征,并在其上安装了 Linear SVC。模型拟合后,当我尝试对模型拟合的相同数据进行预测时,我得到的全是零。是因为一些实现问题还是因为我的特征提取不够好。我认为,因为我预测的是与我的模型相匹配的相同数据,所以我应该获得 100% 的准确率。但相反,我的模型预测全为零。这是我的代码-
#arrFinal contains all the features and the labels. Last 16 columns are labels and features are from 1 to 521. 17th column from the last is not taken
X=np.array(arrFinal[:,1:-17])
X=X.astype(float)
Xtest=np.array(X)
Y=np.array(arrFinal[:,522:]).astype(float)
clf = OneVsRestClassifier(SVC(kernel='linear'))
clf.fit(X, Y)
ans=clf.predict(Xtest)
print(ans)
print("\n\n\n")
我的 OneVsRestClassifier 实现有问题吗?
查看您的数据后,看起来这些值对于 C 值来说可能太小了。尝试使用 sklearn.preprocessing.StandardScaler
.
X=np.array(arrFinal[:,1:-17])
X=X.astype(float)
scaler = StandardScaler()
X = scaler.fit_transform(X)
Xtest=np.array(X)
Y=np.array(arrFinal[:,522:]).astype(float)
clf = OneVsRestClassifier(SVC(kernel='linear', C=100))
clf.fit(X, Y)
ans=clf.predict(Xtest)
print(ans)
print("\n\n\n")
从这里开始,您应该使用交叉验证查看 C
上的参数调优。使用学习曲线或使用网格搜索。
我正尝试在我的数据集上使用 OneCsRestClassifier
。我提取了训练模型的特征,并在其上安装了 Linear SVC。模型拟合后,当我尝试对模型拟合的相同数据进行预测时,我得到的全是零。是因为一些实现问题还是因为我的特征提取不够好。我认为,因为我预测的是与我的模型相匹配的相同数据,所以我应该获得 100% 的准确率。但相反,我的模型预测全为零。这是我的代码-
#arrFinal contains all the features and the labels. Last 16 columns are labels and features are from 1 to 521. 17th column from the last is not taken
X=np.array(arrFinal[:,1:-17])
X=X.astype(float)
Xtest=np.array(X)
Y=np.array(arrFinal[:,522:]).astype(float)
clf = OneVsRestClassifier(SVC(kernel='linear'))
clf.fit(X, Y)
ans=clf.predict(Xtest)
print(ans)
print("\n\n\n")
我的 OneVsRestClassifier 实现有问题吗?
查看您的数据后,看起来这些值对于 C 值来说可能太小了。尝试使用 sklearn.preprocessing.StandardScaler
.
X=np.array(arrFinal[:,1:-17])
X=X.astype(float)
scaler = StandardScaler()
X = scaler.fit_transform(X)
Xtest=np.array(X)
Y=np.array(arrFinal[:,522:]).astype(float)
clf = OneVsRestClassifier(SVC(kernel='linear', C=100))
clf.fit(X, Y)
ans=clf.predict(Xtest)
print(ans)
print("\n\n\n")
从这里开始,您应该使用交叉验证查看 C
上的参数调优。使用学习曲线或使用网格搜索。