我正在通过具有自定义Python模型(简单的kNN分类)来测试Azure机器学习设计器。我想调整'k'的值并获得性能最好的模型,但是“ Tune Model Hyperparameters”模块在提供“ Create Python Model”的输出作为输入时给出以下错误。
ModuleExceptionMessage:LearnerTypesNotCompatible: Got incompatible learner type: "None". Expected learner types are: "(<TaskType.BinaryClassification: 1>, <TaskType.MultiClassification: 2>, <TaskType.Regression: 3>)".
如何设置自己的Python模型的学习者类型?可能吗我是否应该使用“ Execute Python Script”-模块对参数进行自我调整?
我的“创建Python模型”-模块脚本:
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier
class AzureMLModel:
def __init__(self, k = 3):
self.model = KNeighborsClassifier(n_neighbors = k)
self.feature_column_names = list()
def train(self, df_train, df_label):
self.feature_column_names = df_train.columns.tolist()
self.model.fit(df_train, df_label)
def predict(self, df):
return pd.DataFrame({'Scored Labels': self.model.predict(df[self.feature_column_names])})
[Tune Model Hyperparameters
模块不支持将Create Python Model
模块用作输入模型。
我的建议是探索使用azureml-sdk
的HyperDrive
调整超参数。 Here's a link作了介绍,结尾处还有Jupyter笔记本。