ブログ

機械学習のための特徴量エンジニアリング ――その原理とPythonによる実践

インターン生として働き始めて、5月で2年目に突入しました國井です!

前回、機械学習の手法を一通り学習したことを踏まえて、機械学習で重要な「特徴量」についてしっかりと勉強しようと考えました。

今回は、「機械学習のための特徴量エンジニアリングーーその原理とPythonによる実践」という本を一通り学習したので、それについての概要と説明を行いたいと思います。

本の概要について

出版社:オライリー・ジャパン

著者:Alice Zheng、Amanda Casari 著、株式会社ホクソエム 訳

https://www.oreilly.co.jp/books/9784873117980/

 

目次

1章:機械学習パイプライン

2章:数値データの取り扱い

3章:テキストデータの取り扱い

4章:特徴量スケーリングによる効果:Bag-of-WordsのTF-IDFによる重み付け

5章:カテゴリ変数の取り扱い

6章:次元削減:膨大なデータをPCAで圧縮

7章:非線形特徴量の生成:k-meansを使ったスタッキング

8章:特徴量作成の自動化:画像特徴量の抽出と深層学習

 

リファレンス

この本を読み進めていく上で、以下の本をリファレンスとして活用しました。

  • ゼロから作るDeep Learning ーーPythonで学ぶディープラーニングの理論と実装

こちらは8章を読み進めるために、一通り勉強しました

「ゼロから作るdeep learning」の画像検索結果

 

書籍の内容

1章:機械学習パイプライン

データ、タスク、モデル、特徴量という4つの言葉について、しっかりと理解することから始まり、

モデルと特徴量の相互関係について詳しく学習しました。

キーワード

・モデルと特徴量は相互に影響し合う関係

・適切な特徴量を選ぶことが機械学習において重要

 

2章:数値データの取り扱い

数値データに関して、スカラ・ベクトルなどの基本的な特徴量の表現方法から、

特徴量の色々な変換について学習しました。

特に対数変換などは機械学習以外にも理系ではよく用いられる方法となるので、

数値データの取り扱いに関してはしっかりと学習する必要があると感じました。

キーワード

・二値化

・対数変換

・正規化

 

3章:テキストデータの取り扱い

数値のデータは比較的取り扱いやすいのですが、テキストデータでは表現方法を考える必要があります。

この章ではテキストを数値ベクトルで表すことができるように様々な方法でアプローチを行なっていました。

キーワード

・Bag-of-Words

・bag-or-n-Grams

・ストップワード

 

4章:特徴量スケーリングによる効果:Bag-of-WordsのTF-IDFによる重み付け

3章で扱ったテキストデータのベクトル化について、この章では意味のある言葉になるように特徴量を変換しました。

変換した特徴量に関して、ロジスティック回帰などを用いてモデルの学習にどう影響するかを学習しました。

キーワード

・TF-IDF

・ロジスティック回帰

 

5章:カテゴリ変数の取り扱い

数値の大きさには特に意味はなく、数字によって分類をする「カテゴリ」の取扱いに関して学習を行いました。

以前Kaggleを行なった際に何も考えずにカテゴリ変数に数値を振っていた自分に見せたいと思うような内容でした。

キーワード

・One-Hotエンコーディング

・ビンカウンティング

 

6章:次元削減:膨大なデータをPCAで圧縮

特徴量の次元を削減するPCAに関して、理論的な部分から学習しました。

この本だけだと少し情報が足りないので、インターネットや大学の図書館などで調べることで対応しました。

特徴量が多すぎる画像などで、本質的な部分を可視化する際などに使用できると思いました。

キーワード

・特異値分解

・白色化

 

7章:非線形特徴量の生成:k-meansを使ったスタッキング

線形部分空間だけでなく、データが複雑な形となっている非線形部分空間についてどう扱うかを学習しました。

非線形部分空間では、球などの3次元の物体を2次元として扱うなどします。

計算速度を向上できるなど、別の視点から機械学習の行い方を知ることができました。

キーワード

・k-means

 

8章:特徴量作成の自動化:画像特徴量の抽出と深層学習

画像認識に関して、手動での特徴量抽出と、深層学習による自動的な特徴量の抽出を扱いました。

リファレンスとして「ゼロから作るDeep Learning ーーPythonで学ぶディープラーニングの理論と実装」を用いたことで、CNNについての学習が進みました。

キーワード

・SIFT、HOG

・CNN

 

9章:バック・トゥ・ザ・「フィーチャー」:学術論文レコメンドアルゴリズムの構築

こちらですが、サンプルデータが104GBなので、データを実際に解析することはしませんでした。

(私のPCの容量が256GBなので…)

内容としては、以下のものを確認しました。

  • 解析1回目:データインポート(Microsoft Academic Graphデータセット)・クリーニング・特徴量の解析
  • 解析2回目:選択した特徴量を用いて、類似度を用いた分析
  • 解析3回目:2回目の解析に、さらにデータを加える

 

感じたこと

前回の「Pythonで始める機械学習」を終えてすぐに学習した本ですが、

機械学習を勉強し始めたばかりの自分のような方には少し実用的ではないと感じました。

ただ、特徴量の変換方法についてある程度頭の中に入っている状態であれば

機械学習を実際に適用する際に特徴量を意識をしながらモデルの構築や評価ができると思いました。

 

仲間を募集

『WEBテクノロジーで社会に幸せを作る!』そんな想いに共感してくれる仲間を募集しています。

サイバーウェーブでは、AIなどの新しいことにもチャレンジできる環境を提供し、メンバーひとり一人のスキルアップ・ステップアップを全力で応援しています。

個人の成長が会社の成長に繋がります。

◆インターン採用はこちらから

インターン採用

◆新卒・既卒・第二新卒採用はこちらから

新卒・既卒・第二新卒

 

 

おすすめ記事