関連資料: http://bit.ly/practical-ds https://github.com/uribo/practical-ds (code) https://github.com/uribo/190710-johokiko (keynote) https://uribo.github.io/dpp-cookbook/
σʔλੳʹ͓͚ΔಛྔΤϯδχΞϦϯά݄ӝੜਅ !V@SJCP
View Slide
ຊͷ༰ಛྔΤϯδχΞϦϯάʹ͍ͭͯͷ֤ଟ༷ͳσʔλͷಛྔΤϯδχΞϦϯάσʔλੳϓϩδΣΫτͷϫʔΫϑϩʔʢಋೖʣಛྔΤϯδχΞϦϯάҎ֎Ͱॏཁͳ͜ͱ
σʔλੳͷϫʔΫϑϩʔɻ(BSSFUUBOE)BEMFZ ΑΓ࡞փ৭ͷྖҬ͕ࠓճѻ͏ൣғσʔλੳͷϫʔΫϑϩʔ
෮తͳ࡞ۀͰϞσϧΛຏ্͖͍͛ͯ͘ϞσϧߏஙͷయܕతͳΈɻ.BYBOE,KFMM ΑΓ࡞
͍͟ɺϞσϦϯάͷ࣮ߦʂͱ͍͔ͳ͍a)データの特徴、データ間の関係を知り、初期モデルに利⽤する「出発点」を⾒つけるための視覚化。b)統計量の集計や⽬的変数と強い相関のある変数を特定、モデルに対する仮説を⽴てる。データを⼗分に理解できたと⾔えるまで、関係を可視化し、さらなる定量分析を繰り返す。c)データを初期モデルに適⽤するための準備。
ಛྔΤϯδχΞϦϯάタスク、モデルに適した特徴量(数値)へと変換する過程データをモデル上でどのように表現するかという課題に対しモデル、アルゴリズムの多くは⼊⼒に仮定を置いたり、制約を設けている
ͳͥಛྔΤϯδχΞϦϯά͕ඞཁ͔・数値データに対しても変換や結合の処理を⾏うことがあるモデルに数値以外のデータ(画像や⽂字列)を当てはめ、アルゴリズムによる計算を実⾏するには数値化が必要データ、モデルの各視点において特徴量エンジニアリングが重要・データの持つ特徴を強調することもできる・「知識」をデータに反映させる→より良い特徴量を⽤意するため
લॲཧͱͷҧ͍(数値的な変換により)データをモデルに適⽤させる、モデルを改善していくため障害や異常となり得る要素を処理減算のプロセスと捉えられる 基本的には加算のプロセス合成、縮約も含まれる⽋損値や異常値への対処前処理 特徴量エンジニアリング
ྫϏʔϧͷࢧग़ֹۚΛߟ͑Δデータ: 年⽉、ビールへの⽀出⾦額、気象要因タスク: ビールへの⽀出⾦額を予測する回帰問題モデル: 線形回帰、サポートベクターマシン、ランダムフォレスト-年はそれほど重要ではない。-夏の気温が⾼い時期(6⽉から9⽉ごろ)が重要そう。-湿度との関係は?-⽇にちは関係するだろうか?- 夏... 150~⽇め??- 平⽇よりも休⽇
d)初期モデルの実⾏。初期モデルに利⽤したデータで、いくつかのモデルも適⽤、⽐較。ハイパーパラメータの探索もここで⾏われる。e)複数回⾏われたパラメータ調整の結果を分析f)モデルの結果を可視化ෳͷϞσϧͰͷੑೳΛൺֱ͢Δ
ϞσϧͷੑೳධՁタスクに応じた評価指標を利⽤する回帰問題分類問題決定係数 (R2, RSQ: coefficient ofdetermination)⼆乗平均平⽅根誤差(RMSE: Root Mean Square Error)平均絶対誤差 (MAE: Mean absolute error)混同⾏列正解率適合率と再現率 ROC曲線とAUC
g)初期モデルを改良する特徴量エンジニアリングh)最終的な候補モデルに対する調整i)テストセットを利⽤した汎化性能の評価j)運⽤ϞσϧΛվળ͢ΔಛྔΛ୳͢
ͲͷΑ͏ͳछྨͷσʔλΛѻ͏͔表 数値カテゴリ論理値名義尺度順序尺度間隔尺度⽐例尺度形式…csv,エクセルRDBデータ型 尺度
ԋश༻σʔλͱ՝ઃܭタスク: 地価価格(標準地の地価)を予測する回帰問題、地価価格に影響する変数を知りたい 特徴: 地理空間、距離、⽴地条件1. 地価公⽰データ (land price: lp)出典: 国⼟交通省 国⼟数値情報地価公⽰データ 第2.4版 L01 平成30年度http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-L01-v2_5.html平成27年度 国勢調査 従業地・通学地による⼈⼝・就業状態等集計
2. ビールへの⽀出データ (beer)ԋश༻σʔλͱ՝ઃܭタスク: ビールへの⽀出を予測する回帰問題 特徴: 時系列、気象要因出典: 国⼟交通省 国⼟数値情報⼟砂災害・雪崩メッシュデータ 第1.1版 A30a5 平成23年度http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-A30a5.html標⾼・傾斜度3次メッシュデータ 第2.2版 G04a 平成21(2009)年度http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-G04-a.html特殊⼟壌地帯データ 第3.0版 平成28年http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-A23-v3_0.html気象データ 気象庁ホームページ 過去の気象データ・ダウンロードhttp://www.data.jma.go.jp/gmd/risk/obsdl/index.php
3. ⼟砂災害・雪崩メッシュデータ (hazard)ԋश༻σʔλͱ՝ઃܭタスク: 災害発⽣の有無を分類する問題 特徴: 空間、クラス不均衡、⽋損、気象要因、地形要因出典: 総務省 家計調査 家計収⽀編 ⼆⼈以上の世帯「1世帯当たり1か⽉間の⽇別⽀出 (表6-16)」気象データ 気象庁ホームページ 過去の気象データ・ダウンロードhttp://www.data.jma.go.jp/gmd/risk/obsdl/index.php
ͲͷΑ͏ͳछྨͷσʔλΛѻ͏͔දը૾จॻɾ࣌ؒཧۭؒɾ࠲ඪ形式 データ型 尺度数値カテゴリ論理値名義尺度順序尺度間隔尺度⽐例尺度ςΩετ
ಛྔΤϯδχΞϦϯάҎ֎Ͱॏཁͳ͜ͱຊͷ༰ಛྔΤϯδχΞϦϯάʹ͍ͭͯͷ֤ଟ༷ͳσʔλͷಛྔΤϯδχΞϦϯάσʔλੳϓϩδΣΫτͷϫʔΫϑϩʔʢಋೖʣ
ΑΓྑ͍ϞσϧΛࢦͯ͠-構築したモデルに含まれるどの変数が重要か-各特徴量が予測にどう影響するか-ブラックボックスなモデルの中⾝を説明する-運⽤するモデルがデータ漏洩、過学習を起こさないために-コスト vs パフォーマンス-最適なモデルでなくても優良なモデルを⽬指すデータ分割、交差検証モデルの解釈ハイパーパラメータ探索
εϥΠυͷݟํࢀߟॻͰͷϖʔδ ίʔυ8BSOJOH %BOHFS*OGPQ TDMFBSOEFDPNQPTJUJPO1$"TUBUTQSDPNQ
ఆྔੳͱ୳ࡧతσʔλੳデータの集計、要約探索的なデータ分析(Exploratory Data Analysis: EDA)データへの理解を深め、分析の出発点を⾒つけよう
σʔλΛΓɺదʹॲཧ͢Δ地価公⽰データの基礎情報σʔλ݅σʔλܕdim(df_lp_kanto) df_landprice.shapedf_landprice.dtypesstr(df_lp_kanto)ྻߦncol(df_lp_kanto)nrow(df_lp_kanto)pandaslen(df_landprice.columns)len(df_landprice)
σʔλΛோΊΔઌ಄ߦඌߦhead(df_lp_kanto) df_landprice.head()df_landprice.tail()tail(df_lp_kanto)σʔλܕͱͷΈ߹Θͤglimpse(df_lp_kanto)pandasdf_landprice.describe()ཁ౷ܭྔ summary(df_lp_kanto)
σʔλܕ͝ͱʹ֬ೝskimr::skim(df_lp_kanto)⽂字列、整数、論理値、数値⽋損、完全、件数、最⼩・最⼤、ユニーク平均値、標準偏差、四分位数カウントヒストグラム
ώετάϥϜggplot2matplotlobdf_lp_kanto %>%ggplot(aes(distance_from_station)) +geom_histogram(bins = 30))データのばらつき、スパイクを検出df_landprice.distance_from_station.hist(bins = 30)
૬ؔߦྻͷώʔτϚοϓvisdatseaborn (sns)変数間の関係を⼀望するsns.heatmap(df,vmax=1, vmin=-1, center=0)df_lp_kanto %>% vis_cor()
ܽଛͷूܭɾՄࢹԽWBSJBCMFO@NJTT QDU@NJTTQBSLT@MBX GPSFTU@MBX QSPYJNJUZ@XJUI@USBOTQPSUBUJPO@GBDJMJUZ VTBHF@EFTDSJQUJPO DPOpHVSBUJPO pSF@BSFB VTF@EJTUSJDU CVJMEJOH@TUSVDUVSF df_lp_kanto %>%select(-starts_with(".")) %>%miss_var_summary() %>%filter(n_miss > 0)naniar
ܽଛͷूܭɾՄࢹԽdf_lp_kanto %>%select(-starts_with(".")) %>%vis_miss()naniargg_miss_fct(x = df_lp_kanto, fct = .prefecture)
ܽଛͷूܭɾՄࢹԽnaniargg_miss_fct(x = df_lp_kanto,fct = .prefecture)
લॲཧʢσʔλͷΫϨϯδϯάʣいくつかの作業はモデルの性能を⼤きく左右するデータをモデルに流し込む前段階⽋損値や外れ値への対処も必要
લॲཧͷඞཁੑͱͦͷൣғ適⽤するモデルのタイプによって異なる変数のスケールの影響を受けない⽊ベースのモデル(決定⽊、ランダムフォレスト)線形回帰、k-means、主成分分析など多くのモデル⼊⼒のスケールに敏感変数間のスケールを揃える必要がある⽋損値や外れ値の影響ライブラリによる⽋損処理への対応の違い
લॲཧͷඞཁੑॏճؼϞσϧ- 変数間の係数の直接的な⽐較が困難- 標準化回帰係数を利⽤する⽅法もあるUFSN FTUJNBUF TUEFSSPS TUBUJTUJD QWBMVF*OUFSDFQU &EJTUBODF@GSPN@TUBUJPO &BDSFBHF FOJHIU@QPQVMBUJPO F
લॲཧͷඞཁੑओੳ- 主成分分析はスケール不変性を持たない- 異なる単位の変数を⼊⼒に与えると⼤きな値の⼊った変数の影響が強くなるsklearn.decomposition PCAprcomp(~ distance_from_station + acreage + night_population,data = df_lp_kanto,center = FALSE,scale. = FALSE)
લॲཧͷඞཁੑओੳStandard deviations (1, .., p=3):[1] 326371.254 7270.361 2279.386Rotation (n x k) = (3 x 3):PC1 PC2 PC3distance_from_station 0.003184224 0.027579010 -0.99961456acreage 0.001558732 0.999618272 0.02758408night_population 0.999993716 -0.001645965 0.00314002summary(pca_res)Importance of components:PC1 PC2 PC3Standard deviation 326371.2544 7270.3613 2279.38581Proportion of Variance 0.9995 0.0005 0.00005Cumulative Proportion 0.9995 1.0000 1.00000
લॲཧͷඞཁੑL//スケールの影響を受けて結果が変わる
εέʔϦϯάॲཧ- データが取り得る値の規模 (scale)をデータ間で揃える処理- 分布には影響しない- 異なる単位をもつデータを扱う場合に役⽴つ -->連続変数からなる多くのデータに該当する- 体重 (kg)と⾝⻑ (cm)... 同じ値120であってもそれぞれ意味合いが異なるため⽐較できない
.JO.BYεέʔϦϯά値の範囲を0から1に収まるように調整- e.g. 画像処理におけるRGBの強さ(0~255)外れ値の影響を受けやすい最⼩値、最⼤値に範囲がある場合に有効˜x =x min(x)max(x) min(x)AAACk3ichVG7SgNBFD2u7/iKiiDYLAZFC8NEBUURRC1sBF9RwUjY3Ux0cF/sTkJ0yQ9YCxZWCiLiH9hq4Q9Y+AliqWBj4c1mQVTUu+zcM2fuuXNmRndN4UvGHmuU2rr6hsam5lhLa1t7R7yza8N3Cp7B04ZjOt6WrvncFDZPSyFNvuV6XLN0k2/q+/OV9c0i93zh2OvywOU7lrZri7wwNElUNp7MSGHmeFAqqzNqJu9pRlBSR1RL2EOl4XJgaSXKn0Q2nmBJFob6E6QikEAUy078Ehnk4MBAARY4bEjCJjT49G0jBQaXuB0ExHmERLjOUUaMtAWq4lShEbtP4y7NtiPWpnmlpx+qDdrFpN8jpYoB9sCu2Au7Z9fsib3/2isIe1S8HFDWq1ruZjuOetfe/lVZlCX2PlV/epbIYzL0Ksi7GzKVUxhVffHw5GVtanUgGGTn7Jn8n7FHdksnsIuvxsUKXz1FjB4g9f26f4KN0WRqLDm6Mp6YnYueogl96McQ3fcEZrGIZaRp32Pc4BZ3So8yrcwpC9VSpSbSdONLKEsf9E6aNg==sklearn.preprocessing MinMaxScaler
த৺Խ˜x = x mean(x)AAACfHichVHLLgRBFD3T3uM1WJDYdAwyIiY1CCKRCBtLr0FiJpPuVqjoV7prJsPED/gBCytERPAVNn7AwieIJYmNiDs9nQgT3EpVnTp1z61TVbprCl8y9hhRamrr6hsam6LNLa1t7bGOzjXfyXsGTxuO6XgbuuZzU9g8LYU0+Ybrcc3STb6u782X99cL3POFY6/KfZdnLW3HFtvC0CRRuVh3Rgpzi5eKh+qMWlRHVItrdqI4lIvFWZIFoVaDVAjiCGPRiV0igy04MJCHBQ4bkrAJDT61TaTA4BKXRYk4j5AI9jkOESVtnrI4ZWjE7tG4Q6vNkLVpXa7pB2qDTjGpe6RUMcAe2BV7Yffsmj2x919rlYIaZS/7NOsVLXdz7Uc9K2//qiyaJXa/VH96ltjGVOBVkHc3YMq3MCr6wsHxy8r08kBpkJ2xZ/J/yh7ZHd3ALrwaF0t8+QRR+oDUz+euBmujydRYcnRpPD47F35FI3rRhwS99yRmsYBFpINzz3GD28iH0q8MKyOVVCUSarrwLZSJT3d2kjs=平均を0にするscale(), recipes::step_center()sklearn.preprocessing StandardScaler
εέʔϦϯά特徴量を分散で割ることにより、分散1を得るs2 =xvar(x)AAACe3ichVHLSsNAFD2Nr1ofrQoiuCkWRUXKtCqKIBTduNTWqtBqSeK0hqZJSNKixv6AP+DClQURqX/hxh9w0U8QlxXcKHibBkRFvcPMnDlzz50zM5KhKpbNWMMndHR2dff4ewN9/QODwdDQ8I6ll02Zp2Vd1c09SbS4qmg8bSu2yvcMk4slSeW7UnG9tb9b4aal6Nq2fWLw/ZJY0JS8Ios2UbnQqHUQD6+Gs3lTlJ3jqlMRzenjmWouFGFR5kb4J4h5IAIvNvXQDbI4hA4ZZZTAocEmrEKERS2DGBgM4vbhEGcSUtx9jioCpC1TFqcMkdgijQVaZTxWo3WrpuWqZTpFpW6SMoxJ9shuWZM9sDp7Ym+/1nLcGi0vJzRLbS03csHzsdTrv6oSzTaOPlV/eraRx7LrVSHvhsu0biG39ZXTi2ZqJTnpTLEaeyb/V6zB7ukGWuVFvt7iyUsE6ANi35/7J9iJR2Pz0fjWQiSx5n2FH+OYwDS99xIS2MAm0nTuGWqo4873LkSEWWGunSr4PM0IvoSw+AHVc5J5scale(), recipes::step_scale()sklearn.preprocessing StandardScaler
特徴量の値を平均0、分散1に変換→元のデータが正規分布に従うことを仮定ඪ४Խ中⼼化 + スケーリング˜x =x mean(x)sqrt(var(x))AAACkHichVHLShxBFD22eeiYZEbdCNk0GQwjIUONERRBfG1CVr5GBUeG6p4aLeyX1TXDaDM/4M6VC1cRRMQPyDbixh9w4SeISwPZZJHbPQ0hkSS36apzT91z61SVFTgy1IzddhndT54+e97Tm+l78fJVNtc/sBr6DWWLsu07vlq3eCgc6YmyltoR64ES3LUcsWbtzMfra02hQul7K3ovEJsu3/JkXdpcE1XNvato6dRE1GqbU2alrrgdtd6bruBeoTXSjsJdpQtNrigZaVdzeVZkSZiPQSkFeaSx4OfOUEENPmw04ELAgybsgCOkbwMlMATEbSIiThGSybpAGxnSNqhKUAUndofGLco2UtajPO4ZJmqbdnHoV6Q0Mcxu2Dl7YNfsgt2xH3/tFSU9Yi97NFsdrQiq2YOh5e//Vbk0a2z/Uv3Ts0YdE4lXSd6DhIlPYXf0zf2jh+XJpeHoLTth9+T/M7tlV3QCr/nNPl0US8fI0AOU/rzux2B1tFj6UBxdHMvPzKVP0YPXeIMC3fc4ZvARCyjTvof4gq+4NAaMCWPamO2UGl2pZhC/hfHpJyJamfk=scale()sklearn.preprocessing StandardScaler
特徴量選択の「フィルタ法」に相当する作業σʔλড়Խデータから不要な列を除去する情報を含まない… 分散0相関係数の⾼い変数の⽚⽅を落とす共通の項、組み合わせを持つ変数次元削減も有効な⽅法
σʔλͷऔΓѻ͍数値にも⾊々数値データであっても特徴量エンジニアリングが必要数値データの特徴量エンジニアリングは、各種の特徴量エンジニアリングの基礎となる
σʔλ๊͕͑Δ- スケールが⼤きく異なる- 歪んだ分布をもつ- ⼤⼩の外れ値を含む- 変数間で、線形では表現できないような複雑な関係を持っている- 冗⻑な情報課題設定、適⽤するモデルの種類によって顕在化適切なモデルを選択することで問題のいくつかを軽減できる
σʔλ๊͕͑Δ外れ値の影響を受けやすい順位化されたデータを利⽤する⽊ベースのモデルを⽤いることで外れ値の影響を軽減強い相関がある変数を組み込むと、係数が不安定部分最⼩⼆乗法を⽤いることで説明変数の相関を無相関化Lۙ๏αϙʔτϕΫλʔϚγϯॏճؼϞσϧ→→
ରม変換後の分布を変化させる偏りのあるデータで有効-規模が⼤きい時はその範囲を縮⼩-⼩さい時に拡⼤裾の⻑いデータを⼭に近づけるp.16numpy.loglog(), step_log()
#PY$PYม正規分布に従わないデータを正規分布に近づける⼿法ポアソン分布のデータに対して有効p.24scipy.stats.boxcoxstep_BoxCox()˜x =(x 1,6= 0ln(x) = 0AAAC3nichVHPaxQxFH4zWm1H7W71UvAyuLRU0OVNLShCoejFY39tW2jqmpnNbkOzmTGTXXYd5upBEI8KnhRExD/DS/8BDz15Fo8VvHjw7eygaFFfSPLly/teviRhomRqEY8c99TpiTNnJ6e8c+cvTFeqMxe30rhnItGIYhWbnZCnQkktGlZaJXYSI3g3VGI7PLg72t/uC5PKWG/aYSL2uryjZVtG3BLVrA6ZlaolskG+zJRoW5Z5LBQdqTNuDB/mmVK5x9qGR9ngPlNUuMWvB3lWwmt+Pl9Cn2nx0EfGPKb0wuDqT37ZR48J3SoreszIzr6tN6s1rGMR/kkQlKAGZazG1bfAoAUxRNCDLgjQYAkr4JBS24UAEBLi9iAjzhCSxb6AHDzS9ihLUAYn9oDGDq12S1bTelQzLdQRnaKoG1L6MIcf8R0e4yG+x8/4/a+1sqLGyMuQ5nCsFUmz8mR249t/VV2aLez/Uv3Ts4U23Cq8SvKeFMzoFtFY33/0/Hjj9vpcNo+v8Qv5f4VH+IFuoPtfozdrYv0lePQBwZ/PfRJsLdaDG/XFtaXayp3yKybhMlyBBXrvm7AC92AVGnTuJ2fCmXYq7gP3sfvUfTZOdZ1Scwl+C/fFDywxtko=
ਖ਼نੑͷݕఆシャピロ-ウィルクの正規性検定や正規確率グラフを作成して確認正規分布に近づいているがP < 0.05 (シャピロ-ウィルクの正規性検定)
ϩδοτมstep_logit()logit(⇡) = log(⇡1 ⇡)AAACiXichVHLSsNAFD3GV62PVt0IbopVqQvLRAVFEIrduPRVFayUJE7rYJqEZFqowR/wB1y4UhARN25168YfcOEniEsFNy68SQOiot5h5t575p47Z2Z0xxSeZOyxRWlta+/ojHXFu3t6+xLJ/oENz665Bi8Ytmm7W7rmcVNYvCCFNPmW43Ktqpt8U9/PB/ubde56wrbWZcPhO1WtYomyMDRJUCk5atoVITNFR0ykFlJFyjLFsqsZPiGHvjoZuIlSMs2yLLTUz0CNgjQiW7aTFyhiFzYM1FAFhwVJsQkNHo1tqGBwCNuBT5hLkQj3OQ4RJ26NqjhVaITu01qhbDtCLcqDnl7INugUk6ZLzBTG2AO7ZC/snl2xJ/b+ay8/7BFoaZDXm1zulBJHQ2tv/7Kq5CX2Pll/apYoYy7UKki7EyLBLYwmv35w/LI2vzrmj7Mz9kz6T9kju6MbWPVX43yFr54gTh+gfn/un8HGVFadzk6tzKRzi9FXxDCMEWTovWeRwxKWUaBzj3CNG9wq3YqqzCnzzVKlJeIM4osp+Q/ra5bV⽐率や確率のデータ(0~1) を1 1AAACd3ichVHLSgMxFD0d3/XRqhvBhcXS4qYlo4LiSnTjsj5aBS1lZkw1dDozzKTFWvwBf8CFIChIFT/DjT/gwk8QlxVEcOHtdEC0qDckOTm55+Yk0R1TeJKxp5DS1d3T29c/EB4cGh6JREfHcp5dcQ2eNWzTdnd0zeOmsHhWCmnyHcflWlk3+bZeWm3tb1e56wnb2pI1h+fL2oElisLQJFGF6FhqT1hFWYulUrEAFaJxlmZ+xDqBGoA4gsjY0Qb2sA8bBioog8OCJGxCg0dtFyoYHOLyqBPnEhL+PscJwqStUBanDI3YEo0HtNoNWIvWrZqerzboFJO6S8oYEuyR3bIme2B37Jl9/Fqr7tdoeanRrLe13ClETic23/5VlWmWOPxS/elZoohF36sg747PtG5htPXV47Pm5tJGop5kV+yF/F+yJ3ZPN7Cqr8b1Ot84R5g+QP353J0gN5tW59Kz6/Px5ZXgK/oxiWnM0HsvYBlryCBL5x7hAg3chN6VKSWpzLRTlVCgGce3UNRPJFeQUg==に正規分布に近づく→
ඇઢܗಛྔ直線回帰?が⼀般的ଟ߲ࣜճؼεϓϥΠϯճؼ⾮線形の関係を捉えるため(ただし解釈が困難)
ଟ߲ࣜಛྔ3次の多項式 f(x) =3Xi=1ifi(x) = 1x + 2x2 + 3x3AAACt3ichVFNS9xAGH5M60e3Vrf1UvASXCwWYZnsCv2ABakXj7q6KrgakjhZB/NlMrvsNuQP+Ad68KQgIv6B3nvpH/DgpddaerTQSw99k02RVqpvyMz7PPM+7zwzYwaOiCRjlwPKg4eDQ8MjjwqPR5+MjRefPluL/HZo8YblO364YRoRd4THG1JIh28EITdc0+Hr5t5Cur7e4WEkfG9V9gK+5RotT9jCMiRRerFuz3RfqjW1GbVdPRY1LdmOq0nT5NIgmNjpkFf0OS3pqrN/QCXpblduYJVgVdWLJVZmWai3Ey1PSshjyS+eookd+LDQhgsOD5JyBwYi+jahgSEgbgsxcSFlIlvnSFAgbZuqOFUYxO7R2CK0mbMe4bRnlKkt2sWhPySliml2wc7YNfvMztk39uu/veKsR+qlR7PZ1/JAHz94vvLzXpVLs8TujepOzxI2XmdeBXkPMiY9hdXXd95/uF55W5+OX7Bj9p38H7FL9olO4HV+WCfLvH6IAj2A9u91307WKmWtWq4sz5Xm3+VPMYJJTGGG7vsV5rGIJTRo34/4gq+4Ut4oumIru/1SZSDXTOCvUPZ/A1VgqBo=多項式回帰により得られる説明変数xの2乗項や3乗項を特徴量として加える⾮線形回帰を⽤いずとも、サポートベクターマシン(カーネル関数)で対応できることもある
ଟ߲ࣜಛྔ次数を増やすことで曲線への当てはまりは良くなるが過剰学習になりやすいstep_poly()
εϓϥΠϯճؼノット (knots) を利⽤した固定領域の補間係数の解釈はさらに困難多項式曲線の次数とノット数は視覚化あるいは交差検証により決定step_ns()
Ϗϯ٧Ί離散化- 結果の解釈が簡単になる- スケールによる影響を緩和する- データの変動を抑える連続値を離散化することで期待されることp.11
ަޓ࡞༻ಛྔ複数の特徴量を組み合わせる特徴量間の積によって求まるp.35x1x2 … 数値の場合は掛け算⼆値特徴量の場合は論理積データのすべての変数を対象に交互作⽤特徴量を計算すると計算コストが⾼くなるので特徴量選択などにより変数を減らすなどの⼯夫が必要
ΧςΰϦͷऔΓѻ͍- ⽊ベース以外のモデルでは、カテゴリを数値化する必要がある- 単純な⽅法ものはカテゴリに含まれる値を独⽴した変数として扱うこと(ダミー変数化)- カテゴリ内の順序を考慮するには別な⽅法を検討- サイズの⼤きなカテゴリには対策が必要
μϛʔมԽカテゴリに含まれる⽔準の値を特徴量として扱う-ダミーコーディング-One-Hotエンコーディング-Effectコーディング基準となるカテゴリ(参照カテゴリ)の扱いが異なる
μϛʔม各ダミー変数で該当する場合は1, 該当しないは0参照カテゴリはすべて0の⾏で表されるrecipes::step_dummy()pandas.get_dummiesp.81
μϛʔม回帰モデルの係数では参照カテゴリの平均値は切⽚各係数は参照カテゴリの平均との差を⽰すUFSN FTUJNBUF TUEFSSPS TUBUJTUJD QWBMVF*OUFSDFQU &VSCBO@QMBOOJOH@BSFB@ௐ۠ &VSCBO@QMBOOJOH@BSFB@ܭ֎ &VSCBO@QMBOOJOH@BSFB@ඇઢҾ &
0OF)PUΤϯίʔσΟϯά参照カテゴリを含めてダミー変数化該当すれば1(Hot)、それ以外は0 (Cool)recipes::step_dummy()pandas.get_dummiesp.80
&⒎FDUΤϯίʔσΟϯά参照カテゴリは-1で表現される(⾏単位で-1になる)p.83
&⒎FDUΤϯίʔσΟϯά切⽚はターゲット変数の全体平均回帰係数はカテゴリと全体平均との差を⽰すダミー変数を主効果として捉える→カテゴリによる差を⽐較しやすいUFSN FTUJNBUF TUEFSSPS TUBUJTUJD QWBMVF*OUFSDFQU VSCBO@QMBOOJOH@BSFB@ௐ۠ VSCBO@QMBOOJOH@BSFB@ܭ֎ VSCBO@QMBOOJOH@BSFB@ඇઢҾ
μϛʔมԽͷൺֱ参照カテゴリの扱い 特徴ダミーコーディング ダミー変数の要素がすべて0k-1のダミー変数回帰モデルの係数は参照カテゴリ平均との平均の差One-Hotエンコーディング ダミー変数化 kのダミー変数Effectコーディング -1,-1の要素回帰モデルにおける係数を、直接ダミー変数の効果として捉えられる
ΑΓଟ͘ͷϥϕϧʹରԠダミー変数化の問題- 膨⼤なサイズのカテゴリを扱うとスパースデータになる- リサンプリング時に分散0のデータを選んでしまう恐れ- 新しいカテゴリへの対応ができない- 計算コストが⾼い対策- (特徴量ハッシング)- ビンカウンティング、ターゲットエンコーディング
ΧϯτΤϯίʔσΟϯάカテゴリ変数に含まれる⽔準の頻度を特徴量に利⽤出現頻度による偏りが発⽣同順位の⽔準に対して同じ値が与えられる
λʔήοτΤϯίʔσΟϯάカテゴリ変数と⽬的変数を利⽤カテゴリの値を⽬的変数の平均値に置き換えるデータ漏洩しやすい
-FBWFPOFPVUΤϯίʔσΟϯά各⾏の値は、グループ内での⾃信を除いた値で計算されるターゲットエンコーディングよりは安全だが、データ漏洩に注意(同じ値がある)
ςΩετσʔλͷऔΓѻ͍-カテゴリ… 有限の集団-テキスト… 基本的にカテゴリより⻑く、ユニークな値-⽂字の⻑さや区切り位置の有無、そして⾔語を意識-⾃然⾔語処理での前処理タスクを利⽤する
ςΩετͷલॲཧ
τʔΫϯԽ⽂書を意味のある⻑さに区切る単語ベース ⼀⽂ベース ⼀⼩節ベース⽂書中の単語に境界のない⽇本語では分かち書きを⾏う必要もあるtextrecipes::step_tokenize()tokenizers::tokenize_words()p.52
#BHPG8PSET⽂書を単語の出現回数のベクトルで表現。 p.41低層別荘が建ち並ぶ環境の良い別荘地域RMeCab::docNgram()tokenizers::tokenize_ngrams()
#BHPG8PSET単語の並び、階層の概念を表現しない→テキストの意味を正しく理解したい場合に役⽴たない→Bag-of-n-Grams (バイグラム、ユニグラム)p.41低層別荘が建ち並ぶ環境の良い別荘地域n=2n=3 低層別荘が, 別荘が建ち, が建ち並ぶ…低層別荘, 別荘が, が建ち…情報量は増えるが計算コストも増える
#BHPG8PSETp.41スパースデータ(疎⾏列)になりやすいデータ分割時に分散0の変数とならないように注意
୯ޠͷআڈετοϓϫʔυ単語数が多いことで特徴量が増えるあらかじめ重要でない単語を除外するe.g. 句読点、「です」「ます」「はがにを」etc.何をストップワードとするかはデータ次第p.48textrecipes::step_stopwords()
୯ޠͷআڈग़ݱසデータセットにおける単語の出現頻度でフィルタリング出現頻度の少ない(稀な)単語を取り除くtextrecipes::step_tokenfilter()p.49
5'*%'TF (索引語頻度 Term Frequency)とIDF (逆⽂書頻度 Inverse Document Frequency)の積⽂章量の異なりによる単語の個数、出現頻度を是正するtf idf = tf(w, d) ⇥ idf(w)AAACg3ichVHLLgRBFD3ae7wGG4lEOiZkBJOaISESibCx9BokyKS7p3pU9CvdNSNM7Kz8gIUViQiW/IGNH7DwCWJJYmPhTk8nguBWqurUqXtunarSPUsEkrHHGqW2rr6hsak51tLa1t4R7+xaDdyib/Cs4Vquv65rAbeEw7NSSIuvez7XbN3ia/rOXGV/rcT9QLjOitzz+JatFRxhCkOTROXifdIcFXlTnValmdwdyQ+pm1LYPFCJTO4O5eIJlmJhqD9BOgIJRLHgxi+wiTxcGCjCBocDSdiChoDaBtJg8IjbQpk4n5AI9zkOECNtkbI4ZWjE7tBYoNVGxDq0rtQMQrVBp1jUfVKqGGAP7JK9sHt2zZ7Y+6+1ymGNipc9mvWqlnu5jqOe5bd/VTbNEtufqj89S5iYDL0K8u6FTOUWRlVf2j9+WZ5aGigPsjP2TP5P2SO7oxs4pVfjfJEvnSBGH5D+/tw/wWomlR5LZRbHEzOz0Vc0oRf9SNJ7T2AG81hAls49xBVucKvUK8NKRhmvpio1kaYbX0KZ/gB5OJN6textrecipes::step_tfidf()⽂書d内の単語数⽂書d内の単語wの出現回数単語wが含まれる⽂書数
ޠװॲཧ εςϛϯά意味の等しい、異なる表記の単語を統⼀した表記にする p.52変化形の修正正規化の⼀種
ɾ࣌ؒσʔλͷऔΓѻ͍- 時系列データでは⽇付・時間の要素⾃体が特徴量- 平⽇・休⽇の区分、イベントからの発⽣時刻など⼈間活動が関与する要素もある- データの背景の要因に対して、より考察が求められる- 変動要因(トレンド、ノイズ、季節性等)を考慮- 周期、季節性のある情報は三⾓関数で変換可能
ɾ࣌ؒσʔλͷಛ- ⽇付・時間データの特徴量… ⽇付・時間⾃⾝を特徴量- ラグ特徴量... 特定の時間からの経過時間- 窓枠特徴量... 固定された期間に含まれる値を要約⽇付・時間データに対する特徴量エンジニアリングの基本⽅針
ɾ࣌ؒཁૉͷղ2019年7⽉10⽇ (⽔曜⽇)2019 7 10数値化、カテゴリ化が可能令和元年recipes::step_date()7⽉ 10⽇2019⽉7⽉3⽔曜⽇
ॕఆカレンダーの情報が必要2019年4~5⽉の連休のような特殊な年に注意recipes::step_holiday()曜⽇の判定(週末にフラグ)+ 祝⽇
ϥάಛྔ過去の値を現時点の値として利⽤する recipes::step_lag()e.g. 前年同⽉の値、先週の状況周期性のあるデータであれば周期に合わせたラグを⽤意するのが妥当dplyr::lag()
ΟϯυΛ༻͍ͨฏԽ現在時刻の値を含めて、過去n点における平均値・中央値等を使⽤するrecipes::step_window()ウィンドウ(n… 窓)のサイズ⼤きいとより滑らかにノイズを軽減するのに適する
قઅrecipes::step_hyperbolic()季節成分を三⾓関数に当てはめる→周期性を表現可能
ཧۭؒσʔλͷऔΓѻ͍- 地球上の地物(実在しないものを含む)- 地理座標と地物の属性を相互に変換可能- 地物間の関係(隣接、距離)を元にした特徴量の⽣成が可能- 地理空間データの特性、特に空間的影響を考慮した 分析が求められる
ۭؒσʔλͷಛϕΫλͱϥελ現実世界に存在する地物をデータ上に⽰したもの- 特に点、線、⾯を扱う- 地物は座標と属性情報をもち、地図上で表現できるϕΫλσʔλϥελσʔλ⼀定領域を格⼦状のグリッドで囲んだデータ- ラスタを構成する各グリッドに値が記録される- ラスタは時系列で重ねることができる
ۭؒσʔλͷಛ࠲ඪࢀরܥ地球上の地物の位置を⽰すために必要⼆次元の座標を地球上に投影するため、位置関係と紐づけるXY座標または、緯度経度で表現地図投影法により定義された値を座標とするཧ࠲ඪܥӨ࠲ඪܥ
ۭؒσʔλͷಛ࠲ඪࢀরܥSRID: 4326(WGS84)世界測地系SRID: 6668(JDG2011)⽇本測地系2011SRID: 6669-6687(JDG2011)平⾯直⾓座標系ཧ࠲ඪܥ Ө࠲ඪܥ距離や⾯積の計算などの地理空間的な処理を適⽤する際は地理座標系から投影座標系への変換を⾏う
ۭؒσʔλͷಛۭؒతӨڹۭؒతࣗݾ૬ؔ互いに近い距離にあるものはより強く影響し合う空間データの空間的な分散を仮定ۭؒతҟ࣭ੑ回帰モデルにおける誤差項の仮定 (分散均⼀)と対⽴地域性を考慮した解析、分析の設計が必要
ॅॴͷղɺؙΊࠐΈ東京都千代⽥区⼤⼿町1-1東京都 千代⽥区⼤⼿町1-1東京都 千代⽥区 ⼤⼿町1-1東京都 千代⽥区 ⼤⼿町 1-1東京都千代⽥区⼤⼿町1-1東京都千代⽥区⼤⼿町1-1出典: 国⼟交通省 国⼟数値情報⾏政区域データ 第2.3版 N03 平成30年http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v2_3.html求めるスケールは?
δΦίʔσΟϯάɺٯδΦίʔσΟϯάδΦίʔσΟϯά各種の情報から座標を付与する、特定する作業特定の座標から位置情報を含む情報を判別させるٯδΦίʔσΟϯάe.g. 住所、郵便番号から座標e.g. 緯度経度をメッシュコードに、座標が含まれる市区町村を判定
ϝογϡίʔυϝογϡԽ(標準地域コード、標準地域メッシュ)国勢調査などの、国内全域を調査するために⽤いられる区画区分Ҭ۠ը ඪ४Ҭϝογϡ ن ϝογϡίʔυͷྫୈ࣍Ҭ۠ը LN ୈ࣍Ҭ۠ը ഒҬϝογϡ LN ഒҬϝογϡ LN ഒҬϝογϡ LN ୈ࣍Ҭ۠ը ج४Ҭϝογϡ LN Ҭϝογϡ N Ҭϝογϡ N Ҭϝογϡ N jpmesh::coords_to_mesh()jismesh.utils::to_meshcode()
ྡؔ地物間の隣接関係の表現形式空間隣接⾏列集中、不均⼀を数値化… ジニ係数sf::st_relate()
ྡؔsf::st_intersects()sf::st_disjoint()sf::st_touches()sf::st_crosses()…関⼼のある地物間の関係を論理値として扱う
ڑͷܭࢉ座標参照系に注意対象とする地物、地物間の距離距離に応じてカテゴリ化することも検討e.g. 近距離、中距離、遠距離recipes::step_geodist()sf::st_distance()