機械学習--テーマモデル&不良解答の検出

1567 ワード

一、テーマ研究
1、潜在ディリクレイ分配
sklearnは潜在的なディリクレイ割り当てをサポートせず、pythonのgenismパッケージを使用できます.
2、疎性
大きなマトリクスやベクトルがある場合、基本的にほとんどの値は0です.そのため、いつでもデータの一部しかない場合に関連しています.
3、テーマ数の選択
トピックモデルは通常、ターゲット向けのターミナルサービスです.この場合、どのパラメータを具体的に選択したかは必ずしも重要ではありません.異なるトピック数やパラメータ値がほぼ同じ効果を得るシステムです.
トピックモデルを使用すると、単純なクラスタリングよりも、各ドキュメントを複数のグループに表示できます.これらの技術は画像にも用いることができ,ほとんどの現代計算機視覚研究において,テーマモデルは非常に重要である.
この部分は機械学習アルゴリズム研究の最前線に属する.
二、質の悪い答えを検査する
方法A
1、KNNアルゴリズム
from sklearn import neighbors
knn=neighbors.KNeighborsClassifier(n_neighbors=2)
2、フィーチャーエンジニアリング(答えのハイパーリンク数を表示し、答えの品質を表す.多ければ多いほど良い--ツールライブラリ(beautifulsoup)
3、訓練分類器
4、分類器の性能を評価する
from sklearn.cross_validation import KFold
scores=[]
cv = KFold(n=len(X), n_folds=10, indices=True)
for train,test in cv:
	X_train,y_train=X[train],Y[train]
	X_test,y_test=X[test],Y[test]
	clf=neighbors.KNeighborsClassifier()
	clf.fit(X,Y)
	scores.append(clf.score(X_test,y_test))
print("Mean(scores)=%.5f\tStddev(scores)=%.5f"%(np.means(scores,np.std(scores))))

5、より多くの特徴を設計する
AvgSentLen,AvgWordLen,NumAllCaps,NumExclams
6、効果を上げる
1)より多くのデータを増加する;2)モデルの複雑さを考慮する.3)特徴空間を修正する;4)モデル変更
重要な点:偏差-分散折衷
高偏差:より多くのフィーチャーを追加し、モデルをより複雑にします.
高分散:より多くのデータを取得するか、モデルの複雑さを低減します.
方法B:1、論理回帰を採用する
from sklearn.linear_model import LogisticRegression
clf=LogisticRegression()
clf.fit(x,y)
異なる正規化パラメータCを用いて異なる正解率が得られ,小さいcは大きな罰をもたらし,モデルをより複雑にする.
2、分類器のために痩せる
係数:clf.coef,1つの特徴の係数が高いほど,この特徴は投稿の良し悪しを決定する過程で大きな役割を果たす.