機械学習: Python による分類

機械学習: Python による分類

子供にリンゴとオレンジの区別を教えたいとします。これを行うには複数の方法があります。お子様にこの 2 つの果物を触らせて、その形や柔らかさに慣れてもらうことができます。リンゴとオレンジの例を複数見せて、違いを視覚的に見分けられるようにすることもできます。このプロセスの技術的同等物は機械学習と呼ばれます。

機械学習は、コンピューターに特定の問題を解決し、経験を積むことで改善することを教えます。ここで説明する例は、マシンにさまざまなラベル付きサンプルが与えられ、ラベル付きサンプルから得た知識を使用してラベルなしサンプルにラベルを付ける分類問題です。機械学習の問題は回帰の形をとることもあり、既知の例とその解決策に基づいて、特定の問題に対する実数値の解決策を予測することが求められます。分類と回帰は、一般的に教師あり学習と呼ばれます。機械学習は教師なし学習も可能です。教師なし学習では、機械がラベル付けされていないデータ内のパターンを識別し、類似したパターンを持つ例のクラスターを形成します。機械学習のもう 1 つの形式は強化学習です。これは、機械が間違いを犯すことで環境から学習するものです。

分類

分類とは、既知のポイントから取得した情報に基づいて、特定のポイント セットのラベルを予測するプロセスです。データセットに関連付けられたカテゴリまたはラベルは、バイナリまたは多変量のいずれかになります。たとえば、文章に関連付けられた感情にラベルを付ける必要がある場合、それを肯定的、否定的、または中立的としてラベル付けできます。一方、果物がリンゴかオレンジかを予測しなければならない問題には、バイナリ ラベルが付きます。表面
1 は分類問題のサンプルデータセットを示します。

この表では、最後の列であるローン承認の値は、他の変数に基づいて予測されるものと予想されます。次のセクションでは、Python を使用して分類器をトレーニングおよび評価する方法を学習します。

信用格付け

仕事

不動産を所有する

ローン承認

35

良い

はい

はい

はい

32

違い

はい

いいえ

いいえ

22

一般的に

いいえ

いいえ

いいえ

42

良い

はい

いいえ

はい

表1

分類器のトレーニングと評価

分類器をトレーニングするには、ラベル付けされた例を含むデータセットが必要です。このセクションではデータのクリーニングのプロセスについては説明しませんが、データセットを分類器に渡す前に、さまざまなデータの前処理とクリーニングの手法について読んでおくことをお勧めします。 Python でデータセットを操作するには、 ​pandas​​​ パッケージと DataFrame 構造をインポートします。次に、決定木、サポートベクター分類器、ランダムフォレスト、XG ブースト、ADA ブーストなどのさまざまな分類アルゴリズムから選択できます。複数の決定木を使用して形成されたアンサンブル分類器であるランダム フォレスト分類器について説明します。

 sklearn.ensemble からRandomForestClassifier インポートする
sklearn からメトリックをインポート

分類子= RandomForestClassifier ()

#70:30 の割合でトレーニングとテストの分割を作成する
X_trainX_testy_trainy_test = train_test_split ( Xytest_size = 0.33 )

classifier.fit ( X_train , y_train ) # トレーニングセットで分類器をトレーニングする

y_pred = classifier . predict ( X_test ) # 未知のデータを使用して分類器を評価する

print ( "Accuracy: " , metrics .accuracy_score ( y_test , y_pred )) # テスト計画の実際の値と精度を比較する

この手順ではパフォーマンス メトリックとして精度を使用しますが、テスト セットのバランスが取れていない場合、精度では代表的でない結果が生成される傾向があるため、メトリックを組み合わせて使用​​する必要があります。たとえば、モデルがすべてのレコードに対して同じ予測を行い、モデルのテストに使用されたデータセットが不均衡である場合、つまりデータセット内のほとんどのレコードがモデルによって予測されたものと同じカテゴリである場合、高い精度が得られます。

分類器の調整

チューニングとは、モデルのハイパーパラメータ値を変更してパフォーマンスを向上させるプロセスを指します。ハイパーパラメータは、アルゴリズムの学習プロセスを改善するために値を変更できるパラメータです。

次のコードは、ランダム検索ハイパーパラメータの調整について説明しています。ここでは、アルゴリズムがさまざまな値を選択し、最良の結果を生成する値を選択するための検索スペースを定義します。

 sklearn.model_selection からRandomizedSearchCV インポートする
#検索空間を定義する
最小サンプル分割= [ 2 , 5 , 10 ]
最小サンプル数= [ 1 , 2 , 4 ]
グリッド= { 'min_samples_split' : min_samples_split'min_samples_leaf' : min_samples_leaf }
分類子= RandomizedSearchCV ( 分類子グリッドn_iter = 100 )
# n_iterは検索空間から抽出されたサンプルの数を表します
# result.best_scoreとresult.best_params_を使用すると、モデルの最高のパフォーマンスとパラメータの最適な値を取得できます。
分類器.fit ( X_train , y_train )

投票分類子

複数の分類子とその予測を使用して、個々の予測に基づいて単一の予測を提供するモデルを作成することもできます。このプロセス (各予測に投票した分類器の数のみを考慮) は、ハード投票と呼ばれます。ソフト投票は、各分類器が特定のレコードが特定のクラスに属する確率を生成し、投票分類器によって生成された予測が最大確率を取得するクラスとなるプロセスです。

以下に、ソフト投票分類子を作成するコード スニペットを示します。

 soft_voting_clf = 投票分類子(
推定値= [( 'rf' , rf_clf ), ( 'ada' , ada_clf ), ( 'xgb' , xgb_clf ), ( 'et' , et_clf ), ( 'gb' , gb_clf )],
投票= 'ソフト' )
soft_voting_clf . fit ( X_trainy_train )

この投稿では、分類器の使用、分類器の調整、複数の分類器の結果の結合のプロセスをまとめます。各エリアを詳しく探索する際の参考にしてください。

<<:  説明可能な不正防止AIについてお話しましょう

>>:  患者が人工知能から得られる恩恵

ブログ    
ブログ    
ブログ    

推薦する

...

毎日のアルゴリズム: 回転マトリックス

[[431855]]各ピクセルのサイズが 4 バイトである N × N 行列で表される画像が与えられ...

AIは運輸業界をどう変えるのか

運輸業界は、現在のレベルに到達するまでに何百年にもわたる研究、実験、改良を経てきました。 1787 ...

人工知能時代のアルゴリズムガバナンスの核心と道筋

2021年12月末、4つの部門が共同で「インターネット情報サービスのアルゴリズム推奨管理に関する規則...

...

ロボットが密かに出産してみんなを驚かせている?

[[439390]]中国国営ラジオの12月7日の北京での「ニュースハイパーリンク」によると、米国の...

マーケターが人工知能を採用する時が来た

[[275753]] [51CTO.com クイック翻訳] あらゆる業界の先進的な企業は、人工知能を...

たった今、アリババが重大な技術的爆弾を発表しました!

人類史上のスーパープロジェクトとは何でしょうか?ピラミッド、万里の長城、ドバイワールドアイランド、三...

...

LLaVA: GPT-4V(ision) のオープンソース代替品

LLaVA (Large Language and Vision Assistant) は、画像翻訳...

アリババAIはダブル11ショッピングフェスティバルの衣料品工場で運用され、欠陥認識の精度は人間を上回った。

AI がダブル 11 の生産と製造をスピードアップします。 10月29日、記者は、アリババのAIア...

...

...