Open6

機械学習周りのtips (実行時エラー、効率化、関数の使い方など)

knkknk

特徴量追加の際に変更する箇所

特徴量が追加されるとinputのsizeが変更される
LGBMはinputのsizeを明示的に入れないので変更なしでOK
NNはkeras.Input(shape=(nn_shape_size,), name='num_data')などinputでのニューロンの数を決める必要があるのでグローバル変数でnn_shape_sizeなどを指定して変更する

knkknk

散布図

使い所

2つの値の相関が見たい時に使う

plt.scatter(train["stock_id"],train["target"])
plt.title("stock_id vs volatility")
plt.xlabel("stock_id")
plt.ylabel("volatility")
plt.grid(True)

2つの値の相関だけでなく3つの値の関係性が見たい時にはカラーマップを使うという方法もある

plt.scatter(x, y, s=100, c=value, cmap='Blues')
 
# カラーバーを表示
plt.colorbar()

参考) https://pythondatascience.plavox.info/matplotlib/散布図

調べること

  • notebookで複数の図を同時に表示するには?
    • 複数のセルに分けてコードを書く以外に
  • 点が潰れて見えない時の対処法(連続値ではない時に横軸は棒グラフのように分けて表示したい)
    • box plotやviolin plotでかく
knkknk

pandas groupby 関数の使い方

概要

groupby 関数はデータフレームを特定のカラムの値でまとめて計算をするためのグルーピングを行う関数
帰ってくるのはGroupby オブジェクトであってそのまま表示することはできない
Groupbyオブジェクトに対して行う計算はmean,sum,max,minなどの規定の関数や自分で定義した関数も使うことができる

参考:https://note.nkmk.me/python-pandas-groupby-statistics/

knkknk

EDA時のデータ可視化tips

python のリストをpandasのdfにする方法

# pandas df => python list
lis = df.values.tolist() # 一旦ndarrayに変換してそこからさらにndarrayをlistに変換する
# python list => pandas df
df = pd.Series(lis) 

参考:https://note.nkmk.me/python-pandas-list/

pandas であるカラムの値を元に別のカラムの値をリスト化して、リストのリストを作る手法

ValueError: zero-size array to reduction operation maximum which has no identityのエラー

plot時に配列の長さが0の配列があるとこのエラーを吐くので、plot前にデータから消しておく

knkknk

Kaggle Notebook 使用上のtips

  • Kaggle Notebook 上でnotebookを編集したときに、save しないでweb ブラウザをリロードすると編集が消えるので注意