Python における Self とは: 実際の例
Python における Self とは: 実際の例
外れ値の検出は、機械学習の分野における重要なタスクです。これは、データセットの一般的な傾向から逸脱した異常な観測値またはデータ ポイントを識別するために使用されます。外れ値検出に効果的なアルゴリズムの 1 つは、Isolation Forestアルゴリズムです。
今日のブログでは、Isolation Forest アルゴリズムの基本を説明し、それを使用してPythonを使用してデータセット内の外れ値を検出する方法を説明します。このチュートリアルのビデオ全体は、このブログの下部でご覧いただけます。
目次
分離フォレストアルゴリズムと箱ひげ図法
以下に、外れ値検出用の 2 つのビジュアルを示します。外れ値検出のための隔離林 ML モデルを使用した場合と比較して、 使用した場合の視覚的表現に大きな違いがあることに注目してください。
Isolation Forest ML モデルでは、IS 異常検出アルゴリズムによって検出された外れ値の割合は32.56% です。同じアルゴリズムを使用すると、データの残りの67.44%は正常範囲内に収まりますが、これは非常に重要です。私たちの目標は、 Pythonを使用してこの感度を微調整することです。
従来の外れ値検出方法
外れ値を見つける従来の方法は、箱ひげ図法を使用することです。この方法では、IQR を使用して、データの予想範囲外にあるものを見つけます。
この例では、ひげの上のこの 1 つの点が外れ値です。
この視覚的なグラフを円グラフに変換すると、データ全体の 2.33%に相当する 1 つの特定の外れ値が得られます。
このブログでは、Isolation Forest ML メソッドの使用方法、従来のメソッドに一致するように微調整する方法、感度を増減する方法を学びます。
隔離林アルゴリズムのデータセット
LuckyTemplates でデータセットを開きます。次に、「データの変換」をクリックします。
このチュートリアルのデータセットが表示されます。これには、Date、number of Users、Index、 およびIsolation Forest Outlier が含まれており、正常範囲の場合は出力 1、外れ値の場合は -1 が出力されます。
また、 「Traditional Outlier」の列と、「 Isolation Forest Outlier」を反映する「IS Anomaly Detection」というタイトルの条件付き列もあります。
2 番目のクエリは、すべてを組み合わせる方法を学習するデータ フレームを示しています。
Python コード
[プロパティ]ペインには、実行中の 2 つのPythonスクリプトが表示されます。これらのPythonスクリプトの 1 つで Isolation Forest 出力を作成し、もう 1 つで従来の外れ値を生成します。
隔離フォレストのアルゴリズム Python コード
「Python スクリプトを実行」をクリックしてコードを表示します。
この Python コードでは、パンダを pd としてインポートし、Isolation Forest と呼ばれるものを使用します。
分離フォレストは、ツリー構造に基づいて意思決定を行い、それが外れ値であるかどうかを決定するツリーベースのモデルです。特定の外れ値を見つけるために 2 つの異なる方法を使用するため、 これをアンサンブル モデルと呼びます。
また、デフォルトでデータセットを保持するデータセット変数をdfとして置き換えます。
データセットを考えると、以下で強調表示されている 2 行のコードは必要ないので、これらの行を削除するだけで済みます。
私たちがやっていることはモデルをインスタンス化することです。
モデルをIsolationForestとして保存し、 モデルにユーザーのデータを学習させます。次に、異常検出という新しい列を作成します。この列は、学習したすべてのデータを遡って、どれが外れ値であるべきかどうかを予測します。
この関数では、汚染のデフォルトは0.5に設定されています。したがって、現時点では非常に敏感であり、多くの外れ値を探すことになります。先ほどの円グラフでは、32.56% という非常に高い範囲の外れ値が示されているのはこのためです。
感度を低くするには、 IsolationForest関数にcontamination = .1を追加します。
最後に、インデックスをリセットし、「OK」をクリックします。
結果には要約表が表示されます。「適用されたステップ」ペインに移動し、「df」をクリックします。
出力では、[異常検出]列で外れ値を見つけることができます。
また、従来の外れ値と比較してどのようなパフォーマンスを発揮するのかも確認したいと考えています。
従来の外れ値 Python コード
別の Python スクリプトを実行します。この例では、Run Python script1 です。
このコードは、第 1 四分位数と第 3 四分位数を使用して外れ値関数を追加します。q3 から q1を減算すると、四分位範囲 (IQR)が得られます。
次の 2 行では、外れ値の条件を設定します。最初の行は、 1.5 * iqr未満のものはすべて負の値、またはより低い外れ値とみなされることを示しています。これは、従来の方法で外れ値を見つける方法でもあります。
また、データの最高点として外れ値が 1 つあることもわかります。これを考慮して、2 行目では、 q3 + 1.5 * iqrよりも高いデータ ポイントも外れ値とみなされると述べています。
そのデータセットを返し、関数outliers(df, 'Users')を使用します。次に「OK」をクリックします。
先ほどと同様の概要表が表示されます。
[適用されたステップ]ペインに移動して[変更されたタイプ 1]をクリックすると、 [従来の外れ値] 列と[異常検出]列が並べて表示されます。後者では、1 と -1 を使用して外れ値を示すかどうかを示します。
ただし、Python で日付を使用すると、日付が乱れて表示される場合があります。
実行できることは、[列の追加]のインデックスを使用して追加の列を作成することです。
次に、Mergeを使用して前の列にIndexを追加すると、元の列/データ セット内のすべての情報を保存できます。
すべてが揃ったら、コードを実行してビジュアルを更新できます。外れ値の汚染度を 0.5 から 0.1 に変更したため、グラフのこの部分がかなり縮小していることがわかります。
ビジュアルに戻り、「変更を適用」をクリックします。
異常検出がデータの 32.56% から 11.63% までどのように低下したかに注目してください。
結果から分かるように、これは外れ値の検出を最適化する良い方法です。
また、従来の方法を使用する場合、1.5 より低い値を使用する可能性がありますが、それでも1.5 x IQRが従来の方法であることに注意してください。
LuckyTemplates での外れ値の検出と結果の表示
LuckyTemplates での動的な外れ値トリガー ポイントの作成
LuckyTemplates の異常検出機能: 仕組み
結論
Isolation Forest アルゴリズムを使用すると、異常な観測値を簡単に特定してデータセットから除外できるため、分析の精度が向上します。このチュートリアルでは、Python を使用して外れ値検出に Isolation Forest アルゴリズムを使用する方法について段階的なガイドを提供しました。これは、独自のプロジェクトでの実装を開始するのに役立ちます。
私たちが行ったのは、 Pythonコードを使用して異常を見つける非常に簡単な方法でした。汚染や、 Python のコード ページ を通じて学習できるその他の変数を変更することで、アルゴリズムをさらに最適化できます。
ではごきげんよう、
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて