Scikit-Learn(Sklearn)とは何か

著者

Bryan Clark

Senior Technology Advocate

scikit-learn(sklearn)とは何か

Scikit-learn(しばしばscikit-learnまたはsklearnと表記されます)は、Python向けの広く利用されているオープンソースの機械学習ライブラリです。

Scikit-learnは、現在最も使用されている機械学習(ML)ライブラリーの1つです。Pythonで記述されたこのデータサイエンス・ツールセットは、一貫したインターフェースを使用して人工知能(AI)MLと統計モデリングを効率化します。これには、分類回帰、クラスタリング、次元削減に不可欠なモジュールが含まれており、すべてNumPy、SciPy、Matplotlibライブラリー上に構築されています。Pythonで機械学習アルゴリズムをゼロから実装することは、計算負荷が高く、エラーが発生しやすい作業になる可能性があり、線形代数、微積分、最適化の専門知識が必要です。Scikit-learnは、これらの問題を軽減する上で貴重なリソースとなります。

scikit-learnの堅牢な事前トレーニング済みニューラル・ネットワークと機械学習アルゴリズムのスイートを活用することで、この分野の初心者でも、回帰や分類などの教師あり学習アプリケーション用のデータセットを迅速かつ効果的に前処理できます。このステップは、線形代数、微分計算、カーディナリティなどの複雑な数学的概念を深く理解していなくても実行できます。さらに、これらのツールは、クラスタリング や次元削減などの教師なし学習 プロセスを容易にします。これらのツールを使用することで、ユーザーは、より高度な洞察とビジネス価値の創造に集中できるようになります。

scikit-learnワークフロー
scikit-learnワークフロー図

scikit-learnのコンポーネント

NumPy:科学的コンピューティングに重要なPythonライブラリーの1つ。配列オブジェクトとその他さまざまなデータセット・タイプが用意されているだけでなく、scikit-learnを使用しながら配列上で効率的にオペレーションを行うための多数の関数も提供されます。

SciPy:Pythonでのデータサイエンスを目的としたオープンソース・ソフトウェアを作成し、普及させることを目的としたコミュニティー主導の取り組みです。具体的には、その使命は、Scipyパッケージの開発と保守に重点を置いています。このパッケージは、オープンソースライセンス(BSDとしても知られるBerkeley Software Distributionライセンスなど)の下で無料で利用可能であり、Scipy組織内のGitHubリポジトリを通じて公開されています。

Matplotlib:データサイエンティストがデータセットを有益なグラフ、チャート、その他の視覚化に変換できるようにする、Python向けの広範で柔軟なプロット・ライブラリーです。Matplotlibは包括的なツールと主要な機能のセットを提供することで、データ分析、探索、コミュニケーションを容易にします。

Cython:C関数への直接呼び出しと、変数とクラス属性に対するCデータセット・タイプの明示的な宣言を可能にすることで、Pythonの機能を拡張します。この機能により、sklearn内で使用するために Cythonソースコードから高度に最適化されたCコードの生成が容易になります。

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

前処理

Scikit-learnを使用する場合、機械学習に入力する前に、トレーニング・データが適切に準備され、フォーマットされていることを確認することが不可欠です。このプロセスは前処理として知られており、scikit-learnはデータセットの整理に役立つさまざまなツールを提供します。scikit-learnの前処理におけるこの段階での一般的なタスクの1つは、MinMax ScalerやStandard Scalerなどの手法を使用して、主要な機能を同様の強度にスケールする正規化です。データセットをカテゴリー変数から数値表現にエンコードする必要がある場合は、One-Hot Encoding(OHE)または LabelEncoder(LE)を使用して、モデルのワークフローと互換性を持たせることができます。OHEは分類データ値を2進ベクトルに変換し、その結果、カテゴリーの存在または不在を示す1または0を持つカテゴリーごとに新しい列が作成されます。LEは、カテゴリーまたはクラスに数値ラベルを割り当てる機械学習で使用されます。One-Hot Encoderとは異なり、新しい列を作成しませんが、カテゴリー値を整数値に置き換えます。順序性の仮定などの問題が生じる可能性がある一方で、その制限により、最新の機械学習の手法ではOHEほど一般的ではありません。

