开发者社区 > 大数据与机器学习 > 人工智能平台PAI > 正文

在机器学习PAI现在默认输出的是TOP50特征数量,怎么能让它输出更多特征数量的权重呢?

在机器学习PAI现在默认输出的是TOP50特征数量,怎么能让它输出更多特征数量的权重呢?

展开
收起
三分钟热度的鱼 2023-06-05 15:37:32 142 0
4 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在阿里云机器学习PAI中,默认输出的确是 Top50 特征的权重,但我们可以通过设置参数来改变输出的特征数量。一般来说,这个参数被称为 numFeature。你可以尝试在代码中指定 setNumFeature(n) 来设置输出特征数量,其中 n 为你想要输出的特征数量。例如,如果你希望输出前100个特征的权重,则可以指定 setNumFeature(100)。这样就可以改变默认输出的 Top50 特征数量了。

    具体来说,如果你使用的是 PAI 的 Python SDK,可以在 LinearRegression.train 方法的参数中添加 num_feature=n 来设置输出特征数量。如果你使用的是 PAI 的 Java SDK,可以在 LinearRegressionTrainBatchOp 组件上调用 setNumFeature(n) 来设置输出特征数量。不同的 SDK 使用不同的方法进行设置,但都支持这个参数。

    2023-06-05 22:09:01
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在机器学习PAI中,您可以通过设置LGBMRegressor或LGBMClassifier的参数来控制输出的特征数量。具体来说,您可以使用feature_importances_属性来获取每个特征的重要性得分,并使用sort_values()方法按照重要性得分进行排序,然后选择前n个特征进行输出。

    下面是一个示例代码,它将输出LGBMRegressor模型的前100个特征:

    import lightgbm as lgb
    
    # 训练模型
    model = lgb.LGBMRegressor()
    model.fit(X_train, y_train)
    
    # 获取特征重要性得分并排序
    feature_importances = pd.Series(model.feature_importances_, index=X.columns)
    feature_importances = feature_importances.sort_values(ascending=False)
    
    # 输出前100个特征
    print(feature_importances.head(100))
    

    在上面的示例代码中,X_train和y_train分别是训练数据的特征和标签,X是训练数据的特征。首先,我们使用LGBMRegressor训练了一个模型。然后,我们使用feature_importances_属性获取每个特征的重要性得分,并使用sort_values()方法按照重要性得分进行排序。最后,我们输出前100个特征的重要性得分。

    您可以根据需要调整代码中的参数来输出更多或更少的特征。请注意,输出的特征数量应该根据您的数据集大小和模型复杂度进行调整,以避免过度拟合或欠拟合的问题。

    2023-06-05 21:32:02
    赞同 展开评论 打赏
  • 在机器学习 PAI 中,可以通过设置模型超参数来控制输出的特征数量。假设您使用的是 scikit-learn 库的模型训练和预测,并且使用了 L1 正则化来稀疏化权重,那么您可以通过设置正则化强度参数 C 来控制输出的非零特征数量。

    当 C 取较小值时,正则化的强度变大,将有更多的权重被惩罚为零,并输出更少的非零特征;反之,当 C 取较大值时,正则化的强度变小,将有更多的权重不被惩罚为零,并输出更多的非零特征。

    因此,您可以逐渐增大正则化强度参数 C 的值,直到输出的非零特征数量满足您的要求为止。

    具体来说,您可以尝试在训练代码中修改正则化强度参数 C 的值,并重新训练模型,观察输出的特征数量是否满足您的需求。例如,在 scikit-learn 中,可以通过以下方式设置 C 参数的值:

    from sklearn.linear_model import LogisticRegression
    
    # 定义模型并设置 C 参数的值
    model = LogisticRegression(random_state=0, penalty='l1', C=1.0)
    
    # 训练模型
    model.fit(X_train, y_train)
    

    在上面的代码中,C 参数的值设置为 1.0。您可以逐渐调大 C 的值,重复上述步骤进行模型训练,并观察输出的非零特征数量是否已经满足您的需求。

    2023-06-05 17:28:09
    赞同 展开评论 打赏
  • 那需要用op了。此回答整理自钉群“Alink开源--用户群”

    2023-06-05 15:58:55
    赞同 展开评论 打赏

人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。

相关产品

  • 人工智能平台 PAI
  • 热门讨论

    热门文章

    相关电子书

    更多
    基于机器学习的阿里智能助理-- 在电商领域的架构构建与实践 立即下载
    机器能预报多久后的天气——机器学习和可预报性 立即下载
    PAI分布式机器学习平台 立即下载