データ分析 プログラミング学習

Titanicデータ分析で学ぶ!複数アルゴリズムの比較と最適なモデル選定

記事内に商品プロモーションを含む場合があります

機械学習を学ぶ上で、モデルの精度を高めるためには複数のアルゴリズムを比較し、最適なものを選定することが重要です。今回は、Kaggleで公開されている有名なTitanicデータセットを使用し、4つの異なるアルゴリズムを試して、その精度を比較してみました。

この記事では、次のようなステップで進めていきます。

前回記事:Kaggle×Pythonで挑戦!タイタニック号データ分析の方法と結果

kaggleでは、コードの共有に制限が設けられているため、安全に共有できるkaggleノートブックにコードを乗せております。
実際のコードを確認したい方は以下のkaggleノートブック参考にしてください。

kaggleノートブック

kaggleって何?

データサイエンスの世界に足を踏み入れると、必ず耳にするプラットフォームがKaggleです。Kaggleは、世界中のデータサイエンティストやエンジニアたちが集まり、データ分析のコンペティションや、豊富なデータセットを活用してスキルを磨く場です。初心者から上級者まで、多くの人々がKaggleで学び、挑戦を通じて成長しています。

kaggle公式サイト

データの前処理と特徴量エンジニアリング

まず、データセットに含まれる欠損値を補完し、機械学習モデルが学習しやすい形に整えます。Titanicデータセットには、年齢や運賃、乗船港などに欠損値が含まれています。これらの欠損値を補完することで、モデルがすべてのデータを効率的に利用できるようにしました。

データのクリーニング

  • 年齢や運賃の欠損値は、中央値を使って補完。
  • 乗船港の欠損は、最頻値(最も多く出現する値)で補完。

次に、「名前」や「チケット番号」といったデータを利用して、新しい情報(特徴量)を抽出します。たとえば、「名前」からはMrやMrsといった敬称(タイトル)を取り出し、これが社会的な地位や年齢層を示す指標として利用できるため、モデルに役立つ可能性があります。また、家族の人数やチケット番号のパターンも特徴量として追加しました。

参考コード

このようにして、欠損値を処理し、データを完全にしました。

特徴量エンジニアリング

  • 名前から敬称(Mr, Mrs, Missなど)を抽出して新たな情報として活用。
  • 家族の人数を兄弟姉妹・親子の数を加算して計算。

これらの前処理によって、データがより意味のある形に変換され、モデルの精度向上が期待できます。

参考コード

敬称には、Mr, Mrs, Missなどが含まれ、これをモデルの入力に加えることで、予測精度を高めることができます。

4つの機械学習アルゴリズムの比較

4つの異なるアルゴリズムでモデルを訓練し、検証データでの精度を比較しました。最も高い精度を示したのは勾配ブースティングでした。

これらのモデルを訓練し、精度を比較してみます。まずはロジスティック回帰から順に実行し、最後にすべての結果を比較します。それでは、まずロジスティック回帰を試してみます。

使用したアルゴリズム

ロジスティック回帰:簡単で強力な二値分類アルゴリズム。生存か非生存かを確率で予測します。

サポートベクターマシン (SVM):データを分類するために、最適な境界線を引くモデル。

k近傍法 (KNN):周囲のデータポイントを基に、対象のデータがどのカテゴリに属するかを予測します。

勾配ブースティング:複数の弱い学習器(決定木)を組み合わせて強力な予測モデルを作成する手法。

ロジスティック回帰

ロジスティック回帰は、簡単かつ強力な分類モデルです。二値分類に最適で、Titanicデータセットの生存予測に適用するのに適したアルゴリズムです。

参考コード

サポートベクターマシン(SVM)

SVMはデータ間の境界線を引いて分類するモデルで、マージン(境界から最も近いデータ点までの距離)を最大化することで、分類精度を高めます。

参考コード

K近傍法(KNN)