前処理には主要な機能選択も含まれる場合があり、その場合、関連するscikit-learn機能のサブセットがモデルのトレーニング用に選択されることがあります。このステップは、無関係な列を削除するか、再帰主要な機能除去(RFE)や相互情報(MI)などの手法を使用して実行できます。再帰的主要な機能除去は、データセット内の最も重要な主要な機能を選択するために使用される手法です。これは、低減された主要な機能セットでモデルを繰り返し除去および再トレーニングし、最終的に最も重要な主要な機能を特定します。相互情報は、あるランダム変数が別のランダム変数について含む情報の量を測定するため、どの主要な機能に高い相関関係があるか、または目標の結果に関連しているかを特定することができます。この方法は、有益な変数を選択するのに役立ちます。さらに、missing valuesの処理は非常に重要であり、scikit-learnは、平均/中央値の代入、前方記入/逆記入、またはその他のより洗練されたアプローチなど、これらのギャップを代入するためのさまざまな方法を提供します。

これらのタスクを実行するために、scikit-learnには包括的な前処理ツールのスイートが含まれています。StandardScalerおよびMinMaxScalerクラスは数値の主要な機能をスケーリングするための一般的な選択肢ですが、OneHotEncoderはカテゴリー変数に最適です。Missing Valuesの代入については、 SimpleImputerクラスは、選択できるさまざまなメソッドを提供します。これらのツールを創造的な方法で組み合わせることで、堅牢なプリプロセッシング・パイプラインを構築し、機械学習、モデルの性能、精度を向上させることができます。

例えば、StandardScalerを使用してデータの主要な機能を標準化し、次にOneHotEncoderを使用してカテゴリー変数を数値表現に変換します。カテゴリー変数内の固有のカテゴリーごとに、新しいバイナリー(0または1)特徴が作成されます。観測に「X」というカテゴリーがある場合、「X」に対応する主要な機能の値は1に設定され、他のすべての主要な機能は0に設定されます。このプロセスは、主要な機能抽出とも呼ばれます。これらのオペレーションを連鎖させることで、機械学習モデルのトレーニングに対応した統合データセットを準備できます。

AI Academy

AIの専門家になる

ビジネスの成長を促進するAIへの投資を優先できるように知識を習得します。今すぐ無料のAI Academyを試して、貴社のAIの未来をリードしましょう。

メトリクス

Scikit-learnは、分類問題と回帰問題の両方に対する一連の組み込みメトリクスを提供し、それによってモデルの最適化またはモデル選択に関する意思決定プロセスを支援します。機械学習、特にscikit-learnのコンテキストでは、回帰モデルは主要な機能に基づいて連続的な結果を推定する予測モデルの一種です。離散的なラベルやカテゴリーを予測する分類モデルとは異なり、回帰モデルは数量を予測する場合に使用されます。

分類タスクの場合、メトリクスには、精度、精度、再現率、F1スコア、ROC曲線下面積(AUC-ROC)が含まれます。

  • 精度:予測全体に占める正しい予測の割合を測定します。

  • 精度:肯定的な予測に焦点を当て、選択した項目が関連している数を定量化します。

  • 再現率:感度とも呼ばれる再現率は、関連するすべてのインスタンスを見つけるモデルの能力を評価します。

  • F1スコア:精度と再現率の調和平均で、これら2つのメトリクスとのバランスを提供します。

  • AUC-ROC:アウトプットが確率である分類モデルの性能を評価するためのメトリクスです。これは、真検知率(TPR)と偽検知率(FPR)のトレードオフを視覚的に表します。

回帰タスクの場合、scikit-learnの一般的な評価メトリクスには、平均絶対誤差(MAE)、二乗平均平方根誤差(SERM)、R^2スコア、平均二乗誤差(MSE)などがあります。

  • MAE:誤差の方向を考慮せずに誤差の平均の大きさを測定します。

  • RMSE:誤差の二乗平均の平方根で、誤差が大きいほど重みが増します。

  • R2スコア:決定係数としても知られるこのスコアは、独立変数から予測可能な従属変数の分散の割合を表します。

  • MSE:予測値と実際の値の差の平均二乗を計算し、データポイントにどれだけ近いフィットが得られたかを示します。

