Sklearn分类器

时间:2018-07-17 02:48:38

标签: python scikit-learn

几个月前,我开始了机器学习之旅,今天我正在练习技能,尝试了几种不同的算法,使用了线性回归,决策树分类器和支持向量机,我的代码非常简单,工作正常(“我猜”),但是由于这是一个愚蠢的问题,我是一个新手,但是使用线性回归和决策树分类器可以使我的准确度从1.04到1.22,但是如果我使用SVM,它可以给我0.72,所以我感到困惑,因为我读到SVM在速度和性能上都比线性回归更好,所以请大家帮我澄清一下。 :) 在此先感谢:)

这是我的代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import accuracy_score
from sklearn.tree import DecisionTreeClassifier


dataset = pd.read_csv("/home/jairo/Downloads/diabetes.csv")
dataset.shape

x = dataset.drop(['Outcome'], axis=1)
y = dataset['Outcome']

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
classifier = DecisionTreeClassifier()


classifier.fit(x_train, y_train)
predic = classifier.predict(x_test)

score = accuracy_score(y_test, predic.round(), normalize=False)
print("Accuracy : {}".format(score/100))

这是我最后获得的输出:

准确度:1.15

1 个答案:

答案 0 :(得分:0)

分类效果高度依赖,取决于您的输入类型和要分类的内容。一个客观上并不比另一个“好”。为了增加对结果的了解,SVM通过尝试找到将数据划分为类的超平面来工作。例如,如果您有正负两个可能的结果,它将尝试找到在n维空间中划分点的超平面,以使超平面两侧的所有点都属于该类。 n是指功能的数量。