機械学習の仕組み - コード例

機械学習の仕組み - コード例

誰が生き残るかを予測するモデルをトレーニングします。

[注: ここでモデルを自分で構築するには、完全にインタラクティブなノートブックを使用してください。 コーディングの経験は必要ありません。 ]

あなたも私と同じなら、実際に何かを試して「自分でやってみる」ことで、本当に理解できるはずです。 ここでは、機械学習が実際にどのように機能するかの例を示します。

タイタニック号の乗客が生き残る確率を予測する独自の機械学習モデルを構築します。 モデルはデータを見るだけで自動的にパターンを学習します。

機械学習を実行する手順を理解する

次の手順に従ってください。

  • データを読み込み、視覚的な探索を実行します。
  • 機械学習アルゴリズム用のデータを準備します。
  • モデルをトレーニングする - アルゴリズムにデータから学習させる。
  • モデルを評価します。これまでに見たことのないデータに対してモデルがどの程度適切に機能するかを確認します。
  • モデルを分析し、適切に実行するために必要なデータの量を確認します。

機械学習モデルを自分で構築するには、付属のノートブックを開きます。 セットアップなしで実際の機械学習コードを実行でき、そのまま動作します。

機械学習ツールについて学ぶ

機械学習ツールに関しては、多くの選択肢があります。 このガイドでは、最も人気があり強力な機械学習ライブラリのいくつかを使用します。

  • Python: 読みやすさで知られる高水準プログラミング言語であり、世界中で最も人気のある機械学習言語です。
  • Pandas: スプレッドシートのような機能を言語に導入する Python ライブラリ。
  • Seaborn: チャートやその他のグラフィックを描画するためのライブラリ。
  • Scikit-learn: 予測データ分析のためのシンプルなツールを提供する Python 用の機械学習ライブラリ。
  • DRLearn: このデータセット用に構築された当社独自の DataRevenue Learn モジュール。

これらは、初心者だけでなく大企業(JPモルガンなど)にも役立つため、優れたツールです。

データセットの調査

私たちは有名なタイタニック データセットを使用します。これは、タイタニック号の乗客に関する詳細な情報を含む、少し不気味ですが興味深いデータセットです。 当社には、各乗客に関する豊富なデータがあり、その中には以下が含まれます。

  • 名前、
  • 性別、
  • 年、
  • チケットクラス。

私たちのデータは行と列の標準的な形式であり、各行は乗客を表し、各列はその乗客の属性を表します。 次に例を示します。

  1. pandasをpdとしてインポートする
  2. DRLearnからDRLearnをインポート
  3.  
  4. titanic_dataset = pd.read_csv( "titanic.csv" 、 index_col=0)
  5. タイタニックデータセット.head()

> タイタニック号のデータセットに含まれる乗客の一部。出典:著者

タイタニック号のデータセットに含まれる乗客の一部

データセットの視覚化

機械学習モデルはスマートですが、そのスマートさは入力するデータによって決まります。 したがって、重要な第一歩は、データセットをより深く理解することです。

データを分析する場合、仮説をテストすることが良い出発点となります。 ファーストクラスのチケットを持っている人は生き残る可能性が高いので、データがこれを裏付けるかどうか見てみましょう。

この視覚化を生成するためのコードは、付属のノートブックで表示および実行できます。

  1. DRLearn.plot_passenger_class(タイタニック号のデータセット)

> 3等乗客の生存率は最も低く、1等乗客の生存率は最も高かった。出典:著者

三等乗客の生存率は最も低く、一等乗客の生存率は最も高かった。

一等船客の60%以上が生き残ったが、三等船客の生き残りは30%未満だった。

「女性と子どもを優先」という言葉も聞いたことがあるかもしれません。 性と生存の相互作用を見てみましょう。

  1. DRLearn.plot_passenger_gender(タイタニック号のデータセット)

> 女性は男性よりも生存する可能性がはるかに高かった。出典:著者

女性は男性よりも生き残る可能性が高い。

再び、私たちの仮定が正しかったことがわかります。 女性の生存率は70%以上ですが、男性の場合はわずか20%程度です。

このようにして、データセットの 2 つの基本的な視覚化を作成しました。 ここではさらに多くのことを行うことができます (本番環境の機械学習プロジェクトでは、確かに可能です)。 たとえば、多変量解析では、一度に複数の変数を調べた場合に何が起こるかを示します。

データを準備する

モデルをトレーニングするために機械学習アルゴリズムにデータを入力する前に、データをアルゴリズムにとってより意味のあるものにする必要があります。 特定の列を無視し、他の列を再フォーマットすることでこれを実行できます。

