我正在使用scikit类Perceptron提供的非常基本的线性分类器:
clf = linear_model.Perceptron(n_iter=12)
clf.fit(X,Y)我有一个X数组,其中行是实例,列是二进制特性。我的类有一个Y数组。我的数据有三类。我有两个问题:1)感知器算法需要一个偏差项。科学感知器是如何处理偏见的?我应该在我的输入X数据中添加一个“偏差列”(所有的)吗?或者,scikit感知器功能是否会自动向X数组(输入)添加带有功能的偏倚?或者是分别处理偏差?2)如何为我的感知器找出训练误差?
发布于 2014-10-15 06:18:42
1)偏倚将自动处理。如果您不确定,请尝试使用2个版本的data...your原始数据和一个缩放版本(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中减去,因为准确性给出了成功匹配的百分比(成功的度量),而训练错误是错误的度量。有许多类型的error...accuracy只是其中之一。
发布于 2014-10-15 19:58:47
clf.intercept_之后在fit中找到(它是一个数组,每个类都有一个术语)。clf.score(X)给出了X的精度。1 - clf.score(X)是0-1损失(错误).https://stackoverflow.com/questions/26368480
复制相似问题