机器学习项目代做 – 机器学习代写 – Machine learning
机器学习项目代做

机器学习项目代做 – 机器学习代写 – Machine learning

机器学习项目

 

 

机器学习项目代做 大数据集可以包含各种子组。这些小组的质量可能彼此完全不同。在监督学习模型中,每个子组在结果和预测变量之间可能具有不同的关系。这就提出了一个如何产生最佳预测的问题。一些选项(包括其他选项)包括:一个模型:将所有子组汇总为一个数据集,该数据集用于通知单个模型的构建。许多模型:基于整体···

 

子组中的建模:一个模型还是多个模型? 

大数据集可以包含各种子组。这些小组的质量可能彼此完全不同。在监督学习模型中,每个子组在结果和预测变量之间可能具有不同的关系。这就提出了一个如何产生最佳预测的问题。一些选项(包括其他选项)包括:

  • 一个模型:将所有子组汇总为一个数据集,该数据集用于通知单个模型的构建。
  • 许多模型基于整体数据的相应子集为每个子组构建一个单独的模型。

这些不同的方法具有各自的优点和缺点:

  • 一个模型:建立,使用,修改和维护一个模型更加容易。可以使用更大的总体样本量。但是,单个模型将假设所有子组中每个预测与结果的关联都相似。
  • 许多模型:子组中的建模可以提供该子组中预测变量与结果之间关系的定制估计。这样可以使整个模型具有不同的效果。但是,每个子组的模型都必须基于较小的样本量。开发,使用和修订多个模型也可能需要大量的工作。

其他建模策略可以在这两种方法之间提供策略。利用子组和其他变量之间的交互作用项可以允许开发一个模型,同时仍在子组中产生不同的关系。但是,这样的模型可以非常迅速地创建许多难以使用的项,并且随着引入更多的交互作用,样本量相对于预测因子数量的比率将减小。

在这个项目中,我们将采用一种实用的方法来评估哪种建模策略可以带来最有效的预测的问题。使用真实的数据集,我们将设计一个实验来回答是否使用一个模型或多个模型的问题。

环境:预测患者生存率  机器学习项目代做

