Mengzelev's Blog

HKUST项目讨论内容

Word count: 1,102 / Reading time: 4 min
2019/02/11 Share

问题理解

原文【来自有道机翻】

预测Sklearn程序的运行时间

在共享基础设施上高效运行分布式应用程序具有挑战性。过去的研究表明,选择合适的硬件配置可以显著提高性能和降低成本。为了选择最佳配置,需要准确地预测不同应用程序的性能。

我们考虑这个挑战的一个简化版本:预测单个服务器上机器学习程序的性能。Scikit-learn (sklearn)是一个用于python的机器学习库。提供的数据集描述了在sklearn中运行SGDClassifier的几个示例。数据集的特征描述了SGDClassifier以及用于生成综合训练数据的特征。待分析数据为SGDClassifier的训练时间。

在这个文件夹中,您可以找到一个样例训练数据集(“sample_train.csv”)。“Time”是模型的训练时间。具体来说,“n_samples”、“n_features”描述了如何使用sklearn.dataset.make_classification生成训练合成数据集。在生成数据集之后,即使用SGDClassifier进行分类。‘l1_ratio’,‘alpha’,‘max_iter’描述了sklearn.linear.model.SGDClassifier的设置。所有特性名称都遵循sklearn文档中的定义。

本项目的目标是最小化预测运行时间的误差,即您应该预测接近真实运行时间的测试集的运行时间。使用的评价指标是均方误差。您可以找到“sample_test.csv”和“sample_submission”,用于测试集和解决方案提交格式。

项目分为两个阶段:

  • 阶段1:在访问HKUST前,你可浏览样本数据集及草拟解决方案。建议您提前处理数据集并准备模型。
  • 阶段2:在您访问期间,我们将为您提供一个更大的数据集,包含更多的示例和特性。然后,您可以使用扩展的数据集处理您的解决方案。请注意,我们在阶段1中提供的数据只是一个示例,在示例数据集上建立一个准确的模型并不一定意味着在这个阶段在真实数据集上具有良好的性能。

项目的其他信息和要求:

  • 所有的训练和测试数据集都在同一个服务器上生成。
  • 不受编程语言或机器学习技术的限制。但是,您不允许运行sklearn程序来扩展训练集或预测测试集。
  • 你需要在你自己的笔记本电脑上编程和训练你的模型。

任何查询欢迎发送邮件至jxiaab @ust.hk与Jiacheng Xia联络

相关名词说明

任务概括

  • 得到一个时间关于l1_ratio, alpha, max_iter, n_samples, n_features这5个参数的回归方程
  • 将以上5个参数重新命名一下,即求$T(x_1,x_2,x_3,x_4,x_5)$

任务理解

看到这个问题,有以下两种思路

  1. 把SGDclassifier当成黑盒处理,不管SGD分类器算法的内部运作,用现有的算法作回归分析,拟合回归方程
  2. 根据SGD分类器具体运行的原理,自己确定一个时间函数

后者需要的数学知识过多,几乎是不可能做到的,而且到时候还会有一个更大、feature更多的数据集,所以采用前者

数据分析

参数解释

SGD分类器模型相关

  • penalty:惩罚函数的选择
  • l1_ratio:混合惩罚函数中l1和l2方法的比例
  • alpha:乘以正则项的常数
  • max_iter:最大迭代次数
  • random_state:随机数种子
  • n_jobs:运算使用的CPU个数,’-1’表示使用了所有的CPU

数据生成相关

  • n_samples:样本个数
  • n_features:feature个数
  • n_classes:类别的个数
  • n_clusters: 每一个分类中的团簇个数
  • n_informative:看不懂orz
  • flip_y:随机交换所属类别,越大噪声越多
  • scale:对每个值乘以一个数

演讲思路

  • 问题分析(如果已经有人讲过可以简单带过
    • 简述问题【提取关键字
    • 简要介绍一下SGDclassifier
    • 拉出我们参考的一篇论文,仿照论文决定训练模型计算
  • 我们尝试了诸多算法,决策树表现得比较好【数据可视化列举各种算法的表现情况
  • 介绍决策树
  • 对决策树进行改进【决策树,随机森林
  • 总结结果
CATALOG
  1. 1. 问题理解
    1. 1.1. 原文【来自有道机翻】
      1. 1.1.1. 预测Sklearn程序的运行时间
    2. 1.2. 相关名词说明
    3. 1.3. 任务概括
    4. 1.4. 任务理解
  2. 2. 数据分析
    1. 2.1. 参数解释
      1. 2.1.1. SGD分类器模型相关
      2. 2.1.2. 数据生成相关
  3. 3. 演讲思路