我有一个.csv
文件,有26个features列和1个column类。我用过
为了训练和测试,我使用了26个特性来预测类
显示此错误:
ubuntu@ubuntu:~/python$ python3 classifier.py train.csv
/usr/local/lib/python3.4/dist-packages/sklearn/utils/验证。py:395: 不推荐使用警告:在0.17中不推荐将1d数组作为数据传递 而且会
0.19中的提升值错误。使用 十、 重塑(-1,1)如果
您的数据只有一个特征,如果数据包含一个 单一样本。在
不推荐警告)回溯(最近调用最后一次):文件 "分类器.py“,第44行,英寸 准确度得分(训练/预测)文件“/usr/local/lib/python3.4/dist-packages/sklearn/metrics/分类.py", 第172行,准确度得分 y_type,y_true,y_pred=_check_targets(y_true,y_pred)文件“/usr/local/lib/python3.4/dist-packages/sklearn/metrics/分类.py", 第72行,检查目标 检查“一致长度”(y_true,y_pred)文件“/usr/local/lib/python3.4/dist-packages/sklearn/utils/验证.py", 第181行,检查长度一致 “samples:%r”%[int(l)for l in length])值错误:发现输入变量的样本数不一致:[778,1]
import sys
import numpy as np
from sklearn.svm import SVC
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score
def getFeatures(file_name,length=27):
all_features=[]
all_classes=[]
for line in open(file_name):
s=line.strip().split(",")
lst=[]
if len(s)==length:
class_=int(s[length-1])
for i in range(length-1):
lst.append(float(s[i]))
all_features.append(lst)
all_classes.append(class_)
return np.array(all_features),np.array(all_classes)
if len(sys.argv)>1:
input_train_file=sys.argv[1] # e.g. input train file
#input_test_file=sys.argv[2] # e.g. input test file
# make features ready for train set
train_X,train_y=getFeatures(input_train_file)
# make features ready for test set
#test_X,test_y=getFeatures(input_test_file)
clf = SVC(kernel='linear')
# train
clf.fit(train_X, train_y)
#predict
test_X=[0.24 ,0.27031, 0.239808 ,0.271922 ,0.249783 ,0.271922, 0.239808 ,0.271922, 0.261446, 0.27692 ,0.270599 ,0.27031, 0.270599, 0.281724, 0.259792, 0.271922, 0.239808, 0.271922, 0.261212 ,0.271922 ,0.259792 ,0.276243 ,0.261212, 0.27031 ,0.259792 ,0.274605
]
predict=clf.predict(test_X)
accuracy_score(train_X, predict)
目前没有回答
相关问题 更多 >
编程相关推荐