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

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

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

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

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

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

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

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

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

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

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

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

  • 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が予測分析アプリケーションに与える影響

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

ブログ    
ブログ    
ブログ    

推薦する

Python ベースのパーセプトロン分類アルゴリズムの実践

[[374354]]パーセプトロンは、バイナリ分類タスク用の線形機械学習アルゴリズムです。これは、人...

2021 年に注目すべき 3 つのデータ分析と AI のトレンド

組織が新型コロナウイルス感染症のパンデミックを乗り越えていく中で、データ分析と AI の ROI を...

Baidu Brainのインテリジェント会話エンジンが9つのコア機能のリリースで「警笛を鳴らす」

言語は思考と知識を伝達し、人類の文明を推進します。そして会話によって機械はより賢くなり、人間にとって...

最新のClaude2.1とLlama 2をご利用いただけます。アマゾンが生成型AI開発の参入障壁を下げる

良いニュースです。生成 AI アプリケーションの敷居が大幅に下がりました。先ほど、Amazon We...

李開復:中国の大型モデル競争は非常に激しく、最終的には大きな勝者が数人出るだろう

12月28日、ベンチャーキャピタリストで元Google China社長の李開復氏の予測によれば、中国...

ホワイトハウスは開発者にCとC++を放棄するよう求める声明を発表した。メモリの安全性のためにRustが「選ばれた」

最近、ホワイトハウスの国家サイバースペース局長室(ONCD)は、「基本的な構成要素への回帰:安全なソ...

百度、検索エンジンアルゴリズムを調整して微博コンテンツのインデックスを強化

情報筋によると、検索エンジンの百度は先週、検索アルゴリズムを調整し、微博のコンテンツのインデックスを...

人工知能も「ペンを手に取る」とき、人間に残される領域はどれほどになるのでしょうか?

「暗闇が私たちの光を引き立てる/そして私は漠然とした幻想しか見ることができない/孤独の瞬間のあなた...

人工知能技術には明るい未来がある

1990年代初頭、中国の著名な学者である周海中氏は、人工知能技術がさまざまな分野で広く使用され、予想...

5G+AIは通信とコンピューティングを統合する

人工知能(AI)の急速な発展は、さまざまな業界に革命的な変化をもたらし、イノベーションの新たな時代を...

ロボット開発者イノベーションデー | Horizo​​n RDK と NodeHub の新製品

7月25日、「Horizo​​n 2023 Robotics Developer Innovatio...

...

軍用殺人ロボットは人類の救世主か悪魔か?

[[230142]] 「リトルビー」殺人ロボットの背後にあるブラックテクノロジー学生たちが席に座っ...

将来、ロボットは手術を支援し、反復作業をより効率的に実行できるようになるかもしれない。

人々は人工知能の急速な発展と、さまざまな業界でのその応用事例を目撃してきました。ヘルスケアは、AI、...

機械学習の最大の欠点を解決する?マックス・プランク研究所とグーグルが因果学習を再び研究

野球選手がボールを打つ様子を見ると、さまざまな要素間の因果関係を推測することができます。たとえば、野...