gpt4 book ai didi

python - 管道在 sklearn python 中给出不同的答案

转载 作者:行者123 更新时间:2023-11-30 09:00:31 26 4
gpt4 key购买 nike

我编写了两个程序,它们应该遵循相同的逻辑。但两人给出了不同的答案。

首先-

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)

第二-

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。为什么两者不同?

最佳答案

您的第二个代码无效,因为您的“预处理”使缩放器适合测试集,这不应该发生。另一方面,管道仅将 RobustScaler 适合您的训练数据,然后在测试数据上调用“转换”。

关于python - 管道在 sklearn python 中给出不同的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41210054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com