# 機械学習で重要な特徴量エンジニアリングとは？手法やコツを紹介！

> 当サイト【スタビジ】の本記事では、精度の高いモデルを構築する上で非常に重要な特徴量エンジニアリングについて簡単に解説していきます。特徴量エンジニアリングの流れやテクニックを知っているのと知っていないのとではたたき出すアウトプットの質が全く違うので必ず理解しておきましょう！

- URL: https://toukei-lab.com/variable-engineering
- 公開: 2022.11.29 / 更新: 2025.04.15
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
当サイト【スタビジ】の本記事では、精度の高いモデルを構築する上で非常に重要な特徴量エンジニアリングについて簡単に解説していきます。特徴量エンジニアリングの流れやテクニックを知っているのと知っていないのとではたたき出すアウトプットの質が全く違うので必ず理解しておきましょう！
:::

こんにちは！

データサイエンティストのウマたん([@statistics1012](https://twitter.com/statistics1012?lang=ja))です！

機械学習を使ってモデルを構築する上で、非常に重要なのが**特徴量エンジニアリング。**

特徴量とは、**モデルにインプットする要素・変数**のこと。

例えば<mark>お店の売上を予測するために気温や曜日のデータを使う場合、気温や曜日が特徴量になります。</mark>

統計学の世界では**変数**という言葉を使いますが、専ら機械学習界隈では**特徴量**と言いますね。

そんな特徴量を上手く作り出し精度を高めようとする取り組みが**特徴量エンジニアリング**なのです。

:::talk{who="robotan"}
なんだか難しそうだなー！
:::

:::talk{who="umatan"}
難しくはないんだけど知っておいた方が良いテクニックもあるので注意が必要だ！
:::

この記事では、そんな**特徴量エンジニアリングに必要な考え方やテクニック**を紹介していきます！

特徴量エンジニアリングについて詳しく学びPythonで実装していきたい方は、以下の私のUdemy講座で詳しく解説していますのでチェックしてみてください！

:::box
[**【初心者向け】機械学習モデル構築で重要な特徴量エンジニアリングのテクニックをPythonを使って学んでいこう！**](https://www.udemy.com/course/ml-feature-engineering/?referralCode=E866EFBE4CE1F1B07C79)

[![Udemy](/wp-content/uploads/2025/04/PythonFeature.jpg)](https://www.udemy.com/course/ml-feature-engineering/?referralCode=E866EFBE4CE1F1B07C79)

<table class="table">
<tbody>
<tr>
<th>【時間】</th>
<td><span>4.5時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>初級</span></td>
</tr>
</tbody>
</table>

特徴量エンジニアリングについて学びたいならこのコース！

今なら購入時に「FLSHDGEJURXF」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください！

::button[このコースを見てみる]{href="https://www.udemy.com/course/ml-feature-engineering/?referralCode=E866EFBE4CE1F1B07C79" note="＼30日以内なら返金無料／"}
:::

以下のYouTube動画でも解説していますので、あわせてチェックしてみてください！

::youtube{#pNHMzGteNz0}

## 特徴量エンジニアリングに必要な考え方

![メモ](/wp-content/uploads/2019/03/a94310ed4de4a08528a026f0badfdb2f_s-e1556972696222.jpg)

特徴量エンジニアリングの目的は予測精度を上げるコトであり様々なアプローチがあります。

:::box
**・全く新しい特徴量を追加する**\
**・特徴量の集計方法を変える\
・特徴量を変換する\
・既存の特徴量を組みあわせて新たな特徴量を作り出す\
・サンプルを操作する**
:::

などなど。

特徴量エンジニアリングには、ドメイン知識が非常に重要。

ドメイン知識とは、**そのデータセットの領域に関係する知識**のこと。

業界や職種によってドメインは区切られます。

BtoBとBtoCの商材ではもちろん特徴量の勘所は違いますし、<mark>BtoCでも車を扱う会社と日用品を扱う会社で違うというのは理解できるでしょう。</mark>

そのドメイン特有の考え方や重要指標が存在するので、それをしっかり理解して特徴量として追加したり加工したりすることが**モデルの精度を高める上で非常に重要**になってきます。

自分の担当する分野にアジャストするのがコツになりますが、<mark>いくらドメイン知識があっても特徴量エンジニアリングのテクニックを知らないと筋の良いモデルは作り出せません</mark>。

いくつかある特徴量エンジニアリングについて解説していきます！

## 特徴量エンジニアリングのテクニック

![PC](/wp-content/uploads/2018/08/PAK85_MBAdesagyou20140312_TP_V-e1557018085482.jpg)

ここでは、既存のデータを加工したり、既存の特徴量を組みあわせて新たな特徴量を作り出すテクニックを紹介します。

[Kaggle](/kaggle)などの[データコンペ](/data-competition)では全員に決まったデータが与えられるので、与えられたデータの中でどのような特徴量を生み出すかが肝になりますが、<mark>実務ではそもそもデータを計測するところから設計したり、他のテーブルデータから必要なデータを引っ張ってきたりすることも多いです。</mark>

特徴量エンジニアリングのテクニックを知っておくのは大事ですが、<mark>近視眼的になるのではなく広い視野で特徴量を見つけられるようにしておきましょう！</mark>

### one-hot-encoding

one-hot-encodingは、統計学の世界で言う**ダミー変数化**とほぼ同義で多クラスのカテゴリーを01ラベルで表す特徴量として展開していきます。

例えば以下のようなケースだと、

<table border="0" cellspacing="0" cellpadding="0" class="table">
<colgroup>
<col> </colgroup>
<tbody>
<tr>
<td>カテゴリ</td>
</tr>
<tr>
<td>A</td>
</tr>
<tr>
<td>B</td>
</tr>
<tr>
<td>A</td>
</tr>
<tr>
<td>C</td>
</tr>
<tr>
<td>・・・</td>
</tr>
<tr>
<td>A</td>
</tr>
<tr>
<td>B</td>
</tr>
</tbody>
</table>

one-hot-encodingをすることにより以下のようなデータ構造に変換されます。

<table border="0" cellspacing="0" cellpadding="0" class="table">
<colgroup>
<col span="2"> </colgroup>
<tbody>
<tr>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td align="right">1</td>
<td align="right">0</td>
</tr>
<tr>
<td align="right">0</td>
<td align="right">1</td>
</tr>
<tr>
<td align="right">1</td>
<td align="right">0</td>
</tr>
<tr>
<td align="right">0</td>
<td align="right">0</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td align="right">1</td>
<td align="right">0</td>
</tr>
<tr>
<td align="right">0</td>
<td align="right">1</td>
</tr>
</tbody>
</table>

この時、Aが0でBが0であればCということが明示的に分かるのでCのカラムは必要ありません。

逆にCのカラムを追加してしまうと<mark>変数同士の重複が起き「[**多重共線性**](/multicollinearity)」という問題が生じ、推定精度が不安定になります。</mark>

Pythonでは、[pandas](/python-pandas)のget_dummiesを使って簡単にone-hot-encoding化することができます。

[Xgboost](/xgboost)や[Lightgbm](/light-gbm)など[決定木](/%e6%b1%ba%e5%ae%9a%e6%9c%a8)モデルの場合は、one-hot-encoding化を行わずそのままカテゴリでデータをインプットしても問題ないのですが、それ以外の学習器を使用する場合はone-hot-encoding化が必要です。

:::talk{who="robotan"}
ただ単に数字に変換するだけじゃダメなの？
:::

:::talk{who="umatan"}
それだと「カテゴリ」だったものに大小関係を与えてしまうんだ！そうすると元々のカテゴリとしての意味は全くなくなってしまうよ！
:::

### Feature hashing

one-hot-encodingでは、10の水準を持つカテゴリの場合、新たな特徴量が9つ生成されることになります。

つまり<mark>水準が多ければ多いほど特徴量が増え高次元になっていき計算が不安定になる可能性が考えられます。</mark>

そこで行われるのがこのFeature hashingです。

Feature hashingでは、複数の水準を1つのカラムで表現します。

例えば

<table border="0" cellspacing="0" cellpadding="0" class="table">
<colgroup>
<col> </colgroup>
<tbody>
<tr>
<td>カテゴリ</td>
</tr>
<tr>
<td>A</td>
</tr>
<tr>
<td>B</td>
</tr>
<tr>
<td>D</td>
</tr>
<tr>
<td>C</td>
</tr>
<tr>
<td>・・・</td>
</tr>
<tr>
<td>A</td>
</tr>
<tr>
<td>B</td>
</tr>
</tbody>
</table>

の場合Feature hashingを使うと例えば以下のようになります。

<table border="0" cellspacing="0" cellpadding="0" class="table">
<colgroup>
<col span="2"> </colgroup>
<tbody>
<tr>
<td>AかつC</td>
<td>B</td>
</tr>
<tr>
<td align="right">1</td>
<td align="right">0</td>
</tr>
<tr>
<td align="right">0</td>
<td align="right">1</td>
</tr>
<tr>
<td align="right">0</td>
<td align="right">0</td>
</tr>
<tr>
<td align="right">1</td>
<td align="right">0</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td align="right">1</td>
<td align="right">0</td>
</tr>
<tr>
<td align="right">0</td>
<td align="right">1</td>
</tr>
</tbody>
</table>

これにより<mark>特徴量が増えすぎるのを防ぐ</mark>ことができます。

### Frequency encoding

各水準の出現回数でカテゴリ変数を置き換えます。

例えば以下のような特徴量は、

<table border="0" cellspacing="0" cellpadding="0" class="table">
<colgroup>
<col> </colgroup>
<tbody>
<tr>
<td>カテゴリ</td>
</tr>
<tr>
<td>A</td>
</tr>
<tr>
<td>A</td>
</tr>
<tr>
<td>C</td>
</tr>
<tr>
<td>C</td>
</tr>
<tr>
<td>A</td>
</tr>
<tr>
<td>A</td>
</tr>
<tr>
<td>B</td>
</tr>
</tbody>
</table>

は以下のように変換できます。

<table border="0" cellspacing="0" cellpadding="0" class="table">
<colgroup>
<col> </colgroup>
<tbody>
<tr>
<td>カテゴリ</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>1</td>
</tr>
</tbody>
</table>

### target encoding

目的変数の情報を使ってカテゴリ変数を置き換える方法です。

<table border="0" cellspacing="0" cellpadding="0" class="table">
<colgroup>
<col> </colgroup>
<tbody>
<tr>
<td>カテゴリ</td>
<td>目的変数</td>
</tr>
<tr>
<td>A</td>
<td>1</td>
</tr>
<tr>
<td>A</td>
<td>1</td>
</tr>
<tr>
<td>C</td>
<td>0</td>
</tr>
<tr>
<td>C</td>
<td>1</td>
</tr>
<tr>
<td>A</td>
<td>0</td>
</tr>
<tr>
<td>A</td>
<td>1</td>
</tr>
<tr>
<td>B</td>
<td>0</td>
</tr>
</tbody>
</table>

この場合、それぞれの平均を取って以下のように変換できます。

A=(目的変数の総計が3)/4=0.75\
B=(目的変数の総計が0)/1=0\
B=(目的変数の総計が1)/2=0.5

<table border="0" cellspacing="0" cellpadding="0" class="table">
<colgroup>
<col> </colgroup>
<tbody>
<tr>
<td>カテゴリ</td>
<td>目的変数</td>
</tr>
<tr>
<td>0.75</td>
<td>1</td>
</tr>
<tr>
<td>0.75</td>
<td>1</td>
</tr>
<tr>
<td>0.5</td>
<td>0</td>
</tr>
<tr>
<td>0.5</td>
<td>1</td>
</tr>
<tr>
<td>0.75</td>
<td>0</td>
</tr>
<tr>
<td>0.75</td>
<td>1</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
</tr>
</tbody>
</table>

ただ、この場合目的変数の情報を特徴量に用いることになるので、[リーク](/leakage)（<mark>知らないはずのデータを情報として取り入れてしまい予測精度の悪化を招くこ</mark>）に気を付けなくてはいけません。

以下の書籍に詳しいので詳しく知りたい方は、ぜひチェックしてみてください！

::product[Kaggleで勝つデータ分析の技術]{url="https://www.amazon.co.jp/dp/B07YTDBC3Z?tag=statistic08-22&linkCode=ogi&th=1&psc=1" image="https://m.media-amazon.com/images/I/418YjfYRlhL._SL160_.jpg" amazon="https://www.amazon.co.jp/dp/B07YTDBC3Z?tag=statistic08-22&linkCode=ogi&th=1&psc=1" kindle="https://www.amazon.co.jp/dp/B07YTDBC3Z?tag=statistic08-22&linkCode=ogi&th=1&psc=1" rakuten="https://af.moshimo.com/af/c/click?a_id=858168&p_id=54&pc_id=54&pl_id=616&url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FKaggle%2F%3Ff%3D1%26grp%3Dproduct"}

### 日付の処理

インプットするデータが時系列データの場合は**日付の処理が非常に重要**です。

一口に日付と言っても本当に様々なデータの処理が可能なのです。

例えば、テーブルに日付データが2021-03-31と入っていたとしましょう。

この日付データを<mark>年月日、そして曜日データにブレイクダウン</mark>するのは最初に思いつく変換方法です。

他にも月の中での上旬・中旬・下旬に分けて特徴量に追加したり、季節ごとに分けて特徴量に追加したりすることも考えられます。

また、日付データを他の特徴量と組みあわせて様々な粒度の特徴量を生成することが可能です。

例えば、2021-03-31の売上を予測する上で過去30日の訪問回数や売上を集計して特徴量にしたり過去7日ログデータを集計して特徴量にしたり、など<mark>集計する期間を変えることで様々な期間の特徴量を生成することが可能</mark>です。

### クラスタリングで特徴量作成

実は大学時代に研究で[クラスタリング](/%e3%82%af%e3%83%a9%e3%82%b9%e3%82%bf%e3%83%bc%e5%88%86%e6%9e%90)で特徴量を生成して精度を高めるという研究をしていたことがあるのですが、この方法も精度を高めるのに有効です。

<https://toukei-lab.com/%e3%82%af%e3%83%a9%e3%82%b9%e3%82%bf%e3%83%bc%e5%88%86%e6%9e%90>

複数ある説明変数をクラスタリングにかけて、<mark>新たなカテゴリを生成しそれを新たな説明変数として加えることで精度が上がるコトがあります。</mark>

クラスタ中心からの距離を特徴量とするテクニックもデータセットによっては有効になります。

### 主成分分析で次元圧縮

[主成分分析](/pca)とは、複数の特徴量を圧縮して少なくする手法です。

<https://toukei-lab.com/pca>

精度を追い求める場面ではそれほど使われることはありませんが、<mark>あまりにも特徴量の多い高次元データには有用です。</mark>

### 既存の特徴量から演算で特徴量作成

複数の変数の特徴量を組みあわせて新たな特徴量を生成する方法も有用の時があります。

例えば、<mark>顧客別の購入金額と購入件数があった時にそれらを除算して購入単価という変数を作ることで精度が上がる場合があります。</mark>

モデル構築時の過程で、このような効果も加味してくれますが、明示的に特徴量を生成した方がよいことが多いです。

### 欠損値の処理

[欠損値（欠測値）](/missing-value)の処理も重要な特徴量エンジニアリングの1つです。

![欠損値](/wp-content/uploads/2017/12/448d413381babfc1c8221ca0e5009e2b.png)

[Xgboost](/xgboost)などの決定木モデルでは、欠損値を含んでいてもそのまま学習データとしてインプットが可能なので特別な処理をせずそのまま使うことが多いですが、他の手法を使用する場合は欠損値の処理が必要です。

欠損値の処理には、

:::box
**・代表的な値で補完する**\
**・欠損値そのものを目的変数にして予測補完する**
:::

などがあります。

ちなみに欠損値が生じる原因によってタイプが分かれており、

:::point
・完全ランダムで発生しているのか\
・他の変数に起因して発生しているのか\
・欠損値が生じている変数自身に起因して発生しているのか
:::

によって対応が変わってきます。

<https://toukei-lab.com/missing-value>

### スタッキング

機械学習における定番手法である[アンサンブル学習](/ensemble)。

データコンペティションの[Kaggle](/kaggle)でもよく使われる[Xgboost](/xgboost)や[Lightgbm](/light-gbm)もアンサンブル学習を使っています。

そんなアンサンブル学習の1つであるスタッキング！

スタッキングは<mark>アンサンブル学習ですが、新たな特徴量を作る方法でもあります。</mark>

僕自身普段スタッキングは使わないのですが、簡単に説明します。

:::box
Step1\:いくつかのFold（グループ）にデータを分けて、それぞれを各モデルで予測する（いわゆる[クロスバリデーション](/cross-validation)を色んなモデルでやる）

Step2\:それぞれの予測値を新たな特徴量とする

Step3\:何回か繰り返して最終アウトプット算出
:::

アンサンブル学習のついては以下の記事でまとめています！

<https://toukei-lab.com/ensemble>

### アンダーサンプリング

実データを扱っていると度々現れるのが不均衡データ！

不均衡データとは<mark>データの比率に偏りがあるもの。</mark>

金融取引の不正利用データやメールのCVデータなど、母数が大量にありその中で該当する正例が非常に少ないケースはよくあります。

アンダーサンプリングは、そのような不均衡データに対して「<mark>少数派のデータ群にあわせて多数派のデータ群を削除する</mark>」という方法です。

### オーバーサンプリング

オーバーサンプリングはアンダーサンプリングとは違い、逆に「<mark>少数派のデータを多数派にあわせて増やす</mark>」という方法です。

オーバーサンプリングの中で特によく使われる手法がSMOTEと呼ばれるものです。

SMOTEは、**S**ynthetic **M**inority **O**ver-sampling **TE**chniqueの略で[K近傍法](/%EF%BD%8B%E8%BF%91%E5%82%8D%E6%B3%95)のアルゴリズムを利用して少数派のサンプルを増やしていきます。

不均衡データに関しては以下の記事でまとめています！

<https://toukei-lab.com/imbalance-data-smote>

### 特徴量同士の組み合わせで特徴量作成

その他にも特徴量同士を組み合わせることで新しい特徴量を作成するアプローチもあります。

たとえば、商品のサイズとカラーという質的な特徴量があった時にそれらを組みあわせてサイズ×カラーという組み合わせの特徴量を作成して精度を向上させることが可能です。

## 特徴量エンジニアリングを学ぶのにオススメな本・サービス

特徴量エンジニアリングを学ぶためにはどうすればよいか見ていきましょう！

### Kaggleで勝つデータ分析の技術

特徴量エンジニアリングを学ぶのにオススメな本がこれ！

::product[Kaggleで勝つデータ分析の技術]{url="https://www.amazon.co.jp/dp/B07YTDBC3Z?tag=statistic08-22&linkCode=ogi&th=1&psc=1" image="https://m.media-amazon.com/images/I/418YjfYRlhL._SL160_.jpg" amazon="https://www.amazon.co.jp/dp/B07YTDBC3Z?tag=statistic08-22&linkCode=ogi&th=1&psc=1" kindle="https://www.amazon.co.jp/dp/B07YTDBC3Z?tag=statistic08-22&linkCode=ogi&th=1&psc=1" rakuten="https://af.moshimo.com/af/c/click?a_id=858168&p_id=54&pc_id=54&pl_id=616&url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FKaggle%2F%3Ff%3D1%26grp%3Dproduct"}

Kaggleで使用される特徴量エンジニアリングについて分かりやすく解説してくれます。

<mark>Kaggleでの具体例を出しながら、どのようなデータでどのようなテクニックが有効だったのか</mark>非常に分かりやすく学べるのでめちゃくちゃオススメです！

Kaggleはやらない人でも、**実務で役立つエッセンス**が詰まっていますよー！

ぜひ手に取って読んでみましょう！

### Udemy

Udemyというサービスでは、世界中の講師が素晴らしい講座を公開しています。

僕自身もコースを公開していて<mark>特徴量エンジニアリングについて分かりやすく学べる講座</mark>にしているので興味のある方は是非受講してみてください！

#### [**【初心者向け】機械学習モデル構築で重要な特徴量エンジニアリングのテクニックをPythonを使って学んでいこう！**](https://www.udemy.com/course/ml-feature-engineering/?referralCode=E866EFBE4CE1F1B07C79)

[![Udemy](/wp-content/uploads/2025/04/PythonFeature.jpg)](https://www.udemy.com/course/ml-feature-engineering/?referralCode=E866EFBE4CE1F1B07C79)

<table class="table">
<tbody>
<tr>
<th>【時間】</th>
<td><span>4.5時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>初級</span></td>
</tr>
</tbody>
</table>

特徴量エンジニアリングについて学びたいならこのコース！

今なら購入時に「FLSHDGEJURXF」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください！

::button[このコースを見てみる]{href="https://www.udemy.com/course/ml-feature-engineering/?referralCode=E866EFBE4CE1F1B07C79" note="＼30日以内なら返金無料／"}

Udemyについて詳しく知りたい方は以下の記事を参考にしてみてください！

<https://toukei-lab.com/udemy-review>

### スタアカ（スタビジアカデミー）

[![スタアカ（スタビジアカデミー）のトップページ](/wp-content/uploads/2026/10/achademy-top.jpg)](https://toukei-lab.com/achademy/)

公式サイト：<https://toukei-lab.com/achademy/>

<table class="table">
<tbody>
<tr>
<th>【価格】</th>
<td>ライトプラン：1,280円/月（全コースが受講し放題）<br>
プレミアムプラン：129,800円（通常149,800円・買い切り）</td>
</tr>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【サポート体制】</th>
<td><span class="stars" role="img" aria-label="5点中4点" data-value="4"></span></td>
</tr>
<tr>
<th>【受講形式】</th>
<td>オンライン形式</td>
</tr>
<tr>
<th>【学習範囲】</th>
<td>統計学・機械学習・ディープラーニングを網羅的に学ぶ<br>
生成AI（LLM・RAG・プロンプトエンジニアリング）を学ぶ<br>
SQLとPythonを組み合わせて実データを使った様々なワークを行う<br>
実践的なビジネスフレームワークを学ぶ<br>
マーケティングの実行プラン策定</td>
</tr>
</tbody>
</table>

データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「[スタアカ](https://toukei-lab.com/achademy/)」！！

当メディアが運営するスクールです。

月額1,280円のライトプランで、統計学から機械学習・生成AIまで全コースが受講し放題です！

<mark>プレミアムプランでは、24時間以内の質問対応と現役データサイエンティストとの1on1（30分×4回）を実施します！</mark>

カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください！

<mark>そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解などもあわせて学べるボリューム満点のコース</mark>になっています！

特徴量エンジニアリングについても実践的なカリキュラムとともに手を動かしながら学んでいきます。

ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったりする盛りだくさんの内容になってます！

:::box
**・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析**\
**・世界最大手小売企業のウォルマートの実データを用いた需要予測**\
**・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定**\
**・生成AIのAPIを使ってチャットボットやAIエージェントを作る**
:::

::button[スタアカの受講はこちら]{href="https://toukei-lab.com/achademy/" note="＼今すぐ試す／"}

## 特徴量エンジニアリング　まとめ

本記事では、特徴量エンジニアリングについて解説してきました！

機械学習の手法自体は誰でも簡単に実装できますが、<mark>同じ機械学習手法でもそこにどのような特徴量をインプットするかで得られる結果は全く違います。</mark>

それゆえ、良いモデルを作るために<mark>特徴量エンジニアリングがめちゃくちゃ大事なんです！</mark>

:::talk{who="robotan"}
なるほど～実際に色んな特徴量エンジニアリング手法を試してみたくなったよ！
:::

:::talk{who="umatan"}
ぜひ、適切な特徴量を作ってモデルの精度を上げていこう！
:::

最後にここで紹介してきた特徴量エンジニアリングのテクニックを再度まとめておきましょう！

:::box
- [one-hot-encoding](/variable-engineering#one-hot-encoding)
- [Feature hashing](/variable-engineering#Feature_hashing)
- [Frequency encoding](/variable-engineering#Frequency_encoding)
- [target encoding](/variable-engineering#target_encoding)
- [日付の処理](/variable-engineering#i-3)
- [クラスタリングで特徴量作成](/variable-engineering#i-4)
- [主成分分析で次元圧縮](/variable-engineering#i-5)
- [既存の特徴量から演算で特徴量作成](/variable-engineering#i-6)
- [欠損値の処理](/variable-engineering#i-7)
- [スタッキング](/variable-engineering#i-8)
- [アンダーサンプリング](/variable-engineering#i-9)
- [オーバーサンプリング](/variable-engineering#i-10)
- [特徴量同士の組み合わせで特徴量作成](/variable-engineering#i-11)
:::

機械学習・データサイエンス・Pythonなどの勉強法については以下の記事で詳しく解説していますのであわせてチェックしてみてください！

<https://toukei-lab.com/machine-learning-study>

<https://toukei-lab.com/data-scientist>

<https://toukei-lab.com/python-learn>