1
私は同じロジックに従うことになっている2つのプログラムを書いています。しかし両者は異なる答えを出している。パイプラインはsklearn pythonで別の答えを与えます
初段
train_data = train_features[:1710][:]
train_label = label_features[:1710][:].ravel()
test_data = train_features[1710:][:]
test_label = label_features[1710:][:].ravel()
def getAccuracy(ans):
d = 0
for i in range(np.size(ans,0)):
if(ans[i] == test_label[i]):
d+=1
return (d*100)/float(np.size(ans,0))
estimators = [('pps', pps.RobustScaler()), ('clf', LogisticRegression())]
pipe = Pipeline(estimators)
pipe = pipe.fit(train_data,train_label)
ans = pipe.predict(test_data)
getAccuracy(ans)
2番目に
train_data = train_features[:1710][:]
train_label = label_features[:1710][:].ravel()
test_data = train_features[1710:][:]
test_label = label_features[1710:][:].ravel()
def getAccuracy(ans):
d = 0
for i in range(np.size(ans,0)):
if(ans[i] == test_label[i]):
d+=1
return (d*100)/float(np.size(ans,0))
def preprocess(features):
return pps.RobustScaler().fit_transform(features)
train_data = preprocess(train_data)
clf = LogisticRegression().fit(train_data,train_label)
test_data = preprocess(test_data)
ans = clf.predict(test_data)
getAccuracy(ans)
まず一つは80.81を与え、もう一つは84.92を与えます。なぜ両者は違うのですか?
ありがとうございました – manish