ホームページ > 記事 > テクノロジー周辺機器 > 機械学習は天からの祝福です。データサイエンティストとKaggleマスターが「MLの落とし穴回避ガイド」をリリース
データ サイエンスと機械学習の人気はますます高まっています。
この分野に参入する人の数は日々増加しています。
これは、多くのデータ サイエンティストが初めて機械学習モデルを構築する際に豊富な経験がないため、間違いを犯しやすいことを意味します。
ここでは、機械学習ソリューションにおける最も一般的な初心者の間違いをいくつか紹介します。
#データ正規化は必要な場合には使用されません はい 初心者向けに、特徴をモデルに入れて、予測が行われるのを待つのは簡単なことのように思えるかもしれません。 ただし、場合によっては、非常に重要な手順を見逃したため、残念な結果になる可能性があります。 線形回帰、従来のニューラル ネットワークなど、特定の種類のモデルではデータの正規化が必要です。これらのタイプのモデルは、トレーニングされた重みを乗算した特徴値を使用します。特徴が正規化されていない場合、ある特徴の可能な値の範囲が別の特徴の可能な値の範囲と大きく異なることが発生する可能性があります。 一方の特徴の値が [0, 0.001] の範囲内にあり、もう一方の特徴の値が [100000, 200000] の範囲内にあると仮定します。 2 つの特徴が同等に重要であるモデルの場合、最初の特徴の重みは 2 番目の特徴の重みの 100,000,000 倍になります。重みが大きいと、モデルに重大な問題が発生する可能性があります。たとえば、外れ値がいくつかあります。 さらに、重みが大きいとその特徴が重要であることを意味する場合もあれば、単に値が小さいことを意味する場合もあるため、さまざまな特徴の重要性を推定することは非常に困難になる可能性があります。 正規化後、すべての特徴は同じ値の範囲内 (通常は [0, 1] または [-1, 1]) 内になります。この場合、重みは同様の範囲内になり、各特徴の真の重要性に密接に対応します。 全体として、必要に応じてデータ正規化を使用すると、より適切で正確な予測が得られます。 機能は多ければ多いほど良いと考えてくださいモデルが自動的に最適な機能を選択して使用するため、機能は多ければ多いほど良いと考える人もいるかもしれません。 。 実際には、これは当てはまりません。ほとんどの場合、慎重に設計され選択された機能を備えたモデルは、10 倍の機能を備えた同様のモデルよりも大幅に優れたパフォーマンスを発揮します。 モデルの特徴が増えるほど、過剰適合のリスクが高くなります。完全にランダムなデータであっても、モデルはいくつかの信号 (場合によっては弱い場合もあれば、場合によっては強い場合もあります) を見つけることができます。# もちろん、ランダム ノイズには実際の信号は存在しません。ただし、十分なノイズ列がある場合は、モデルが検出されたエラー信号に基づいてそれらの一部を使用することが可能です。これが発生すると、モデル予測は部分的にランダム ノイズに基づいて行われるため、品質が低下します。
この状況に役立つ機能選択には、実際にさまざまなテクニックがあります。しかし、この記事ではそれらについては説明しません。
覚えておいてください、最も重要なことは、持っているすべての機能を説明し、この機能がモデルに役立つ理由を理解できる必要があるということです。
外挿が必要な場合はツリーベースのモデルを使用します
#ただし、それは常に実証されて真実であるとは限りません。場合によっては、ツリーベースのモデルの使用が間違いになる可能性があります。
ツリー モデルには推論機能がありません。これらのモデルは、トレーニング データに見られる最大値を超える予測値を与えることはありません。また、トレーニングでは最小値よりも小さい予測を出力することはありません。
しかし、一部のタスクでは、推定する機能が重要な役割を果たす場合があります。たとえば、このモデルを株価の予測に使用すると、将来の株価がこれまでよりも高くなる可能性があります。したがって、この場合、予測が史上最高価格に近いレベルに限定されるため、ツリーベースのモデルは適切ではなくなります。
#では、この問題を解決するにはどうすればよいでしょうか? 実際、すべての道はローマに通じています。 1 つのオプションは、値を直接予測するのではなく、変化や差異を予測することです。 もう 1 つの解決策は、線形回帰や外挿可能なニューラル ネットワークなど、そのようなタスクに別のモデル タイプを使用することです。#過剰な正規化
データ正規化の重要性は誰もがよく知っているはずです。ただし、タスクごとに必要な正規化方法が異なるため、間違った種類を選択すると、得られるものよりも失うもののほうが多くなります。
ツリーベースのモデルでは、特徴量の生の値が乗数として使用されないため、データの正規化が必要ありません。外れ値も影響しません。
ニューラル ネットワークも正規化を必要としない場合があります。たとえば、ネットワークに内部で正規化を処理するレイヤー (Keras ライブラリの BatchNormalization など) がすでに含まれている場合です。
場合によっては、線形回帰でもデータの正規化が必要ない場合があります。これは、すべての特徴が同様の値の範囲内にあり、同じ意味を持つことを意味します。たとえば、モデルが時系列データに適用され、すべての特徴が同じパラメーターの履歴値である場合です。
実際には、不必要なデータ正規化を適用しても、必ずしもモデルに悪影響を与えるわけではありません。ほとんどの場合、このような場合の結果はスキップされた正規化と非常に似ています。ただし、不必要なデータ変換を追加すると、ソリューションが複雑になり、エラーが発生するリスクが高まります。
つまり、使うか使わないかにかかわらず、実践することで本当の知識が得られます。
データ漏洩
次のコード スニペットを見てください:
##実際には、「 sum_feature 」と「diff_feature」はどちらも正しくない特徴です。トレーニング/テスト セットに分割した後、トレーニング データを含む部分にはテスト行からの情報の一部が含まれるため、情報が「漏洩」します。これにより検証結果は向上しますが、実際のデータ モデルに適用するとパフォーマンスが大幅に低下します。
正しいアプローチは、最初にトレーニング/テストの分割を行うことです。その場合にのみ、特徴生成関数が適用されます。一般に、トレーニング セットとテスト セットを別々に処理するのは、優れた特徴エンジニアリング パターンです。
場合によっては、この 2 つの間で一部の情報を渡す必要があります。たとえば、トレーニング セットに使用されたものと同じ StandardScaler をテスト セットで使用する必要があり、トレーニング セットは行われた。ただし、これは単なる個別のケースであるため、特定の問題を詳細に分析する必要があります。
失敗から学ぶのは良いことです。ただし、他の人の間違いから学ぶのが最善です。この記事で提供されている間違いの例が役立つことを願っています。
以上が機械学習は天からの祝福です。データサイエンティストとKaggleマスターが「MLの落とし穴回避ガイド」をリリースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。