TFIDF機能ベクトルをSKELEARNからSGDCLASSIFIERに渡す
-
16-10-2019 - |
質問
import numpy as np
from sklearn import linear_model
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
Y = np.array(['C++', 'C#', 'java','python'])
clf = linear_model.SGDClassifier()
clf.fit(X, Y)
print (clf.predict([[1.7, 0.7]]))
#python
テストケースを提供し、トレーニングデータでトレーニングすることにより、配列Yから値を予測しようとしています。 バツ, 、今私の問題は、トレーニングセットを変更したいということです バツ に TF-IDF機能ベクトル, 、それで、それはどのように可能ですか?漠然と、私はこのようなことをしたいです:
import numpy as np
from sklearn import linear_model
X = np.array_str([['abcd', 'efgh'], ['qwert', 'yuiop'], ['xyz','abc'], ['opi', 'iop']])
Y = np.array(['C++', 'C#', 'java','python'])
clf = linear_model.SGDClassifier()
clf.fit(X, Y)
解決
これを行うと便利です Pipeline
:
import numpy as np
from sklearn import linear_model, pipeline, feature_extraction
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
Y = np.array(['C++', 'C#', 'java','python'])
clf = pipeline.make_pipeline(
feature_extraction.text.TfidfTransformer(use_idf=True),
linear_model.SGDClassifier())
clf.fit(X, Y)
print(clf.predict([[1.7, 0.7]]))
他のヒント
このブログでそれを実現する方法を見つけることができます: http://blog.christianperone.com/2011/10/machine-learning-text-feature-extraction-tf-idf-part-ii/
これは特にパートIIです。パートIでは、著者は「用語頻度」とは何かについて説明します。
パートIへのリンク。 http://blog.christianperone.com/2011/09/machine-learning-text-feature-extraction-tf-idf-part-i/
所属していません datascience.stackexchange