2019年3月11日月曜日

Imbalanced 'test' data

Imbalanced dataset の学習時には、前処理として under/over sampling を使用します。

では、test データはどうするのか?今まで考えてきませんでした。
現実問題への適用を考えると、未調整の test データを使って評価するのが当然なのでしょう。が、メジャークラスを足すほど評価指標は良好な値を示すでしょう。ま、値が上りにくい macro 平均等を使うべきなのでしょうね。

と思いつつ調べてみましたが、なかなか書き物が見当たりませんでした。当たり前すぎるのでしょうか?
調べていると、以下のサイトを見かけました。同じことを疑問に思われる方がいらっしゃったようです。
https://datascience.stackexchange.com/questions/17873/imbalanced-dataset-how-to-deal-with-test-data

どうやら、未調整の test データを使用するのが無難なですね。Average accuracy を勧められていますので、Macro 平均で良いでしょう。
試してみましょう。

****************************************
20190325追記
足せば足すほど、評価指標は落ちました。
マイナークラスを検出しやすいように調整したモデルでは、メジャークラスの誤判定が増えました。


2019年3月3日日曜日

自然言語処理

twitter のつぶやきや位置情報を収集・利用しようとされている方々を見かけます。

災害前後の雑多なつぶやきから、有益な情報を抽出するといった目的でしょう。
そういえば国土交通省さんも利用しようとされていましたね。当時は意外だったのですが、どうなったのでしょうか?http://www.nilim.go.jp/lab/scg/sns/news20140714.pdf

twitter からのスクレイピングには制限があったこと、特に有益な利用法を思いつかなかったことなどから、手を出していませんでした。自然言語処理自体にもあまり興味を持っていませんでした。が、動向も気になるので、少し調べてみました。

案外、簡単でしたね。
日本語なら分かち書き、ベクトル化(Word2Vec:keras.layers.embeddings など)、2D 図化(WordCloud)、3D図化(TensorBoard Embedding Projector)。数値にしてしまえば、あとは通常処理と変わりません。回数をカウントしたり、距離の近接で表現したり。裏で数値化していますので、「King - Man + Woman = Queen」腑に落ちます。案外、面白いかも。

皆さん自然言語処理への関心が高いようで、図化はオンラインでもできるようになっています。進んでいますね。
いくつかサイトを試してみました。環境白書2018の英語版です。


Embedding Projector もオンラインであります。https://projector.tensorflow.org/
3Dプロットが簡単にできます。最近、数値データの主成分分析結果を3次元プロットする機会があったのですが、基本はこれと同じですね。
以前、NHKスペシャルで「健康」等とつながるキーワードの位置関係を3次元表示していましたが、まさにこれでした。当時、どうやって関係性を図化したのか疑問でしたが、やっと理解できました。

自然言語処理、面白そうですね。