对于这个项目,我们将使用麻省理工学院的GOSSIS(全球开源疾病严重程度评分)中的患者健康数据。该数据集用于由Kaggle主持的2020年全球数据科学女性黑客马拉松(https://www.kaggle.com/c/widsdatathon2020/overview)中。该数据集包含有关130,000例重症监护病房(ICU)访问次数的信息。我们的目标是根据这些ICU拜访信息,建立一个预测患者生存率的模型。

数据

您可以在此处通过比赛网站访问数据(https://www.kaggle.eom/c/widsdatathon2020/ data)。标有“training_v2.csv”的文件是我们的训练数据和“unlabeled.csv”是竞争的evaluation数据集(无标签)。有关功能的详细说明,请参阅“ WiDS Datathon 2020 Dictionary.csv”。

培训和测试集

首先,我们将数据(“ training_v2.csv”)随机分为训练和测试集(80/20)。对于单一模型方法,您可以使用训练集训练和调整模型,并根据测试集进行预测。对于“多模型”方法,您将训练集和测试集按子组划分,仅使用子组训练集对模型进行训练和调整,并预测子组测试集。

对抗验证

在某些情况下,我们的培训和测试集似乎并非来自同一分布(not i.i.d.).。例如,某些功能可能具有较高的基数,并且当我们将它们随机分为两组时,这些功能似乎并不是来自同一分布。我们应该从建模中忽略那些特征,因为它们会导致偏差的预测。识别这些功能的方法称为对抗验证您可以在此处了解更多信息(https://www.kdnuggets.com/2016/10/adversarial-validation-explained.html 。使用对抗性验证来识别和删除可能无法很好地推广到整个数据集的特征。

本实验  

每个项目将通过适合各种机器学习程序来独立评估是使用一个模型还是使用多个模型的问题。

结果

每个模型的结果将是患者是否存活(1或TRUE)(0或FALSE)的二进制表示。

分类方法

每个模型将用于分类患者是否存活(hospital_death)。返回的值将是:

  • 1(或TRUE):患者存活。
  • 0(或FALSE):患者未存活。

您选择的模型必须直接执行此分类,或者必须将预测的概率重新编码为分类。

型号类别  

您必须从以下列表中的5个不同类别中选择模型,并在R中推荐包装:

  • K个最近邻居(包:类;功能:knn)
  • 逻辑回归(功能:glm)
  • 套索,岭或弹性净回归(包装:glmnet;功能:glmnet)
  • 决策树(软件包:rpart;功能:rpart)
  • 随机森林(包装:randomForest;功能:randomForest)
  • 增强模型(包装:gbm;功能:gbm或包装:xgboost;功能:xgb oost)
  • 支持向量机(软件包:el071;功能:svm)
  • 神经网络(包:nnet;功能:nnet)

您不需要使用推荐的软件包;其他包装也是可以接受的。

实验小组:年龄  机器学习项目代做

年龄变量将用作评估适合一个模型(基于所有数据)或适合多个模型(针对每个年龄子组一个)的相对优点的基础。

年龄分组可以定义为:[0-50),[50-60),[60-70),[70-80),[80-100)。下表总结了按年龄段划分的观察次数。请注意,年龄变量中缺少4228个值,请从模型中忽略这些观察值。

年龄阶层 #Obs。
[0-50) 18012
[50-60) 15918
[60-70) 20052
[70-80) 19463
[80-100) 14040
不适用 4228

 

您选择的5个模型中的每一个都将以两种方式拟合:作为一个模型和作为多个模型。

  • 一个模型:您将适合一个包含所有训练数据(包括所有年龄子组)的模型。
  • 许多模型您将在训练数据的每个子集上使用单独的模型,每个年龄子组都使用一个模型。

这两个模型应尽可能具有可比性。预测变量和公式的列表应相同。唯一的例外是,年龄不能作为多模型方法的任何子组中的预测变量包括在内。此外,虽然允许交互项,但年龄与其他变量之间的交互不得用于“多模型”方法。单一模型方法允许进行交互。这将确保“一个模型”与“多个模型”之间的比较尽可能公平。此外,“一个模型”和“多个模型”的每个对应拟合还必须具有相同的参数规范(或使用相同的自动化方法来选择参数)。

建立所有模型  机器学习项目代做

选择5种模型类别和2种形式(一种模型和多种模型),您将生成10组不同的预测。这将包括使用“一个模型”方法的5组预测和“使用多模型”方法的5组相应的预测。

评估模型

对于任何建模类别的任何单一版本,将采取以下步骤:

  • 适合训练集:模型将适合相关训练数据。一种模型方法将适合所有训练数据,而许多模型方法将针对训练数据中的每个子年龄组分别拟合。
  • 预测分类每种模型都会对相关测试数据生成预测。一种模型方法将对所有测试数据进行预测,而许多模型方法将针对测试数据的每个子组生成单独的预测(使用训练数据中该年龄子组的相应模型拟合)。来自多个模型的预测将汇总在一起,以形成整个测试集的一组总体预测。
  • 评估:将每个预测集与测试集的结果进行比较。正确分类的比例(0到1之间的十进制数字)将用作质量指标。该比例的较大值表示更好的预测。

计分板

您需要在以下形式的记分板上显示实验结果:

建模类型应包括与您在5个类别中选择的算法相对应的值。

该表应按比例列之一的降序排序,以在第一行中显示最佳的整体预测。请将结果四舍五入为合理的位数(例如2、3或4)。使用DT包中的datatable函数描述该表将创建一个可排序的HTML表。

细节  

  • 单个项目:该项目将单独完成。
  • 合作政策您不得与他人讨论您的项目。可以与教学人员联系以进行合理的说明,但是您执行的工作必须属于您自己。
  • 资料来源:您可以使用任何公开的书面资源来提供帮助,但请引用您的资料来源。
  • 提交材料:您必须以RMarkdown格式编写报告。请提供代码文件(Rmd格式)和输出文件(首选HTML)。我们提供了一个模板文件来帮助您入门。最终报告应该是中等长度(约2000-3000字,没有严格的EN 强制)。包括您使用的所有代码,并显示任何相关的表格,图解或其他补充材料。

在您的报告中,您需要详细说明为达成解决方案所要采取的每个步骤。请说明您获得的结果的理由或解释。报告还应包括您从执行该项目中学到的经验教训。

报告

您构建的5个模型类别中的每一个都应在单独的部分中进行汇总。概述应包括几段书面内容以及所使用的编程代码。显示用于使模型适合训练数据,在测试集中生成预测并评估结果准确性的代码。提供有关所选参数的任何详细信息。说明为什么选择此技术,有关其工作原理的一些详细信息,以及有关其优缺点的简短讨论。

该报告应采用强调说明清晰的风格来编写。尽管我们鼓励您在报告中显示代码,但书面内容应易于理解且易于理解。它应包括“简介”部分并以“讨论”部分作为结束。简要解释模型的结果以及可以从发现中得出哪些结论。您可能还会探索一些相关的问题:“一个模型”和“多个模型”方法的结果有何不同?这些亚组的样本量对结果有多大影响?您是否担心装配太多模型的可能性?或者随时提出并解决其他问题。

等级  

该报告将基于多种因素进行分级:

  • 数据拆分和模型评估训练和评估不同模型类型的性能。
  • 实现的质量生成可在概念上构建无错误模型的代码。
  • 编码实践:编写具有良好风格的代码。
  • 可重复性:生成结果的方式易于他人理解和复制。
  • 遵守规则:创建符合指定要求的解决方案。
  • 交流质量:解释和展示方法和结果的程度。

我们不会根据方法的整体准确性对报告进行特定分级。但是,应该满足一些合理的质量标准。

获得我们指定的规则内高品质的结果,并提供清晰的记述更重要的是你的工作系统蒸发散 但是,我们不会为详尽的探索,更多的页面或更多的模型分配额外的功劳。您可以随时考虑这些可能性,但该报告应仅侧重于所选的5个型号和所选的3个版本。

计算提示 

数据中的样本大小和特征数量可能会带来计算难题。对于某些模型而言,运行几分钟或更长时间并非不合理。一些技术比其他技术需要更多的计算资源。在这种情况下,逐渐建立模型可能是一个好习惯。从相对较小的样本量开始(例如100-500个随机选择的行)。测试方法以确保较小的模型正常工作。您可以使用Sys.time()函数来记录运行模型之前和之后的时间。查看在不同样本量下流逝了多少时间。尝试了解提供所需样本量后模型将运行多长时间。如果计算被证明是繁重的,选择易于实现的模型也是公平的。

我们建议您使用有意义的名称来组织数据,这将有助于简化工作。

生成预测的一个棘手的方面是理解随机森林的的工作预测FUNC 重刑 。每种建模技术都有其自己关联的预测方法。例如,randomForest包中的Random Forest模型具有一种称为predict.randomForest的预测方法。这是值得的同时学习的帮助文件这些方法,因为有时候参数来供应有他们的名字和形式有些变化。然后,也有必要检查预测的输出以确保它们符合您的期望。通常在预测中提供参数类型将导致正确的(数字)输出,尽管这可能需要其他步骤来确保结果是分类。其他类型可能导致输出的结果形式不正确,无法评估该方法的预测。

因为您将在多个子组上使用相同的模型,所以我们建议您开发可简化工作的功能。这还将提高代码的可重复性和可读性。这可能包括以下步骤:

  • 对于每个建模类别,编写一个自定义函数,该函数将使该模型适合特定的数据集并在测试集上生成预测。
  • 然后,对于任何一个模型,将有助于编写一个适合该子模型的函数。这可能很简单,例如使用for循环遍历子组并为上一点中描述的那个模式调用自定义函数。

考虑到所有这些,应该有可能使所有工作都在相对较少的处理功能中进行:

  • 建模功能每个模型最多可以包含1个,总共5个。
  • 迭代功能这将是贯穿子组的1个功能。
  • 评分功能这可能是1个功能,用于计算正确分类的百分比。

同时,应该强调的是,生成20组预测可能很耗时。尤其是随机森林模型可能处理得非常慢,尤其是在使用大量预测变量的情况下。在RMarkdown中重新运行报表可能需要大量时间。请注意这一点,尤其是在临近截止日期的时候。这可能有助于保存您的版本的单独文件,以便您的早期工作不会被覆盖。我们还建议创建一个易于阅读和理解的报告。建模过程中不应包括任何冗长的技术输出。相反,应使用报告的所有技术方面来帮助传达您的工作故事。可以通过在代码块中设置诸如echo = FALSE,message = FALSE,warning = FALSE等值来抑制代码输出的某些元素。或者,capture.output函数可用于删除打印的编码消息(例如,插入符号库中的火车函数的A)。

 

更多代写:java程序代写 Gre代考 lab代写 essay代写  网课代刷 Python作业代写

合作平台:天才代写 幽灵代  写手招聘  paper代写

发表回复