不要な列を無視する

乗客のチケット番号と生存率の間には相関関係がないことは既にわかっているので、その列は明示的に無視できます。 データをモデルに入力する前に、まずそれを削除しましょう。

データの再フォーマット

いくつかの機能は便利ですが、元の形式ではありません。 たとえば、「男性」と「女性」というラベルは人間にとっては意味をなしますが、数字を好む機械にとっては意味をなしません。 したがって、これらのトークンをそれぞれ「0」と「1」としてエンコードできます。

選択された特徴、ターゲット = DRLearn.extract_features(titanic_dataset)選択された特徴.sample(5)

データセットが準備されると、フォーマットはよりマシンフレンドリーになります。 以下に、多くの無駄な列を削除し、残りのすべての列で数字を使用する例を示します。

> データセットの準備が整うと、よりシンプルになり、機械学習の準備が整います。出典:著者

データセットを準備すると、作業がはるかに簡単になり、機械学習に進むことができます。

データセットを2つに分割する

次に、モデルをトレーニングしてテストする必要があります。 小学生に宿題の例としてテスト問題を与え、試験環境で見たことのない問題を与えるのと同じように、一部のデータで機械学習アルゴリズムをトレーニングし、残りのデータでどのように機能するかを確認します。

> データセットを分割しました。1つはモデルのトレーニング用、もう1つはテスト用です。出典:著者

データセットを分割し、1 つの部分をモデルのトレーニング用、もう 1 つの部分をモデルのテスト用にします。

  1. X_train、X_test、y_train、y_test = DRLearn.split_dataset(選択された特徴、ターゲット、分割=0.2)

モデルをトレーニングしましょう!

ここからが楽しい部分です。トレーニング データをモデルに入力し、パターンを見つけるように指示します。 このステップでは、データと望ましい回答(乗客が生き残ったかどうか)をモデルに提供します。

モデルはこのデータからパターンを学習します。

> 私たちの機械学習モデルはトレーニングセットでトレーニングされています。出典:著者

当社の機械学習モデルはトレーニング セットでトレーニングされます。

  1. モデル = DRLearn.train_model(X_train, y_train)

モデルのテスト

ここで、データセットの残り半分の乗客の詳細のみを提供し、回答は提供せずにモデルをテストできます。 アルゴリズムは乗客が生き残ったかどうかは分からないが、訓練で学んだことに基づいて推測しようとする。

> テストの結果を予測するように機械学習モデルに依頼して、機械学習モデルがどれだけうまく機能するかをテストする

機械学習モデルにテストデータの結果を予測させることで、そのパフォーマンスをテストします。

  1. DRLearn.evaluate_model(モデル、X_テスト、y_テスト)

モデルの分析

モデルがどのように機能するかをよりよく理解するために、次のことができます。

  • 予測を行うためにどの機能に最も依存しているかを確認します。
  • 使用するデータ量を減らすと精度がどのように変化するかを確認します。

1 つ目はデータをより深く理解するのに役立ち、2 つ目はより大きなデータセットを取得する価値があるかどうかを理解するのに役立ちます。

私たちのモデルが発見したものを学ぶ

機械学習は、すべてのデータが同じように興味深いわけではないことを理解しています。 特定の詳細に重み付けすることで、より適切な予測が可能になります。 以下の重みは、性別が生存を予測する上で最も重要な要素であることを示しています。

  1. DRLearn.explain_model(モデル、X_train)

> 私たちのモデルは主に性別に依存し、乗客が3等車に乗っていたかどうか、そして

私たちのモデルは主に性別に依存し、乗客が三等車であるかどうかや家族の人数にも多少依存します。

また、特定の乗客の生存を予測する際に、アルゴリズムがデータのどの側面に注目するかを確認することもできます。 以下に、アルゴリズムによって生存している可能性が高いと判断された乗客を示します。 以下の事実に特に注目します。

  • 乗客は三等車ではなかった。
  • 乗客は女性でした。

この乗客もファーストクラスではなかったため、生存の可能性はわずかに低下し、最終的な生存予測は 93% となりました。

  1. model_interpretation = DRLearn.interpret_model(モデル、X_テスト、y_テスト)
  2. 乗客数 = 3
  3. DRLearn.analyze_passenger_prediction(モデル解釈、X_test、乗客数)

> モデルが特定の乗客に対してどのように予測を行ったか。彼女の生存率は高かった。

