Open6
機械学習周りのtips (実行時エラー、効率化、関数の使い方など)
特徴量追加の際に変更する箇所
特徴量が追加されるとinputのsizeが変更される
LGBMはinputのsizeを明示的に入れないので変更なしでOK
NNはkeras.Input(shape=(nn_shape_size,), name='num_data')
などinputでのニューロンの数を決める必要があるのでグローバル変数でnn_shape_size
などを指定して変更する
散布図
使い所
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でかく
matplotlib でのviolin plotの描画手法
(seaborn の方が楽そうだけど。。)
ax1.set_title("violin plot")
ax1.set_ylabel("~~")
ax1.vioilnplot(data)
pandas groupby 関数の使い方
概要
groupby 関数はデータフレームを特定のカラムの値でまとめて計算をするためのグルーピングを行う関数
帰ってくるのはGroupby オブジェクトであってそのまま表示することはできない
Groupbyオブジェクトに対して行う計算はmean,sum,max,minなどの規定の関数や自分で定義した関数も使うことができる
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前にデータから消しておく
Kaggle Notebook 使用上のtips
- Kaggle Notebook 上でnotebookを編集したときに、save しないでweb ブラウザをリロードすると編集が消えるので注意