Closed Quvotha closed 3 years ago
name
, description
の特徴を抽出する今のところ Local/PB が最良である 02-12 を改造する。
まずは name
のみを対象に様々な特徴抽出方法を試す。最良の方法が見つかったら次は description
を対象に。両方で最良の方法が見つかったらそれらを組み合わせる。
name
をベクトル化:CountVectorizer + PCAname
をベクトル化:CountVectorizer + TruncatedSVDname
をベクトル化:TF-IDF + PCAname
をベクトル化:TF-IDF + TruncatedSVDname
をベクトル化:Doc2Vecname
をベクトル化:Doc2Vec + PCAname
をベクトル化:Doc2Vec + TruncatedSVDname
をベクトル化:Bertname
をベクトル化:Bert + PCAname
をベクトル化:Bert + TruncatedSVDdescription
をベクトル化:CountVectorizer + PCAdescription
をベクトル化:CountVectorizer + TruncatedSVDdescription
をベクトル化:TF-IDF + PCAdescription
をベクトル化:TF-IDF + TruncatedSVDdescription
をベクトル化:Doc2Vecdescription
をベクトル化:Doc2Vec + PCAdescription
をベクトル化:Doc2Vec + TruncatedSVDdescription
をベクトル化:Bertdescription
をベクトル化:Bert + PCAdescription
をベクトル化:Bert + TruncatedSVDname
をベクトル化:CountVectorizer + LDAdescription
をベクトル化:CountVectorizer + LDAname
をベクトル化:TF-IDF + LDAdescription
をベクトル化:TF-IDF + LDA※CountVectorizer, TF-IDF は次元数が万単位になるので次元削減を行わないパターンは実施しないこととする
name
は 2. のパターンが最も良かったが改造前の 02-12 を Local CV が悪化した。description
は 22. が最も良く Local CV と Public Leaderboard の両方で 02-12 より改善した。25. (2. と 22. のベクトルの両方を特徴量にする) は 22. よりも結果が悪くなった。name
は取り扱い注意かもしれない。なお、打消し線を引いているパターンは実施していない。PCA を scikit-learn でやるには CountVector/TF-IDF のベクトルを numpy 形式にしなければならないが、メモリをドカ食いして面倒なので放棄した。TruncatedSVD や LDA は scikit-learn の実装だとスパース形式で処理できるのでサクッと試せた。
name
は本当に役に立たないのか、以下のパターンも追加で試した。
name
と description
を半角スペース区切りで結合した文字列を CountVectorizer + TruncatedSVDname
と description
を半角スペース区切りで結合した文字列を CountVectorizer + LDA
特徴量エンジニアリングの方法は 04-27 で決定とする。
なお 04-28 で name
, description
, zipcod5
, city
等を用いた予測結果の後処理についてトライしたが LocalCV も PB も改善しなかったので後処理はナシで行く。
引き続き冒頭で述べた残り時間の使い方の中でも以下の点に取り組みたい。
残り時間の使い方
限られた残り時間で性能を高めるため、以下の 5 点を色々試していく。
name
,description
も特徴量に組み込んでみる。y
>N のN)9 で試した sample_weight も併せて使ってみる
本 issue では 1. に取り組む。
今までの submission を見るに Local の
valid_loss
は信頼できそうな気がするのでこれを改善していくことを目標にする。Originally posted by @Quvotha in https://github.com/Quvotha/aiquest2021-assesment/issues/8#issuecomment-893480191