Python机器学习predi

2024-03-28 22:53:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个.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)

Tags: 文件pytestimportforinputlibusr