<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kaggle on M1KE BL0G</title><link>https://www.m1ke.org/tags/kaggle/</link><description>Recent content in Kaggle on M1KE BL0G</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><copyright>mike</copyright><lastBuildDate>Sun, 20 Sep 2026 08:00:00 +0900</lastBuildDate><atom:link href="https://www.m1ke.org/tags/kaggle/index.xml" rel="self" type="application/rss+xml"/><item><title>特徴量エンジニアリングの手法</title><link>https://www.m1ke.org/p/%E7%89%B9%E5%BE%B4%E9%87%8F%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AE%E6%89%8B%E6%B3%95/</link><pubDate>Sun, 20 Sep 2026 08:00:00 +0900</pubDate><guid>https://www.m1ke.org/p/%E7%89%B9%E5%BE%B4%E9%87%8F%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AE%E6%89%8B%E6%B3%95/</guid><description>&lt;img src="https://www.m1ke.org/p/%E7%89%B9%E5%BE%B4%E9%87%8F%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AE%E6%89%8B%E6%B3%95/house.jpg" alt="Featured image of post 特徴量エンジニアリングの手法" /&gt;&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Kaggleに良い記事があったのでAIでまとめてもらった&lt;/li&gt;
&lt;li&gt;Kaggle Learnの&lt;code&gt;Feature Engineering&lt;/code&gt;コース&lt;/li&gt;
&lt;li&gt;内容は基礎的だが改めてどう特徴量を作るのがいいのかのヒントになった&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="データセット-ames-housing"&gt;データセット: Ames Housing&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;The Ames Housing Dataset is a well-known dataset in the field of machine learning and data analysis. It contains various features and attributes of residential homes in Ames, Iowa, USA. The dataset is often used for regression tasks, particularly for predicting housing prices.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Ames Housingは、アイオワ州エイムズ市の住宅販売データ&lt;/li&gt;
&lt;li&gt;2011年にDean De Cockが、統計教育で長らく使われてきたBoston Housingデータセットの代替として公開したデータセットで、Kaggleの&lt;code&gt;House Prices: Advanced Regression Techniques&lt;/code&gt;コンペティションの題材にもなっている&lt;/li&gt;
&lt;li&gt;78個の説明変数（敷地面積・築年数・部屋数・品質評価・立地など、住宅のあらゆる側面を数値・カテゴリで記述したもの）と、予測対象である&lt;code&gt;SalePrice&lt;/code&gt;（実際の販売価格）から構成される&lt;/li&gt;
&lt;li&gt;記事中に登場する主な列は以下
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GrLivArea&lt;/code&gt;: 地上の居住面積&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LotArea&lt;/code&gt;: 敷地面積&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TotalBsmtSF&lt;/code&gt;／&lt;code&gt;FirstFlrSF&lt;/code&gt;／&lt;code&gt;SecondFlrSF&lt;/code&gt;: 地下室・1階・2階の床面積&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TotRmsAbvGrd&lt;/code&gt;: 地上の部屋数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BldgType&lt;/code&gt;: 住居の構造種別（一戸建て・二世帯・タウンハウスなど）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Neighborhood&lt;/code&gt;: 近隣地区&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MSSubClass&lt;/code&gt;: 住居の種類を表すコード&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SaleType&lt;/code&gt;: 販売形態&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WoodDeckSF&lt;/code&gt;／&lt;code&gt;OpenPorchSF&lt;/code&gt;／&lt;code&gt;EnclosedPorch&lt;/code&gt;／&lt;code&gt;ScreenPorch&lt;/code&gt;: ウッドデッキ・各種ポーチの面積&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SalePrice&lt;/code&gt;: 実際の販売価格（予測対象）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://www.m1ke.org/p/%E7%89%B9%E5%BE%B4%E9%87%8F%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AE%E6%89%8B%E6%B3%95/price.png"
width="1026"
height="824"
srcset="https://www.m1ke.org/p/%E7%89%B9%E5%BE%B4%E9%87%8F%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AE%E6%89%8B%E6%B3%95/price_hu_5b3255aafcaa08dc.png 480w, https://www.m1ke.org/p/%E7%89%B9%E5%BE%B4%E9%87%8F%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AE%E6%89%8B%E6%B3%95/price_hu_afbd494676fe5df2.png 1024w"
loading="lazy"
alt="SalePriceの分布"
class="gallery-image"
data-flex-grow="124"
data-flex-basis="298px"
&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;describe()&lt;/code&gt;すると、以下だった&lt;/li&gt;
&lt;li&gt;平均は18万ドルほど&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;count 1460.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mean 180921.195890
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;std 79442.502883
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;min 34900.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;25% 129975.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;50% 163000.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;75% 214000.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;max 755000.000000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="前処理"&gt;前処理&lt;/h2&gt;
&lt;p&gt;ここでは実務上必要になる前処理を補足しておく。&lt;/p&gt;
&lt;h3 id="数値だがカテゴリとして扱うべき列"&gt;数値だがカテゴリとして扱うべき列&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;数値として格納されているが、大小関係に意味がない列は、そのままモデルに渡すと誤った大小関係を学習してしまう&lt;/li&gt;
&lt;li&gt;例: &lt;code&gt;MSSubClass&lt;/code&gt;（住居種類コード）、&lt;code&gt;YrSold&lt;/code&gt;（売却年）、&lt;code&gt;MoSold&lt;/code&gt;（売却月）は、いずれも数値だが「値が大きい方が良い」という意味を持たないため、文字列（カテゴリ）に変換してから扱う&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="one-hot-encoding"&gt;One-Hot Encoding&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;カテゴリ変数を、カテゴリごとに0/1の列に展開する基本的なエンコーディング手法&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pd.get_dummies()&lt;/code&gt;で実行できる&lt;/li&gt;
&lt;li&gt;前述のターゲットエンコーディングと異なりリークの心配はないが、カテゴリ数が多い変数では列数が急増する&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="外れ値の除去"&gt;外れ値の除去&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;PCAによる外れ値の「検出」（後述）と異なり、実際に学習データから取り除くかどうかの判断&lt;/li&gt;
&lt;li&gt;例: 極端に価格が高い物件、極端に古い物件、極端に敷地が広い物件などは、モデルの学習を歪める要因になりうるため、除去を検討する&lt;/li&gt;
&lt;li&gt;ただし、何をもって「極端」とするかは恣意性が伴うため、除去の基準を明示し、検証データでの効果も確認するのが望ましい&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="目的変数の対数変換"&gt;目的変数の対数変換&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SalePrice&lt;/code&gt;のような金額は、少数の高額物件が平均を押し上げる、右に裾を引く分布になりやすい&lt;/li&gt;
&lt;li&gt;対数変換を施すことで、分布を正規分布に近づけられ、多くの回帰モデルが前提とする「誤差が正規分布に従う」という条件に適合しやすくなる&lt;/li&gt;
&lt;/ul&gt;
$$
y' = \log(1 + y)
$$&lt;ul&gt;
&lt;li&gt;モデルの予測値は対数スケールになるため、実際の価格に戻すには指数変換（$y = e^{y'} - 1$）を忘れずに行う必要がある&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="相互情報量mutual-information"&gt;相互情報量（Mutual Information）&lt;/h2&gt;
&lt;h3 id="相互情報量とは"&gt;相互情報量とは&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;2つの変数がどれだけ情報を共有しているかを測る指標&lt;/li&gt;
&lt;li&gt;以下の式で定義される&lt;/li&gt;
&lt;/ul&gt;
$$
I(X;Y) = \sum_{x,y} p(x,y) \log \frac{p(x,y)}{p(x)p(y)}
$$&lt;ul&gt;
&lt;li&gt;相関係数と異なり、線形関係に限らずどんな種類の関係も検出できる&lt;/li&gt;
&lt;li&gt;0以上の値を取り、0なら独立、値が大きいほど強い依存関係を示す&lt;/li&gt;
&lt;li&gt;$p(x,y) = p(x)p(y)$なら独立した事象なので、xとyに関係性はない&lt;/li&gt;
&lt;li&gt;すると、$log(1)=0$となり、その項目はMIが0になる&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="特徴量選定への応用"&gt;特徴量選定への応用&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Amesデータセットには78個の特徴量があり、すべてを一度に検討するのは非現実的&lt;/li&gt;
&lt;li&gt;各特徴量とターゲット（&lt;code&gt;SalePrice&lt;/code&gt;）との相互情報量スコアを計算し、上位・下位を確認することで、開発に値する特徴量の当たりをつけられる&lt;/li&gt;
&lt;li&gt;上位に来る特徴量には、立地・広さ・品質といったテーマが繰り返し現れ、住宅の価値を左右する直感とも一致していた&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="交互作用の発見"&gt;交互作用の発見&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;単体の相互情報量スコアが低い特徴量でも、他の特徴量との組み合わせで意味を持つことがある&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BldgType&lt;/code&gt;（住居の構造種別）はそれ単体ではMIスコアが低かったが、&lt;code&gt;GrLivArea&lt;/code&gt;（地上の居住面積）との関係を見ると、カテゴリごとに傾向線の傾きが大きく異なっていた&lt;/li&gt;
&lt;li&gt;このように、カテゴリ別に見た時の傾向線の違いが、交互作用が存在することのサイン&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="特徴量の作成"&gt;特徴量の作成&lt;/h2&gt;
&lt;p&gt;MIスコアや交互作用の分析で見込みのある特徴量が分かったら、実際に新しい特徴量を作成していく。&lt;/p&gt;
&lt;h3 id="数学的な変換"&gt;数学的な変換&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;同じ単位（面積など）を持つ特徴量同士は、比率や合計で組み合わせやすい&lt;/li&gt;
&lt;li&gt;例: &lt;code&gt;LivLotRatio&lt;/code&gt;（居住面積÷敷地面積の比率）、&lt;code&gt;Spaciousness&lt;/code&gt;（1階・2階の床面積の合計を部屋数で割った値）、&lt;code&gt;TotalOutsideSF&lt;/code&gt;（各種屋外スペースの合計）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="カテゴリ変数との交互作用"&gt;カテゴリ変数との交互作用&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;連続値の特徴量とカテゴリ変数の間に交互作用がある場合、カテゴリをOne-Hotエンコードしてから連続値に掛け合わせることで、交互作用を明示的な特徴量にできる&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;X_new = pd.get_dummies(df.Categorical, prefix=&amp;#34;Cat&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;X_new = X_new.mul(df.Continuous, axis=0)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="カウント特徴量"&gt;カウント特徴量&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;複数の関連する二値・数値項目のうち「いくつが条件を満たすか」を数える特徴量&lt;/li&gt;
&lt;li&gt;例: 屋外スペースの各種類（ウッドデッキ、ポーチなど）のうち、面積が0より大きいものの個数を数えた&lt;code&gt;PorchTypes&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="カテゴリの分解"&gt;カテゴリの分解&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;1つのカテゴリ変数が、実は複数の情報を含んでいることがある&lt;/li&gt;
&lt;li&gt;例: &lt;code&gt;MSSubClass&lt;/code&gt;は「住居の種類」を表すが、文字列の最初の単語だけを取り出すことで、より大まかな分類を新しい特徴量として抽出できる&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="グループ集計特徴量"&gt;グループ集計特徴量&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ある特徴量の値を、別のカテゴリでグループ化した集計値（平均・中央値など）と組み合わせる&lt;/li&gt;
&lt;li&gt;例: 各住宅の&lt;code&gt;GrLivArea&lt;/code&gt;を、その住宅が属する&lt;code&gt;Neighborhood&lt;/code&gt;ごとの中央値と比較できるようにした&lt;code&gt;MedNhbdArea&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;住宅の価値は、近隣の相場と比べてどうかという相対的な情報も持つため、こうした集計特徴量が有効になる&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="k-meansクラスタリング"&gt;K-meansクラスタリング&lt;/h2&gt;
&lt;p&gt;教師なし学習であるクラスタリングも、特徴量作成の手段として使える。&lt;/p&gt;
&lt;h3 id="スケーリングの注意点"&gt;スケーリングの注意点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;k-meansは距離ベースのアルゴリズムのため、スケールの異なる特徴量をそのまま使うと、値の大きい特徴量に結果が引っ張られる&lt;/li&gt;
&lt;li&gt;緯度・経度のように、単位が揃っていて直接比較可能な特徴量は再スケーリング不要な場合が多い&lt;/li&gt;
&lt;li&gt;敷地面積と居住面積のように単位は同じでもスケールが大きく異なる特徴量や、ドア数と馬力のように単位そのものが異なる特徴量は、再スケーリングを検討する必要がある&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="クラスタラベル特徴量"&gt;クラスタラベル特徴量&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;敷地面積・地下室面積・1階/2階床面積・居住面積などの空間的な特徴量群にk-meansを適用し、各住宅が属するクラスタ番号をカテゴリ特徴量として追加する&lt;/li&gt;
&lt;li&gt;複雑な空間的関係を、単純なラベル1つに圧縮できる&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="クラスタ距離特徴量"&gt;クラスタ距離特徴量&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;クラスタ番号というカテゴリだけでなく、各住宅から全クラスタ中心までの距離を、それぞれ連続値の特徴量として使うこともできる&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fit_predict&lt;/code&gt;の代わりに&lt;code&gt;fit_transform&lt;/code&gt;を使うことで、距離特徴量が得られる&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="主成分分析pca"&gt;主成分分析（PCA）&lt;/h2&gt;
&lt;h3 id="ローディングの解釈"&gt;ローディングの解釈&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;互いに相関の強い特徴量群にPCAを適用すると、各主成分がどの特徴量の組み合わせに強く反応しているか（ローディング）を確認できる&lt;/li&gt;
&lt;li&gt;ローディングの符号・大きさのパターンから、その主成分が何らかの対比（例えば「新しくて質は高いが広くはない」対「古いが広い」のような対比）を捉えていると解釈できる&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="主成分を特徴量として使う"&gt;主成分を特徴量として使う&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ローディングから着想を得て新しい特徴量を作る方法と、主成分の値そのものを特徴量としてモデルに追加する方法の両方がありうる&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="外れ値検出への応用"&gt;外れ値検出への応用&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;PCAは、個々の特徴量を見ただけでは分からない「変則的な変動」を検出できる&lt;/li&gt;
&lt;li&gt;例えば、小さい住宅であること自体や、地下室が大きいこと自体は珍しくないが、「小さいのに地下室だけ異常に大きい」という組み合わせは珍しい&lt;/li&gt;
&lt;li&gt;主成分の分布で極端な値を持つデータ点を確認することで、こうした組み合わせ的な外れ値を見つけられる&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ターゲットエンコーディング"&gt;ターゲットエンコーディング&lt;/h2&gt;
&lt;h3 id="仕組みとm推定平滑化"&gt;仕組みとM推定平滑化&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;カテゴリ変数を、そのカテゴリにおけるターゲットの平均値に置き換える手法&lt;/li&gt;
&lt;li&gt;カテゴリの出現回数が少ないと、平均値の推定が不安定になるため、M推定（M-estimate）という平滑化を行う&lt;/li&gt;
&lt;/ul&gt;
$$
\text{encoding} = \frac{n \cdot \bar{y}_{\text{category}} + m \cdot \bar{y}_{\text{overall}}}{n + m}
$$&lt;ul&gt;
&lt;li&gt;$n$はそのカテゴリの出現回数、$m$は平滑化の強さを決めるパラメータ&lt;/li&gt;
&lt;li&gt;出現回数が少ないカテゴリほど、全体平均に近い値に引き寄せられる&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="リークを防ぐ必要性"&gt;リークを防ぐ必要性&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;エンコーディングに使う平均値の計算に、モデルの学習に使うのと同じデータを使うと、ターゲットの情報がエンコーディングを経由してモデルにリークしてしまう&lt;/li&gt;
&lt;li&gt;これを避けるため、エンコーディングを学習させるデータと、実際にモデルを学習させるデータは分割しておく必要がある&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="過学習の実例"&gt;過学習の実例&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;リークの危険性を示す例として、&lt;code&gt;SalePrice&lt;/code&gt;とは本来何の関係もないはずの、単なる連番（0, 1, 2, 3, &amp;hellip;）のカウント特徴量を、あえてエンコーディングと同じデータ上で平均エンコードしてみる&lt;/li&gt;
&lt;li&gt;結果、ほぼ完璧なスコアが出てしまう&lt;/li&gt;
&lt;li&gt;連番のような一意性の高い特徴量を平均エンコードすると、各カテゴリの出現回数が1に近くなり、エンコードされた値がほぼターゲットの値そのものになってしまうため&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Kaggle Learnのコース自体は前処理済みのデータを前提にしているため、カテゴリ変換・One-Hot Encoding・外れ値除去・目的変数の対数変換といった一般的な前処理は別途必要になる&lt;/li&gt;
&lt;li&gt;相互情報量は、特徴量の候補を絞り込む出発点として使えるが、単体のスコアだけでは交互作用を見逃す&lt;/li&gt;
&lt;li&gt;特徴量の作成は、数学的な変換・カテゴリとの交互作用・カウント・分解・グループ集計など、いくつかの型に分類できる&lt;/li&gt;
&lt;li&gt;K-meansやPCAのような教師なし学習の手法も、クラスタラベルや距離、主成分といった形で特徴量作成に転用できる&lt;/li&gt;
&lt;li&gt;ターゲットエンコーディングは強力だが、リークによる過学習のリスクが大きく、holdoutデータでの学習と平滑化パラメータの調整が欠かせない&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="参考文献"&gt;参考文献&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.kaggle.com/learn/feature-engineering" target="_blank" rel="noopener"
&gt;Feature Engineering - Kaggle Learn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Duboue, P. (2020). &amp;ldquo;The Art of Feature Engineering&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Heaton, J. &amp;ldquo;An Empirical Analysis of Feature Engineering for Predictive Modeling&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Zheng, A. &amp;amp; Casari, A. (2018). &amp;ldquo;Feature Engineering for Machine Learning&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Kuhn, M. &amp;amp; Johnson, K. (2019). &amp;ldquo;Feature Engineering and Selection&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://hacarus.github.io/interpretable-ml-book-ja/index.html" target="_blank" rel="noopener"
&gt;Interpretable Machine Learning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://qiita.com/kizataka/items/c7e0b3cee294a33276f5#%E6%95%B0%E5%80%A4%E3%81%AE%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E5%A4%89%E6%8F%9B" target="_blank" rel="noopener"
&gt;【Kaggle】House PricesをLightGBMで分析 #Python - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>