たとえば、scikit-learnを使用する信用リスク・アセスメント・シナリオでは、レシーバー運用特性曲線(AUC-ROC)メトリクスの下の領域がモデルの性能を評価する上で非常に重要です。このメトリクスは、収入、負債対収益率、雇用履歴などの特徴に基づいて、ローンを不履行した借り者とそうでなかった借り者を区別するモデルの能力を測定します。AUC-ROC値が1に近いことは、より高い機能を備えた優れたモデルを意味し、銀行管理者が融資決定へのモデルの適切性を判断したり、改善すべき領域を特定したりするのに役立ちます。

Scikit-learnメトリクスにより、さまざまなタスクやシナリオにわたる機械学習モデルの徹底的な評価が可能になります。これらのメトリクスを理解することは、モデルの性能を解釈し、改善の可能性がある領域を特定し、最終的には特定の問題に対して最もパフォーマンスの高いモデルを選択または最適化するのに役立ちます。

Scikit-learnのユースケース

電子メールスパムの検出:ロジスティック回帰やサポート・ベクター・マシン(SVM)などのScikit-learnの分類アルゴリズムは、不要な電子メールをスパムかどうかに分類して除外するのに役立ちます。Sklearnは、cross_val_scoreを用いてNaïve Bayes分類器スパムEメールと非スパムEメールをどの程度正確に識別できるかを評価するクロスバリデーション機能も備えています。Sklearnはクロスバリデーションを用いて、データを5つの異なる分割領域に分割し、モデルをトレーニングおよびテストします。これにより、モデルが新しい未読Eメールに対してどのように動作するかをより正確に把握できる平均的なメトリクスが得られます。

住宅価格の予測:Scikit-learnを線形回帰などの回帰手法に使用して、場所、規模、主要な機能などの特徴に基づいて住宅価格を推定することで、購入者が情報に基づいた意思決定を行うのに役立ちます。Scikit-learnは、PlotlyやMatplotlibなどのデータの可視化ライブラリーとシームレスに統合します。これにより、回帰の成果の理解と解釈を強化する視覚化が可能になり、このようなユースケースでのより適切な情報に基づいた意思決定が促進されます。

ブナの葉の病気検知:scikit-Learnの決定木アルゴリズムは、米国東部の森林でブナの葉の病気(BLD)を検知するために使用できます。モデルは、樹木の年齢、場所、葉の状態などの要素を分析することで、BLDのリスクにさらされているブナの木を特定することができます。機械学習とデータ駆動型のアプローチを用いることで、最も脆弱な木を正確に特定し、それらを保護するためのストラテジーをデプロイできる可能性があります。

異常検出:サイバーセキュリティーでは、scikit-learnのk-meansクラスタリングを使用して、潜在的なセキュリティー侵害の兆候となる可能性のある異常なパターンや動作を検知できます。k平均法は、類似したデータ・ポイントをグループ化することにより、外れ値(確立されたクラスターから大きく逸脱しているデータ・ポイント)を潜在的な異常として特定するのに役立ちます。これらの異常は、不正アクセスの試み、マルウェアのアクティビティー、またはその他の悪意のあるアクションを示している可能性があります。sklearnを使用してこのような異常をタイムリーに検知することで、サイバーセキュリティー・チームは脅威を迅速に調査して軽減し、組織の全体的なセキュリティー体制を強化することができます。

信用リスク評価:金融機関は在的な借り手に対する信用リスクを評価する際、scikit-Learnのランダム・フォレストアルゴリズムを用いて、信用履歴、収入、負債対収入比率など、最も重要な特徴量を特定しています。ランダム・フォレストを使用して変数の重要度を順位付けすることで、貸し手は誰に向けて融資を承認するかや、どの金利で融資を承認するかについて、より多くの情報に基づいた意思決定を下すことができます。

ゲノミクス研究:Sklearnは主成分分析(PCA)などの手法を適用して遺伝子データの複雑さを軽減し、ノイズの影響を排除して重要なパターンを識別しやすくします。

テキスト分析:大規模な文書やデータセットを扱う場合、次元削減により主要なテーマやトピックを効率的に要約し、視覚化することができます。これは、センチメント分析やコンテンツ推奨システムなどの分野では非常に重要です。

