復習がまだ済んでないけどブログを書いてとりあえず供養する
問題概要
求人広告の文章が与えられるので,広告に part-time-job
や hourly-wage
などの12種類のタグを付与しろ
ただし, part-time-job
と full-time-job
のように同時に付与されない排他的なタグも存在する
採点方法は12種類のタグのprecisionとrecallの総和からF値を計算する
www.hackerrank.com
方針
やったことを時系列順に
深層学習
深層学習試せばいけるやろwという気分になる.この時は12種類のタグに対して独立に採点されることを認識しておらず,12種類のタグを sigmoid_cross_entropy
同時に予測しようとする.スコア 284.62
問題文を確認する
問題文を確認して12種類のタグをそれぞれ予測してもいいこと知る.排他的なグループ内で素性BoWでSVMを使って多値分類してみる.スコア 460.04
トップはスコア700超えていてすごいなあ
ググった結果 scikit-learn
の OneVsRestClassifier
を試してみる(内部的には12回2値分類をしたことになる).スコア 476.53
つらい
素性にbinaryのBoWやtf-idfなどを試すと,binaryのBoWがいい精度を出した.スコア 544.15
おわりに
分類器に XGBoost
や ランダムフォレストを試してみるがだめ
最終的に語彙数を増やしたり,ストップワードを除去してスコア 557.97
最終順位は242人中97位だった.悲しい
感想
機械学習の手法を色々試したりしてただけで,1週間が過ぎてしまってエラー分析とかが全くできなかった…
名前は聞いたことあったけど,触ったことのない機械学習ツールの使い方を覚えた
NLPの趣味なので,lemman化などの前処理を知らなかったのが悔しい
こういう企業の機械学習コンペ増えてほしい