我有一个输入数据集,其中包含仅在未来已知的列,我使用它们进行训练(例如到达时间)。输入数据如下。 { "收件人地址邮政编码", “收件人地址国家代码”, “卸载日期时间”:, “卸载日期时间”, “装载米”, "应付重量", “姓名” }
我使用以下 python 代码在导入后立即转换这些列:
import os
import pandas as pd
def transform_data(df):
if 'unloadInDatetime' in df.columns and 'unloadOutDatetime' in df.columns:
# Convert to datetime if not already
datetime_format = '%Y-%m-%d %H:%M:%S.%f' # Format to include microseconds
df['InDateTime'] = pd.to_datetime(df['unloadInDatetime'], format=datetime_format, errors='coerce')
df['OutDateTime'] = pd.to_datetime(df['unloadOutDatetime'], format=datetime_format, errors='coerce')
# Extract date components and hour as integer
df['InDate'] = df['InDateTime'].dt.date
df['InTime'] = df['InDateTime'].dt.hour # Extract hour as integer
df['InTime'] = df['InTime'].astype(int)
df['OutDate'] = df['OutDateTime'].dt.date
df['OutTime'] = df['OutDateTime'].dt.time
# Other transformations
df['toAddressPostCode'] = df['toAddressPostCode'].str[:5]
df['UnloadMonth'] = df['InDateTime'].dt.month
df['UnloadWeekday'] = df['InDateTime'].dt.weekday + 1
# Calculate the duration
df['UnloadingTime'] = (df['OutDateTime'] - df['InDateTime']).dt.total_seconds() / 60
df['UnloadingTime'] = df['UnloadingTime'].astype(int)
# Filter the data
df = df[(df['UnloadingTime'] > 5) & (df['UnloadingTime'] < 300)]
df.reset_index(drop=True, inplace=True)
# Select desired columns
df = df[['UnloadingTime', 'toAddressCountryCode', 'toAddressPostCode', 'UnloadWeekday', 'UnloadMonth', 'loadingMeters', 'payableWeight', 'InTime', 'name']]
else:
print("Required columns not found in the DataFrame")
return df
def azureml_main(dataframe1=None, dataframe2=None):
# Perform your data transformation
if dataframe1 is not None:
df_transformed = transform_data(dataframe1)
else:
df_transformed = pd.DataFrame()
return df_transformed, None
从此我想使用这些列作为我的端点的输入数据: { “收件人地址国家代码” “收件人地址邮政编码” “卸载工作日” “卸载月” “装载量表” “应付重量” “银泰” “姓名” }
有什么办法可以实现这个目标吗?
我已经检查了整个流程,看看我想要使用的列是否存在,它们确实存在。在端点测试窗口中,我尝试输入所需的列,但随后弹出错误,提示“输入数据与架构不一致”。
每当您尝试对模型端点进行评分时,它都应该与训练它的端点架构相匹配。
如果不匹配,请转换输入数据,使其与端点输入架构匹配。
或者, 修改评分脚本,以与预测相匹配的方式转换输入数据并创建端点。
您可以在使用注册模型创建具有自定义评分脚本的在线端点时进行这些更改。
转到模型选项卡并打开注册的模型。 您将看到一个部署选项;单击它,系统将提示您输入一些内容。在那里,您需要上传更改后的评分脚本。
下面是一个示例脚本,您可以参考 分数.py