我使用的是scikit类感知器提供的非常基本的线性分类器:
clf = linear_model.Perceptron(n_iter=12)
clf.fit(X,Y)
我有一个X数组,其中的行是实例,列是二进制特性。我的课上有一个Y数组。我的数据有三个类。
我有两个问题:
1)感知器算法需要一个偏差项。scikit感知器是如何处理偏差的?我应该在我的输入X数据中添加一个“bias列”(所有列)吗?或者,scikit感知器功能会自动为具有特征的X阵列(输入)添加偏差吗?还是分别处理偏差?
2)如何找到我的感知器的训练错误?
最佳答案
1)偏差将自动处理。如果你不确定,试着用两个版本的数据进行训练…你的原始数据和一个缩放版本(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中减去,因为准确性给出了成功比赛的百分比(衡量成功的标准),而训练错误是衡量错误的标准。有很多类型的误差…精度只是一种。
关于python - scikit感知器偏差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26368480/