機械学習: 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についてお話しましょう

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

ブログ    

推薦する

人工知能の世界における機械学習とディープラーニング

人工知能(AI)はAIと略されます。 AI は、機械に知能を持たせ、人間のように特定の問題を解決する...

...

...

人工知能、機械学習、アルゴリズムが施設・資産管理に与える影響

急速に進化する今日のテクノロジーの世界では、「人工知能」、「機械学習」、「アルゴリズム」などの用語が...

面接でよく聞かれるアルゴリズムに関する18の質問

アルゴリズムは比較的複雑かつ基本的な科目です。プログラミングを学ぶ人は誰でも、多数のアルゴリズムを学...

...

データ分析とAIのミスが原因の注目度の高い事件9件

2017年、『エコノミスト』誌は、石油ではなくデータが世界で最も価値のある資源になったと宣言しました...

科学者が人工結晶で大きな進歩を遂げ、コンピューターをより低電力で動作可能に

コンピューターは小型化、高性能化していますが、動作には大量のエネルギーが必要です。過去 10 年間で...

Baidu CTO 王海鋒氏のCNCC2019講演: ディープラーニングプラットフォームが産業インテリジェンスをサポート

10月17日から19日まで、2019年中国コンピュータカンファレンス(CNCC2019)が蘇州で開催...

企業が機械学習を導入する際に直面する課題

機械学習は非常に重要な技術です。現在、50%以上の企業が機械学習の導入を検討または計画しており、企業...

人工知能は産業の発展を助け、将来の生活は期待に値する

人工知能技術が生活のあらゆる分野で登場し、スマート経済が繁栄するにつれて、人類の文明は新たな段階に入...

自動運転までどれくらい遠いのでしょうか?

[[412592]] 2021年、北京では初めて規制に従って無人配送車両の公道走行が許可された。写...

...

自然言語処理がCOVID-19に対する世界的な戦いに貢献

インターネットの普及と膨大な情報の出現により、人工知能の分野における重要な方向性としての自然言語処理...

...