前回記事にてはじめてKaggleコンペの1つタイタニック(Titanic)に結果を提出(Submit)してみました。
結果としては正解率75%ほどで十分な結果とは言えなかったので、手法を少し変えて成績を向上させたいと思います。
今回はアルゴリズムをLightGBMからSVMに変更してみます。
SVMは以前、アヤメの品種を分類するときに使用しました。
Python scikit-learn - 機械学習でアヤメの品種を分類する - https://ailog.site/2020/04/21/0421/
データ読み込み
まずは、Kaggleに準備されているタイタニックの訓練データを読み込みます。
[ソース]
1 | import numpy as np |
データの前処理(不要列の削除・欠損処理・カテゴリ変数の変換)を行う処理を関数化します。
LightGBMとは違ってSVMでは欠損値があると学習できないので、欠損値が1つもなくなるように気を付けます。
[ソース]
1 | # データ前処理 |
データを正解ラベルとそれ以外に分けて、学習を行います。
今回はとりあえず1度だけ学習を行い、学習済みモデルを1つだけ作成しました。
[ソース]
1 | x_titanic = df_train.drop(['Survived'], axis=1) |
検証データを読み込み、予測を行います。
予測したデータをコンペ提出用にcsvファイル出力します。
[ソース]
1 | # データを予測 |
出力したsvm_result.csvを提出した結果は次の通りです。
[提出結果]
提出結果は63.397%という正解率になりました。
LightGBMの時よりだいぶ正解率が下がってしまいました。。。






