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

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

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

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

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

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

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

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

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

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

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

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

  • 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)には、「学習意欲を持つインテリジェントエージェント」の開発が伴います。さまざまなアク...

...

...

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

現在、5Gや人工知能産業が活況を呈しており、さまざまな大手企業が利益を最大化するために「応用シナリオ...

JD Cityが新しいブランドアイデンティティを発表、スマートシティがJDグループの主要戦略に

3月21日、北京でiCityスマートシティカンファレンスが開催され、JD CityがJDグループの第...

AIとセキュリティ:繋がる双子

人工知能とセキュリティは、非常に重要かつ興味深い2つの分野です。それぞれの空間について書かれた本はあ...

天文学者は人工知能を使って宇宙の実際の形を明らかにする

日本の天文学者たちは、銀河の形状のランダムな変化によって生じる天文データの「ノイズ」を除去する新しい...

2.5 ~ 4 倍の深さで、より少ないパラメータと計算量で、DeLighT はどうやってそれを実現したのでしょうか?

ディープラーニングはパラメータが多すぎる、モデルが大きすぎる、展開が不便、そしてコンピューティングリ...

言語間、人間の声と犬の鳴き声の相互変換をサポートし、最も近いものだけを使用するシンプルな音声変換モデルはどれほど素晴らしいか

AIが関わる音声の世界はまさに魔法のようです。ある人の声を別の人の声に置き換えるだけでなく、動物と声...

...

ビッグデータと人工知能の時代において、監査人は依然としてアイデアを持つ必要があるのでしょうか?

誰もが考えを持っており、監査人もそれぞれ心の中にさまざまな考えを持っています。表面的には、監査スキル...

不気味な人工知能はいつでもあなたが何を考え、何を見ているかをスパイできる

日本の科学者たちは、驚くほどの正確さで脳内を覗き込むことができる不気味な機械を開発した。この AI ...

自動運転の4つの主要技術の簡単な分析

2017年5月に世界保健機関が発表したデータによると、世界中で毎年約125万人が交通事故で亡くなって...

知っておくべき 19 の実用的なコンソール デバッグのヒント!

みなさんこんにちは、CUGGZです。ブラウザの開発者ツールは、DOM ツリー構造の表示、CSS スタ...

人工知能に関する4つの大きな誤解

サンタフェ研究所の教授であり、『人工知能:考える人間のためのガイド』の著者でもあるメラニー・ミッチェ...