モデルが特定の乗客に対してどのように予測を行うか。 彼女は女性であり、三流階級ではないため、成人率が高い。

データ量がモデルに及ぼす影響を理解する

モデルを複数回トレーニングして、データが増えるとどれだけ改善されるかを確認しましょう。 ここでは、トレーニング スコアとテスト スコアの両方をプロットします。 後者は、モデルが目に見えないデータに対してどの程度うまく機能するかを示すため、より興味深いものです。

トレーニング スコアは「公開試験」と考えることができます。モデルはすでに回答を見ているため、「テスト スコア」よりも高く見えますが、モデルはトレーニング フェーズ中に見たデータに対して優れたパフォーマンスを発揮する可能性が高くなります。

  1. DRLearn.visualise_training_progress(モデル、X_train、y_train、X_test、y_test)

> データが増えるとモデルは改善されます(テストスコア)。しかし、約500データポイントを超えると改善は最小限になります。

データが増えるとモデルは向上します (テスト スコア)。 ただし、約 500 のデータ ポイントを超えると、改善は最小限になります。

ここで、モデルに含まれるデータが多いほど、パフォーマンスが向上することがわかります。 これは最初は顕著ですが、その後データを追加しても改善はわずかになります。

機械学習モデルは「ブラックボックス」アルゴリズムである必要はありません。 モデル分析は、モデルがどのように機能し、どのように改善できるかを理解するのに役立ちます。

結論は

これで、独自の機械学習モデルが構築されました。 これで次のことが可能になります:

  • データ サイエンス チームの日常業務を理解する。
  • データ サイエンス チームまたは機械学習チームとのコミュニケーションを改善します。
  • 機械学習が最も効果的に解決できる問題を理解する。
  • 結局のところ、機械学習はそれほど難しいものではないことに気づきます。

機械学習の複雑な部分には、カスタム ソリューションの構築と拡張に関するすべての詳細が含まれます。 これが私たちの専門分野です。次のステップについてサポートが必要な場合は、お知らせください。

<<:  AIが予測分析アプリケーションに与える影響

>>:  機械学習が失敗したらどうするか: 計算学習理論

ブログ    

推薦する

AIシステムが初めて真の自律プログラミングを実現:遺伝的アルゴリズムを使用して初心者プログラマーを上回る

編集者注:この記事は、WeChatのパブリックアカウント「New Intelligence」(ID:...

生成 AI とビッグモデルの違いと関連性は何ですか?

近年、ChatGPT、GPT-4、BARD、Claudeなどの大規模モデルが急速かつ大幅な進歩を遂げ...

2018 年の人工知能の予測を振り返ってみると、どれが現実になったのでしょうか?

人工知能は非常に複雑であり、急速に発展しています。今後数年間でそれがどうなるかを正確に予測することは...

なぜ一部の数学研究者はディープラーニングを嫌ったり軽蔑したりするのでしょうか?

[[190844]] DL の難しさは、問題をどのような視点から見るかによって決まります。数学を勉...

...

大規模モデル幻覚率ランキング:GPT-4は3%と最も低いが、Google Palmは最大27.2%

人工知能は急速に発展していますが、問題も頻繁に発生しています。 OpenAI の新しい GPT ビジ...

マイクロソフトは、AIチップが十分に入手できない場合、データセンターのサービスが中断される可能性があると警告している

CNBCによると、7月29日、マイクロソフトは最近発表した財務報告書の中で、データセンターのサービス...

Keras 機能 API によるディープラーニング

[[380280]] Keras Python ライブラリを使用すると、ディープラーニング モデルを...

新しいシステムではドローンを使って手の届きにくい太陽光パネルを清掃する

太陽光パネルには常に埃や汚れなどのゴミがたまります。また、高層ビルの屋上や遠隔地に設置されていること...

...

AIは敵ではなく友達でしょうか?自殺防止技術が25人の命を救うことに成功

世界保健機関によれば、毎年80万人が自殺で亡くなっている。 この数字は年々高いままですが、人工知能と...

ML と AI の違い: 詳細ガイド

人工知能 (AI) と機械学習 (ML) は互換性があると考えられる場合もありますが、概念的には関連...

RNN の理論から PyTorch まで

RNN とは何か、どこで使用されているか、どのように前方および後方に伝播するか、そして PyTorc...

最新のAIはプログラマーを失業させるでしょうか?

現在、AI は追加のトレーニングを必要とせずに、任意の言語でコーディングできます。 [[334827...

人工知能は永遠の神です:それを崇拝する準備はできていますか?

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...