scikit Perceptron偏见

时间:2014-10-14 19:09:19

标签: python scikit-learn perceptron

我正在使用scikit类Perceptron提供的非常基本的线性分类器:

  clf = linear_model.Perceptron(n_iter=12)
  clf.fit(X,Y)

我有一个X数组,其中行是实例,列是二进制功能。我的班级有一个Y数组。我的数据有三个类。 我有两个问题: 1)感知器算法需要偏置项。 scikit perceptron如何处理偏见?我应该添加一个"偏向列" (所有的)我的输入X数据?或者scikit perceptron功能是否会自动添加带有特征的X阵列(输入)的偏差?还是分开处理偏见? 2)如何找到感知器的训练错误?

2 个答案:

答案 0 :(得分:2)

1)偏差将自动处理。如果您不确定,请尝试使用2个版本的数据进行培训...原始数据和缩放版本(sklearn中的标准缩放器)。

2)

clf = linear_model.Perceptron(n_iter=12)
clf.fit(X, Y)

training_results = clf.predict(X)
training_error = 1 - metrics.accuracy_score(training_results, Y)  #or pick your metric from metrics module.

如您所见,如果您在使用训练过的数据进行预测时计算错误,则会出现训练错误。 “测试错误”是指您在数据上预测模型尚未“看到”的情况。 我从1中减去,因为准确度给出了成功匹配的百分比(衡量成功的程度),而训练误差则是误差的度量。有许多类型的错误...准确性只是一个。

答案 1 :(得分:2)

  1. 偏差项是自动学习的,可以在调用clf.intercept_之后在fit中找到(这是一个每个类有一个术语的数组)。

  2. clf.score(X)给出了X的准确性。 1 - clf.score(X)是零丢失(错误)。