Kaggleをとりあえず触ってみて少しづつ予測や分類を理解していくぞ!

5 min
xainome

xainome

データサイエンティスト風味のSES
自身の話をするよりは人の話を聞く方が好き
普通の人

FOLLOW

最初の段階でタイタニックを触ることが普通かもしれませんが、この書籍でも触れてますがタイタニックは軽く触るくらいでいいと思います。

順位もあまり動かないですし、モチベも続かないと思うので他のコンペに早く参加したほうが楽しい気がします。

私は今開催されているこちらのコンペに参加しています。こちらのコンペは基となったデータから似たような特徴量を作成したものになります。中身はテーブルデータなうえに “id” と数値データのみなのでとっつきやすいと思います。

とりあえず中を見てみます。

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 19219 entries, 0 to 19218
Data columns (total 35 columns):
 #   Column                 Non-Null Count  Dtype  
---  ------                 --------------  -----  
 0   id                     19219 non-null  int64  
 1   X_Minimum              19219 non-null  int64  
 2   X_Maximum              19219 non-null  int64  
 3   Y_Minimum              19219 non-null  int64  
 4   Y_Maximum              19219 non-null  int64  
 5   Pixels_Areas           19219 non-null  int64  
 6   X_Perimeter            19219 non-null  int64  
 7   Y_Perimeter            19219 non-null  int64  
 8   Sum_of_Luminosity      19219 non-null  int64  
 9   Minimum_of_Luminosity  19219 non-null  int64  
 10  Maximum_of_Luminosity  19219 non-null  int64  
 11  Length_of_Conveyer     19219 non-null  int64  
 12  TypeOfSteel_A300       19219 non-null  int64  
 13  TypeOfSteel_A400       19219 non-null  int64  
 14  Steel_Plate_Thickness  19219 non-null  int64  
 15  Edges_Index            19219 non-null  float64
 16  Empty_Index            19219 non-null  float64
 17  Square_Index           19219 non-null  float64
 18  Outside_X_Index        19219 non-null  float64
 19  Edges_X_Index          19219 non-null  float64
 20  Edges_Y_Index          19219 non-null  float64
 21  Outside_Global_Index   19219 non-null  float64
 22  LogOfAreas             19219 non-null  float64
 23  Log_X_Index            19219 non-null  float64
 24  Log_Y_Index            19219 non-null  float64
 25  Orientation_Index      19219 non-null  float64
 26  Luminosity_Index       19219 non-null  float64
 27  SigmoidOfAreas         19219 non-null  float64
 28  Pastry                 19219 non-null  int64  
 29  Z_Scratch              19219 non-null  int64  
 30  K_Scatch               19219 non-null  int64  
 31  Stains                 19219 non-null  int64  
 32  Dirtiness              19219 non-null  int64  
 33  Bumps                  19219 non-null  int64  
 34  Other_Faults           19219 non-null  int64  
dtypes: float64(13), int64(22)
memory usage: 5.1 MB

中身は数値データで最後の7カラムが予測対象の列になります。それから欠損値はないみたいなので、欠損値については考えなくてよさそうです。

次は各説明変数の相関を見てみます。

なるほどわからん。こことここの変数の相関はあるんだ~と思うんですがこれをどう扱えばいいのか知識がないので一旦スルーします。あとはユニーク値の確認ですね。

[0.  1.  0.5 0.7]
[0 1]
[1 0]

この3つ以外はたくさん数値データがあるのでこの辺数だけ気にしておきます。本当はグラフでプロットしてもっと確認したほうがいいですね。

とりあえず予測してみましょう。xgboostモデルのインスタンスを作って、学習と予測をしていきます。以下は予測した変数と正解率、適合率、再現率、F値、AUCを確認していきます。この数値はライブラリで出せます。

目的変数 Pastry
Accuracy: 0.9206555671175859
Precision: 0.4777777777777778
Recall: 0.14285714285714285
F1 Score: 0.21994884910485932
AUC Score: 0.8609630331860212
目的変数 Z_Scratch
Accuracy: 0.9562955254942768
Precision: 0.6382978723404256
Recall: 0.5454545454545454
F1 Score: 0.5882352941176471
AUC Score: 0.9565886514148103
目的変数 K_Scatch
Accuracy: 0.9630593132154006
Precision: 0.8947368421052632
Recall: 0.8973607038123167
F1 Score: 0.8960468521229868
AUC Score: 0.9838276101283384
目的変数 Stains
Accuracy: 0.981789802289282
Precision: 0.6209677419354839
Recall: 0.77
F1 Score: 0.6874999999999999
AUC Score: 0.9895833333333333
目的変数 Dirtiness
Accuracy: 0.9791883454734651
Precision: 0.5925925925925926
Recall: 0.18823529411764706
F1 Score: 0.2857142857142857
AUC Score: 0.8646072954321393
目的変数 Bumps
Accuracy: 0.7663891779396462
Precision: 0.5205882352941177
Recall: 0.38228941684665224
F1 Score: 0.44084682440846823
AUC Score: 0.781748645851992
目的変数 Other_Faults
Accuracy: 0.6586888657648283
Precision: 0.5209988649262202
Recall: 0.3402520385470719
F1 Score: 0.4116591928251121
AUC Score: 0.6740674826301974

最後にテストデータに予測したデータを結合して提出しました。その時のPublic Scoreが0.5を切ってました(笑)

ちなみにロジスティック回帰で予測すると全ての値が0になるんですが、それを提出したら0.5でしたね。

とりあえずで触ってみて加工の仕方は仕事でやってますが、機械学習のやり方がなんとなくわかったのでもう少しデータの確認を行ったり、Discussionの中身も見てみようと思います。

もう少しスコア上げて頑張ってみます。ではでは。

xainome

xainome

データサイエンティスト風味のSES
自身の話をするよりは人の話を聞く方が好き
普通の人

FOLLOW

カテゴリー:
タグ:
関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Social Media Auto Publish Powered By : XYZScripts.com