質問

奇妙さから、SVM分類器をトレーニングするために使用する前に、トレーニングセットの次元を減らすことは一般的に良い考えですか?

ドキュメントのコレクションがあり、それぞれがSCIKIT-LEARNのTFIDF_TRANSFORMERによって計算されたTF-IDF重量のベクトルで表されます。用語の数(機能?)は60k近くであり、約2.5milのドキュメントで構成されるトレーニングセットでは、トレーニングプロセスが永遠に続くようになります。

トレーニングに永遠に取ることに加えて、分類はおそらく間違ったモデルのために正確ではありませんでした。私が何を扱っているのかを知るために、私は何らかの形でデータを視覚化する方法を見つけようとしました。また、SCIKIT-LEARNを使用してSVDを使用してドキュメントマトリックスを(M、2)マトリックスに分解しました(他の方法を試してみたいと思いましたが、すべて途中でクラッシュしました)。

これが視覚化がどのように見えるかです

Result of SVD

それで、一般的に次元を減らし、SVMを続行することは良い習慣ですか?また、この場合、分類器の精度を改善するために何ができますか? Sklearn.svm.svcを使用しようとしています kernel='poly', 、 と degree=3 そして、完了するのに非常に長い時間がかかります。

役に立ちましたか?

解決

モデルの寸法の数を心配するよりも、SVMの機能の選択と表現について考えることにもっと時間を費やすことをお勧めします。一般的に言えば、SVMは情報のない機能に対して非常に堅牢である傾向があります(例を参照 ヨアヒムス、1997年, 、 また ヨアヒムス、1999年 素敵な概要については)。私の経験では、SVMは、ナイーブベイズなどの他のアルゴリズムと同じように、機能選択に時間を費やすことから利益を得ることができません。 SVMで見た最高の利益は、計算可能な方法で分類ドメインに関する独自の専門知識をエンコードしようとすることから来る傾向があります。たとえば、タンパク質間相互作用に関する情報が含まれているかどうかについての出版物を分類していると言います。単語の袋で失われ、TFIDFのベクトル化アプローチは近接の概念です。ドキュメントで互いに近くで発生する2つのタンパク質関連の単語は、タンパク質 - タンパク質の相互作用を扱うドキュメントに見られる可能性が高くなります。これは$ n $ -GRAMモデリングを使用して達成することがありますが、特定しようとしているドキュメントの種類の特性について考える場合にのみ使用できるより良い選択肢があります。

まだ機能の選択を試みたい場合は、 $ chi^{2} $をお勧めします (カイ2乗)機能の選択。これを行うには、目標に関して機能をランク付けします

begin {equation} chi^{2}( textbf {d}、t、c)= sum_ {e_ {t} in {0,1}} sum_ {e_ {c} in {0、 1}} frac {(n_ {e_ {t} e_ {c}} - e_ {e_ {t} e_ {c}})^{2}}} {e_ {e_ {t}} e_ {c}}}、 end {equation}ここで、$ n $は$ textbf {d} $の用語の観測周波数、$ e $は予想周波数、$ t $と$ c $はそれぞれ項とクラスを示します。あなたはできる これをSklearnで簡単に計算してください, 、あなたがそれを自分でコーディングする教育体験を望まない限り$ ddot smile $

他のヒント

TFIDFベクトルでPCAを実行している間 またはまれな単語を排除することは、次元を大幅に減らす可能性があります、試してみたいと思うかもしれません トピックモデリング.

トピックを作成し、ドキュメントにトピックを割り当てるという最初の問題は、高次元空間に残りますが、監視された部分はトピックスペースにあります。

の迅速な実装がたくさんあります LDA 同様のトピックモデル。

非常に多くのトレーニングベクトルのSVMには非常に長い時間がかかり、多くのメモリがかかります[o(n^3)時間とo(n^2)スペース, 、nはnoです。トレーニングベクターの]。 GPUスピードアップを備えたSVMライブラリを使用できます。これは少し役立つかもしれません。以前の投稿で述べたように、SVMにとって機能はあまり重要ではありません。

あなたのC値は何ですか? Cのいくつかの値の場合、さらに時間がかかります。いくつかのベクトルとグリッド検索で調整してみてください。

ニューラルネットワークは、このような巨大なデータセットからよく学習し、RBMと相まって良い結果が得られるはずです。または、袋詰め/xgboostまたはその他のランダムフォレスト/決定ツリーを試すことができます アンサンブルメソッド. 。驚くほど優れており、非常に高速である可能性があります(SVMと比較して)。

また、これは重要ではないかもしれませんが、コメントするのに十分な評判がありません。これはどのような視覚化ですか?これがあなたに良い考えを与えないなら、あなたは試すことができます MDS, 、 多分?

ライセンス: CC-BY-SA帰属
所属していません datascience.stackexchange
scroll top