勉強のアウトプットとして書いているので間違ってる部分があるかもしれないです。お気軽にコメントして下さい。今回は予測 統計 (実践編 重回帰) python
Pythonでやった重回帰の精度をさらに上げていきます。結論として、予測精度を上げるために必要なことは「特徴量」です。今回はその特徴量について扱っていきます。
#内容
・特徴量とは
・特徴量を用いた予測精度を上げる方法
・データ加工
#特徴量とは
特徴量とは説明変数のことです。機械学習の世界では説明変数よりも特徴量ということが多いです。分析精度をあげるためには特徴量は欠かせません。
#予測精度を上げる方法
特徴量を用いた、予測精度を上げる方法として以下の二点があります。
①特徴量を作る
②特徴量を選ぶ
##特徴量を作る
特徴量を作るとは一体どういうことでしょうか。それは、与えられたデータや外部データを加工して、新たな特徴量を作っていくことです。例えば、回帰では平均や標準偏差を作ったり、分類では20代だけのデータを集計したりすることです。これをすることにより無駄なデータを省くことができるので予測精度を上げることができます。
##特徴量を選ぶ
これはとても過不足なく特徴量を選んでいくことです。特徴量を選ぶ方法として以下の三点があります。
①単変量解析
②モデルベース選択
③反復選択
###単変量解析
これは目的変数と説明変数が一対一の関係で解析して行くことです。いわば、単回帰分析のことです。例として、分散分析があげられます。
###モデルベース選択
作るモデルにおいて特徴量の重要度を算出する方法です。
###反復選択
特徴量を増やしたり、減らしたりして予測精度を上げていきます。例としてステップワイズ方があげれらます。
#データ加工
予測精度を上げるうえで大切なのは特徴量について考えることを説明していきました。ここでは実際に特徴量を加工するのかを説明してきます。特徴量の選択についてはいろいろ方法があるので後日記事を書いていきます。
##便利な関数
データを加工するうえで便利な関数があります。今回は以下の二点を紹介します。
・split関数
・apply関数
###split関数
これは文字列を分割する関数です。引数には分割したい文字を代入するとその文字を除外して文字列を分割します。
###apply関数
これはデータの各値に数値を当てはめる関数です。データ加工では引数に無名関数(lambda関数)を指定することで簡単に数値を加工することができます。
###コード
実際にどういう風にこれらの関数を使うか説明していきます。
例えば、dateという列に「2019-12-12」という風に日付を表す文字列が入っているとします。これをyearという列に年だけ入れたいとき以下のように書きます。
df["year"] = df["date"].apply(lambda x: x.split("-")[0])