Python机器学习功能

时间:2017-05-31 17:01:45

标签: python machine-learning

如果这是一个非常愚蠢的问题,我很抱歉,但我对机器学习概念很陌生。

我是否可以使用python机器学习中的一项功能来为其提供一组输入并告诉它最终产品应该是什么,并让代码弄清楚应该使用哪种功能来达到最终产品?

再一次,对不起,如果这是一个非常基本的问题。谢谢大家。

8 个答案:

答案 0 :(得分:4)

问题真的很模糊。

仍然如你提到机器学习标签。我把它当作机器学习问题。在这种情况下,没有特定的模型或算法可用于确定哪种算法/功能最适合您的数据!!

它的受欢迎程度试用方法来确定哪种模型最适合您的数据。因此,您将编写一个包装程序,该程序将使用所有可能的模型测试您的数据,并根据其准确度分数,您的代码将决定哪种模型最适合。 !

答案 1 :(得分:2)

如果你是新手我会建议你scikit学习并从决策树开始是最简单的,但一个好的开始方式,因为一旦你包括scikit学习它只有一行训练你基本模型:

所以fisrt install scikit-learn 并导入它被称为" sklearn" :from sklearn import tree

使用:

创建它
#init
clf = tree.DecisionTreeClassifier()

然后训练模型:

clf.fit(inputs,output)

并使用以下方法预测新/未知值:

clf.predict(value)

它会给出相当准确的"输入和输出之间简单关系的值,但有时您可以通过手写代码自行获得更好的结果。

否则你可以使用真实机器学习概念与scikit学习或其他像tensorflow,theano等。 但是你应该先尝试我之前说过的话,因为它就像是机器学习中的一个hello world程序。

答案 2 :(得分:1)

我不认为这是一个提出这类问题的完美场所。还有一些其他网站可以提出这类问题。

对于学习机器学习(ML),做一个基本的ML课程并关注博客。

答案 3 :(得分:1)

如果您刚刚开始学习ML,那么首先应该了解关于Python提供的不同科学库的想法。最重要的是,您必须从对各种可用在线资料或ML课程进行的机器学习建模的基本了解开始。

FYI ..在python中没有可用的此类功能,它可以为您提供有关模型的信息,该模型非常适合特定的数据集。通过检查不同的统计/模型参数,完全取决于您要为数据集选择一个好的模型的分析能力。

答案 4 :(得分:1)

您所说的是监督学习。机器没有直接方法自行自行决定型号。但是,是的,您可以通过多种方法根据性能来比较不同的模型。

但是首先,如果您真的想在ML方面表现出色,那么首先您应该了解数据集,以猜测应该使用哪种模型。例如,线性回归用于根据连续变量估算实际价值(任何商品的成本,工资,总销售额等)。 Logistic回归用于基于给定的一组独立变量来估计离散值(二进制值,如0/1,是/否,是/否)。

如果选择了正确的模型,那么可以,可以通过一些方法通过参数调整获得更好的模型性能。一种方法是使用XGBoost(https://xgboost.readthedocs.io/en/latest/index.html

答案 5 :(得分:1)

为总结您的问题的答案,在提出任何技术细节之前,我建议您先尝试简化要解决的问题。我已经看到许多数据科学家在付出过多的努力以使自己相信机器学习是对他们的问题的答案方面犯了错误。

在这里,我尝试详细回答您的问题:

首先,您需要问自己(和您的公司/组织)要从机器学习中获得什么。您在寻找什么结果?

可能有两种类型的问题:

A。技术问题

  1. 机器学习可以解决这个问题吗?
  2. 我们有数据吗?

    • 我们有所有必要的相关数据吗?
    • 是否有足够的数据量来开发算法?
    • 数据收集是否正确?
    • 数据是否以正确的格式保存?
    • 信息访问是否得到保证?
  3. 我们可以通过ML满足所有业务问题吗?

B。业务问题

  1. 组织的业务目标是什么?
    • 要降低成本并增加收入?要提高效率?
    • 为了避免风险?要提高质量?
  2. 开发ML是否值得?
    • 短期内?从长远来看?
    • 成功指标是什么?
    • 如果项目失败,我们可以承担风险吗?
  3. 我们有资源吗?
    • 我们有足够的时间来开发ML吗?
    • 我们有合适的人才团队吗?

根据情况可能还会有更多问题。如果您正在从事自己的项目或研究,则需要能够以某种方式准确地回答所有这些问题。

在获得所有答案之后,您可以决定是否进行机器学习开发。根据我的经验,理论上,我们世界上没有很多东西无法通过机器学习来解决。当我们切实地期待它时,就会出现问题,尤其是关于可用数据

通常,根据所拥有的数据,您可以研究ML的不同样式。通常,如果您具有标记的数据(将其视为您已经很好地理解的数据),那么受监督的 ML可能对您有益。另一方面,无标签数据通常需要无监督 ML。如果您的数据是从虚拟测试,游戏或模拟中收集的,则可以查看加固。如果您有大数据(将其读取为“大数据”)并且只关心输出(而不是算法本身),则深度学习可能是一个正确的选择。

选择ML的样式后,您需要确定要查找的输出类型。例如,您要输出True / False,还是要查找数据点之间的相似度或接近度?根据所需的输出类型,您可以选择ML的类型。

最后,您可以选择适当的算法来获取更多详细信息。应该明确地执行此操作,因为它取决于许多因素,从数据类型数据量输出类型。因此,正如您所看到的,没有简单的代码可以向您展示最佳算法。

也许您可以先看看scikitlearn algorithm cheat sheet

enter image description here

希望您能对我的回答有所帮助。

答案 6 :(得分:0)

由于您是新手,所以从基础入手将是不错的选择。对于初学者,请考虑以下图像: enter image description here

机器学习过程遵循某些步骤。首先是进行数据处理>预处理(将数据转换为正确的格式以编辑/创建图表/提高可读性)>然后从数据中了解您要查找的内容>是分类还是回归问题>将数据分为2部分,即训练和测试数据>训练数据具有所有输入以及输出。训练数据的作用是,它有助于ML算法权衡重要特征的值。测试数据没有提供输出,其任务是使用训练数据中的训练来预测结果。 >一旦了解了所需的结果,就可以浏览适合您问题的不同ML算法(库将提供所有实现!)或将所有算法应用于数据集并找到准确性>选择具有更高准确性的算法良好的偏差差异权衡。

回到您的问题,让代码找出正确的功能。不,它不能那样工作,我们需要应用不同的功能(ml库)以找到最佳功能。但是它超级容易和有趣! 您也可以在Coursera上查看ML课程,以获得动手操作的ML,如果这一切对您来说看起来都很希腊和拉丁。

答案 7 :(得分:0)

从您的问题中,我了解到您有一个结果,并正在尝试找到达到该目标的最佳算法。不幸的是,据我所知,您必须自己比较不同的算法,以了解哪种算法具有更好的性能。 但是,如果您只希望为自己的用例获得合适的算法,但不确定要在哪种广泛的分类中开始寻找算法,那么建议您阅读有关机器学习的不同类型(分类/回归),并然后在用例与算法如何执行任务之间建立关系。以此为基础,您可以微调搜索。