K近傍法は、データの周囲にある近くのポイント(K個)を使って分類します。これは、シンプルかつ理解しやすいアルゴリズムです。

参考コード

勾配ブースティング

勾配ブースティングは、複数の決定木を組み合わせて強力な予測モデルを作成する手法です。これは、予測精度を向上させるために非常に効果的です。

参考コード

アルゴリズムの精度結果

4つのアルゴリズムを比較した結果は以下の通りです。

  • ロジスティック回帰: 78.77%
  • サポートベクターマシン (SVM): 66.48%
  • k近傍法 (KNN): 79.33%
  • 勾配ブースティング (Gradient Boosting): 84.36%

この結果から、最も高い精度を示したのは勾配ブースティングでした。

勾配ブースティングを使用した最終予測

最も高い精度を示した勾配ブースティングを用いて、テストデータに対して最終予測を行いました。この手法は、決定木を繰り返し構築し、各モデルが前のモデルの誤りを補正することで予測精度を高めるアプローチです。

勾配ブースティングの概要

  • まずは複数の決定木を順番に訓練し、次の木が前の木で予測ミスをしたデータをより重視するように学習します。
  • このプロセスを繰り返し、最終的に強力なモデルが構築されます。

最終予測と提出ファイルの作成

最も精度の高かった勾配ブースティングを使用して、テストデータに対して最終予測を行い、結果をCSVファイルとして出力しました。

参考コード

まとめ

今回のTitanicデータセットを使った分析では、複数の機械学習アルゴリズムを比較しました。最も精度が高かったのは勾配ブースティングで、84%以上の精度を達成しました。この結果から、アンサンブル学習の強力さを確認できました。

また、モデルの性能を高めるためには、データの前処理や特徴量エンジニアリングが重要な役割を果たすことも学べました。特に、名前やチケット番号などのデータを有効に活用することで、モデルの予測精度を向上させることができました。

このように、データ分析のプロセスでは、複数のアルゴリズムを比較し、最適なモデルを選ぶことが重要です。この記事を参考に、ぜひ他のデータセットでも試してみてください!

Pythonを学びたい方はこちらの記事を参考にしてみてください

プログラミング学習を進めているけれど、まだ副収入につなげられていない…そんなあなたへ!今こそ、学んだスキルを活かして副業に挑戦する絶好のチャンスです。プログラミングだけでなく、自分のスキルや商品をネットで販売する『ネットショップ』を開設してみませんか?

ネットショップを持つことで、自分の知識やスキルをより多くの人に届け、副収入を得ることが可能です。学んできたプログラミングを活かして、ショップのカスタマイズや運営も自由自在に行えますし、もし商品作成が難しい場合でも、デジタル商品やサービス提供など、いろんな選択肢があります。

このステップで一歩踏み出せば、今学んでいることが副収入に直結し、自分の時間をより有効に使うことができるはずです!一緒にネットショップを開設し、副業の第一歩を踏み出しましょう!

プログラミングを学びたいけど、どこから始めたらいいのか分からない、自分に合っているか不安…そんな悩みを持っている方におすすめしたいのが、 無料相談 サービスです!

この無料相談では、あなたの現状や目標に合わせて、最適な学習プランを一緒に考えてくれます。どんなスキルが必要なのか、どうやって学習を進めると効果的かを具体的にアドバイスしてもらえるので、無駄なく効率的にスタートを切ることができます。

さらに、プログラミング学習には同じ目標を持つ 仲間 がいること、そして頼りになる メンター の存在がとても大きな支えになります。独学ではどうしてもつまずきやすい部分も、メンターがあなたの成長に合わせて親身にサポートしてくれるので、安心して学びを進められます。

まずは 無料相談 で、あなたに合ったプランを見つけて、スキルアップへの第一歩を踏み出してみませんか?今なら、迷っている方でも気軽に相談できるチャンスです!

テックアカデミー無料メンター相談

-データ分析, プログラミング学習
-, , , , , ,