外れ値処理の一手法:Winsorizingについて

機械学習や統計の分野における外れ値処理の手法の一つとしてWinsorizingと呼ばれる手法がある。日本語の解説が少なかったので書いてみる。

手法自体は非常に簡単で、外れ値を外れ値以外の最大値・最小値で置き換えるというものである。表形式データを考えると、単純に外れ値を除去するよりも、データサイズが少ない場合はほかのカラムの情報を有効活用することができる。

ちなみに英語版のWikipediaにはページが用意されている。
https://en.wikipedia.org/wiki/Winsorizing

このページにあった例を見てみると、numpy配列の上下5%のデータを最大値と最小値で置き換える方法が書かれている。

import scipy.stats
import numpy as np 
a = np.array([92, 19, 101, 58, 1053, 91, 26, 78, 10, 13, -40, 101, 86, 85, 15, 89, 89, 28, -5, 41]) 
scipy.stats.mstats.winsorize(a, limits=[0.05, 0.05])

1053が101に、-40が-5へと置き換えられる。
少し考えるとわかるが、単純に外れ値を除去して平均を取った場合とWinsoringをしてから平均を取った場合では値が異なる。

機械学習による化合物テストツールの論文:「PrePeP – A Tool for the Identification and Characterization of Pan Assay Interference Compounds」

PrePeP – A Tool for the Identification and Characterization of Pan Assay Interference Compounds
Maksim Koptelov (University of Caen Normandy); Albrecht Zimmermann (University of Caen Normandy); Pascal Bonnet (University of Orléans); Ronan Bureau (University of Caen Normandy); Bruno Crémilleux (University of Caen Normandy)
https://www.kdd.org/kdd2018/accepted-papers/view/prepep-a-tool-for-the-identification-and-characterization-of-pan-assay-inte

KDD2018の論文読み3本目。Applied Data Science Trackの続き。

製薬分野における機械学習を応用した論文。製薬などの分野で新たな化合物を作った際に、所望の性質を満たしているかを確認する作業がある。
対象物質が増えるとこの作業に非常に多くの時間とリソースがとられてしまう。そこで著者らは化学者向けのツールであるPrePePを作成し、専門家たちがビジュアル的に化合物の様子を探索し、テストの結果予測やその理由などをわかるようにした。

結果としてはiFH(infrequent hitters)と呼ばれるテストに成功しない多数派のクラスをうまく分類が出来ておらず、今後の改良が必要と述べられている。

具体的な機械学習モデルとしては解釈性を持たせるために決定木ベースでランダムフォレストのような形で、予測モデルを作成した。
また、化学の専門家が簡易に使えるように、その界隈で有名なツールを拡張する形でGUI付きのソフトウェアを開発している。

化学の専門知識が足りないためか、なかなかイメージが理解しづらいが、機械学習部分は基本的な内容だった。こういった分野でも機械学習の応用が進みつつあるのだと実感した。