scikit-learnでのLLM統合

Scikit-learnは主に機械学習アルゴリズムに重点を置いていますが、大規模言語モデル(LLM)を組み込むように拡張できます。Scikit-learnはもともと、決定木、サポート・ベクター・マシン、クラスタリング・アルゴリズムなどの従来のモデルに重点を置いていましたが、柔軟なエコシステムにより、アプリケーション・プログラミング・インターフェース(API)構成を通じてLLMとの統合が可能になります。これには、OpenAIのGPTシリーズなどのモデルや、AnthropicやAzureChatOpenAIモデルなどの他のコミュニティー貢献オプションを活用することが含まれます。

統合プロセスはAuto-GPTなどのプロジェクトと同様に合理化されており、scikit-learnのワークフローに精通した開発者が利用できます。Scikit-learnはGitHub でリソースを提供しているこのサイトには、オープンソース LLMを探索するためのユーザーガイドとなるチュートリアルも含まれています。この設定により、API認証情報を通じて選択したLLMモデルのデプロイメントが容易になり、scikit-learnは自然言語処理の機能のメリットを享受できるようになります。

要件

Python環境、NumPy、SciPy、Pandas、およびMatplotlibに関する実用的な理解は、機械学習パイプラインにおけるデータ前処理、主要な機能エンジニアリング、視覚化の基盤となるscikit-learnの効率性を活用するために不可欠です。これらのライブラリーは、機械学習パイプラインにおけるデータ前処理、主要な機能エンジニアリング、視覚化の基盤を提供します。これらの機能に精通することで、データセットの効率的な処理、主要な機能の選択、成果の視覚化が可能になり、最終的にはモデルの性能が向上します。

Python環境

 

Pythonとその依存関係の自己完結型のインストールで、プロジェクトの要件を分離し、異なるプロジェクト間で一貫性を確保できます。Condaやvirtenvなどのツールを使用して作成できます。

NumPy

 

大規模な多次元配列と行列のサポートと、それらを操作するための幅広い高性能数学関数のサポートを提供するライブラリーです。これはPythonでの科学計算のための基本パッケージです。

SciPy

 

NumPy上に構築されたライブラリーで、信号処理、線形代数、最適化、統計など、科学およびエンジニアリング・アプリケーション向けの機能を提供します。物理学、工学、データ分析などの分野で広く使用されています。

パンダ

 

スプレッドシートやSQLテーブルなどの表形式データを含む構造化データを効率的に処理するためのデータ構造と関数を提供するライブラリーです。これは、データのクリーニング、フィルタリング、グループ化、およびマージに特に役立ちます。

Matplotlib

 

幅広い視覚化ツールを提供するプロット・ライブラリで、高品質の2Dおよび3Dプロット、チャート、グラフを作成できます。科学データを視覚化するために、NumPyやPandasと組み合わせて使用されることがよくあります。

今後の展開

scikit-learnが進化し続けるにつれて、高度なアンサンブル技術とメタ学習アプローチを用いてその機能を拡大する取り組みが進められています。scikit-learnは、従来のアルゴリズムとニューラル・ネットワークの力を活用することで、増え続ける機械学習の課題に対応する包括的なツールキットを提供することを目指しています。こうした開発により、仕事に最先端のテクノロジーを活用したいと考えている実務家にとって、利用しやすくなることが約束されています。

関連ソリューション
IBM watsonx.ai

AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。

watsonx.aiの詳細はこちら
人工知能ソリューション

IBMの業界をリードするAIの専門知識とソリューションのポートフォリオを活用して、AIをビジネスの業務に利用しましょう。

AIソリューションの詳細はこちら
人工知能(AI)コンサルティングおよびサービス

IBMコンサルティングAIサービスは、企業がAIをトランスフォーメーションに活用する方法を再考するのに役立ちます。

AIサービスの詳細はこちら
次のステップ

AIを使用することで、IBM Concertはお客様のオペレーションに関する重要な洞察を明らかにし、改善のためのアプリケーション固有の推奨事項を提供します。Concertがどのようにビジネスを前進させることができるかをご覧ください。

Concertの詳細はこちら ビジネス・プロセス自動化ソリューションの詳細はこちら