2017-12-13 11 views
1

私は自分のデータのトレーニングとテストにsklearnライブラリを使用しています。SGDClassifier with predict_proba

targetDataCsv = pd.read_csv("target.csv","rt")) 
testNormalizedCsv = csv.reader(open("testdf_new.csv","rt",encoding="utf-8")) 
traningNormalizedCsv = pd.read_csv("traindf_new.csv", skiprows=1,nrows=99999) 
df = pd.read_csv("testdf_new.csv", skiprows=1, nrows=9999) 

私のトレーニングデータには200000を超える行があるので、SGDClassifierのpartial_fitメソッドを使いたいと思っていました。

X = traningNormalizedCsv.values 
y = targetDataCsv.values 
clf = SGDClassifier() 
clf.partial_fit(X, y) 

しかし、この分類器には、テストデータのターゲット確率を得るためのpredict_probaメソッドがありません。

clf.predict_proba(df.values) 

お勧めします。

答えて

2

ご覧のとおり、doc - この方法は、ログの消失と変更されたフーバー・ロスに対してのみ使用できます。

したがって、あなたの損失機能を変更する必要があります。例えば

from sklearn.linear_model import SGDClassifier 
import numpy as np 
X = np.random.random_sample((1000,3)) 
y = np.random.binomial(3, 0.5, 1000) 
model = SGDClassifier(loss="modified_huber") 
model.partial_fit(X, y, classes=np.unique(y)) 
print(model.predict_proba([[0.5,0.6,0.7]])) 

出力:[0 0 1 0]

関連する問題