らんだむな記憶

blogというものを体験してみようか!的なー

決定木 (5)

そろそろコードを見ていきたいが、その前に Python機械学習プログラミング 達人データサイエンティストによる理論と実践 - インプレスブックスディープラーニングにも通じる極めて重要なことが書いてあるのでメモしておきたい。それは p.92 にある。

だが、適切な学習アルゴリズムよりもさらに重要なのは、トレーニングデータセットにおいて利用可能なデータである。いかなるアルゴリズムも、情報として有益で識別性のある特徴量がなければ、予測を適切に行うことはできないだろう。

特徴量エンジニアリングの重要性が書かれている。ディープラーニングの場合、分類性能を最大化するような特徴量はネットワークが抽出できるように訓練を通じてパラメータ更新がされる。但し、ネットワークとデータセットの情報によっては良い特徴量が抽出されていないのではないかと感じることがしばしばある。このような場合、どうやっても分類性能が上がらないことがあるように感じる。多少泥臭くは感じるが、どこで誤分類が発生しやすいかを精査し、その情報をもとにデータセットに前処理を施して調整を入れると分類性能が向上するようには思う。例えば、あまりに取り違えが多いクラス A, B は最初からラベルを同じ C にしておくとかである。そうしておけば、C に分類されたオブジェクトを後から別の二値分類ネットワークで A, B に振り分けるといったこともできる。あまり単一の E2E のネットワークで全部済ませようとすると厳しいこともあるように感じる。