0
私は、sklearn.linear_modelのPerceptronがfit()関数(Documentation)をどのように実行するのかを理解しようとしています。質問は、コードのこの部分から来ている:sklearnパーセプトロン学習
clf = Perceptron()
clf.fit(train_data, train_answers)
print('accuracy:', clf.score(train_data, train_answers))
accuracy: 0.7
私はフィッティングの目標は、テストデータの100%の精度で答えを与える分類関数を作成することであると思ったが、一例では、それが唯一の70%を与える上。私は精度が60%のもう一つのデータセットを試しました。
フィッティングプロセスで私は誤解しますか?
あなたは(入力および出力、データなどの品質)で作業している場合に関する詳細をお知らせください。それを提供しない限り、役に立つ答えを得ることは事実上不可能です。 – rpd
機械学習の本を手に入れて、予測誤差、モデル能力、汎化誤差、およびコモディティについて読んでください...あなたはすべての基本を欠いているようです。 Sry。 – sascha
最初の注記では、ドキュメントは「線形モデル」と言います。一般に、機械学習アルゴリズムを訓練しても、訓練データに対して100%の精度は得られません。これは、線形モデルの場合に特に当てはまります。 2つの次元にまたがる2つのクラスのオブジェクトの図を考えてみましょう。クラス点が高度に重なり合っている場合、分類器は、トレーニングデータの100%を分離する(非線形)境界を作成するためには非常に高い分散でなければならない。通常、これは甚大なオーバーフィットを表し、望ましくありません。 –