機械学習: 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」があなたにビデオ通話を開始しました。あなたはそれを受け入れるべきでしょうか?

毎年恒例のスーパーボウル決勝戦の前に、Amazon は「Alexa の新しい形」というもう一つの大ヒ...

これらの仕事は今後5年以内に機械に置き換えられる可能性があり、8500万人が解雇される危険にさらされている。

5G ネットワークの誕生と普及により、5G ネットワークのサポートにより、モノのインターネットの新...

...

...

GPT-4は97回の対話で世界の諸問題を探り、P≠NPという結論を導き出した。

科学研究の分野で働く人なら、P/NP 問題についてはある程度聞いたことがあるでしょう。この問題は、ク...

Google は、開発者が独自のモデルを構築できるようにエンドツーエンドの AI プラットフォームをリリースしました。

Google は一連の人工知能ツールをリリースしました。これらすべての新しいツールとサービスの核と...

2022年にAIがサイバーセキュリティにもたらすもの

過去 1 年間で、人工知能 (AI) は私たちの日常生活のより大きな部分を占めるようになり、さまざま...

...

YOLOv6: 高速かつ正確な物体検出フレームワークがオープンソース化

著者: Chu Yi、Kai Heng 他最近、Meituan のビジュアル インテリジェンス部門は...

Google は人工知能の分野で「堀」を持っていないのでしょうか?

少し前、匿名の人物が、Google 社内の研究者による研究メモを Discord プラットフォームに...

...

人工知能は人類のより良い生活を可能にする

新世代人工知能の活発な発展は、科学技術革新と産業のアップグレードと変革の産業推進の焦点となり、経済社...

...

...

生成型 AI がソフトウェア開発を変える 10 の方法

翻訳者 |陳俊レビュー | Chonglou 1990 年代にソフトウェア プログラミングについて話...