两种情况使用相同的输入,但 python 模块返回不同的结果
这是将结果返回到 Web 服务的 python 脚本:
import pandas as pd
import sys
def get_segments(dataframe):
dataframe['segment']=dataframe['segment'].astype('str')
segments = dataframe.loc[~dataframe['segment'].duplicated()]['segment']
return segments
def azureml_main(dataframe1 = None, dataframe2 = None):
df = dataframe1
segments = get_segments(df)
segmentCount =segments.size
if (segmentCount > 0) :
res = pd.DataFrame(columns=['segmentId','recommendation'],index=[range(segmentCount)])
i=0
for seg in segments:
d= df.query('segment ==["{}"]'.format(seg)).sort(['count'],ascending=[0])
res['segmentId'][i]=seg
recommendation='['
for index, x in d.iterrows():
item=str(x['ItemId'])
recommendation = recommendation + item + ','
recommendation = recommendation[:-1] + ']'
res['recommendation'][i]= recommendation
i=i+1
else:
res = pd.DataFrame(columns=[seg,pdver],index=[range(segmentCount)])
return res,
在实验中它返回实际的 itemId,在网络服务中它返回一些数字
此代码的目的是按分割列透视某些表以进行推荐
最佳答案
与微软产品团队讨论后。问题得到解决。 产品团队首先推出了 Web 服务的更新,后来才推出了 ML-Studio,修复了“执行 python 脚本”中的分类属性问题。 该问题处于流程的早期阶段,与上面的 python 代码无关。
关于python - azure ml 实验返回与 webservice 不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38189399/