2

私は、scikit クラス Perceptron によって提供される非常に基本的な線形分類器を使用しています。

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

行がインスタンスで、列がバイナリ機能である X 配列があります。クラスに Y 配列があります。私のデータには 3 つのクラスがあります。2 つの質問があります。1) パーセプトロン アルゴリズムにはバイアス項が必要です。scikit パーセプトロンはバイアスをどのように処理していますか? 入力 X データに「バイアス列」(すべて 1) を追加する必要がありますか? または、scikit パーセプトロン関数は、機能を使用して X 配列 (入力) にバイアスを自動的に追加しますか? それとも、バイアスを個別に処理していますか?2) パーセプトロンのトレーニング エラーを見つけるにはどうすればよいですか?

4

2 に答える 2

2
  1. clf.intercept_バイアス項は自動的に学習され、呼び出した後に見つけることができますfit(クラスごとに 1 つの項を持つ配列です)。

  2. clf.score(X)の精度を与えるX1 - clf.score(X)ゼロワン損失 (エラー) です。

于 2014-10-15T19:58:47.450 に答える
2

1) バイアスは自動的に処理されます。よくわからない場合は、元のデータとスケーリングされたバージョン (sklearn の標準スケーラー) の 2 つのバージョンのデータでトレーニングしてみてください。

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 つにすぎません。

于 2014-10-15T06:18:42.440 に答える