新卒1年目の技術に関する備忘録

自主学習で困ったこと、学んだことをまとめています

他クラス分類の方法

二項分類器を使って他クラス分類を行う方法

 

OVA法(one-versus-all)

分類する数分だけ個々の分類器を作り、1つとその他の分類をすることで他クラス分類を実現させる。

 

OVO法(one-versus-one)

分類する数の組み合わせの分だけ分類器を作り、1対1の分類をする。

 

サポートベクターマシンなどのように、訓練セットのサイズが大きくなると遅くなるアルゴリズムの場合はOVOを用いた方が良いが、大半の二項分類アルゴリズムではOVOの方が良い。

scikit-learnでは、自動でOVA法を実行する(SVMはOVO)。

 

回帰の性能指標

回帰の性能指標として、一般的には平均二乗誤差(RMSE:Root Mean Square Error)を用いる。

しかし、外れ値となる区域が多数ある場合は平均絶対誤差

(MAE:Mean Absolute Error)を使うことを考えると良い。

実測値と予測値の差の絶対値の平均をとる。

 

これらはどちらも二つのベクトルの距離を測定する方法である。

距離の指標として、ノルム(norm)がある。

平均二乗誤差はユークリッドノルムに対応する。l2ノルムとも呼ばれる。

平均絶対誤差はマンハッタンノルムに対応する。l1ノルムとも呼ばれる。

マンハッタンノルムとは斜めには移動できず、縦と横だけというイメージ。

ノルムの値が大きくなればなるほど、大きい値を重視し、小さい値を無視する方向に傾く。

そのため、RMSEはMAEより外れ値の影響を受けやすい。

インスタンスベース学習とモデルベース学習

インスタンスベース学習

既知のデータを丸暗記し、新しいデータを類似度の尺度を使って汎化する。

 

モデルベース学習

データ例全体からモデルを構築し、そのモデルを使って予測をする方法。

バッチ学習とオンライン学習

バッチ学習

システムを少しずつ学習することができない。

訓練する際は、全ての訓練データを与える必要がある。

 

オンライン学習

オンライン学習とは異なり、学習データが入ってくるたびに都度、新たに入ってきたデータのみを使って学習する。差分学習とも呼ばれる。

テキストデータの処理

Bag of Wordsによるテキスト表現

 

トークン分割

個々の文書を単語に分割する。

ホワイトスペースや句読点で区切る。

 

ボキャブラリ構築

単語に番号付をする。

 

エンコード

単語が現れる回数を数える。

 

tf-idfを用いたデータのスケール変換

特徴量がどの程度情報を持っていそうかに応じて、特徴量のスケール変換をする方法の1つ。

特定の文書にだけ頻繁に現れる単語に重みを与え、多数の文書に現れる単語にはあまり重みを与えないというもの。

 

TfidfTransformerとTfidfVectorizerが用いられる。

 

ngram_rangeでトークンの長さを変えられる。

1単語をユニグラム、2単語をバイグラム、3単語をトリグラムという。

ほとんどの場合、バイグラムを加えると性能の向上が見込める。