• 机器学习工具


    机器学习工具

    参考网站:

    https://www.zhihu.com/question/20472776(知乎:学习机器学习有哪些好工具推荐?)

    http://blog.csdn.net/myarrow/article/details/50608334(CSDN:机器学习工具汇总)

     

    1. 平台VS库

     

    1. 机器学习平台

    机器学习平台提供了从头到尾完成一个机器学习项目的功能。也就是,数据分析,数据准备,建模和算法评估及选择。

     

    机器学习平台的特征有:

    • 它们提供了机器学习项目中每一个过程所需要的功能。
    • 界面可以是图形化的,也可以是命令行,平台将所有的或部分界面结合起来。
    • 它们提供功能的松耦合,你可以在特定项目中将各个部件结合起来。
    • 它们是为通用目的用途和探索而量身定制的,而不是为了速度,可扩展性和准确性。

     

    以下是一些机器学习平台:

    1. 机器学习库

    机器学习库提供了完成一个机器学习项目部分模块的功能。比如,一个库可能提供了一系列建模算法。

     

    机器学习库的特征有:

    • 它们为一个机器学习项目中一个或多个步骤提供了特定的功能。
    • 它们的接口通常是需要编程的应用程序编程接口。
    • 它们为特定用例,问题类型或环境量身定制。

    以下是一些机器学习库:

    • Python中的 scikit-learn
    • Java中的 JSAT
    • .Net中的 Accord Framework

     

    1. 机器学习工具界面

     

    另一种区分机器学习工具的方式是根据它们提供的界面。

    这可能令人迷惑,因为一些工具提供了多个界面。然而,这可能为你挑选机器学习工具提供了起点,甚至可能为你区分这些工具提供了帮助。

    下面是一些常见的界面。

     

    1. 图形化用户界面

    机器学习工具提供了图形用户界面,包括窗口,得分,点击,专注于可视化。图形化用户界面的好处有:

    • 允许掌握较少技术的用户完成机器学习工作。
    • 专注于处理过程,以及如何最大限度地利用机器学习技术。
    • 用户可以使用界面进行结构化处理。
    • 更注重于信息的图形化展示,比如可视化。

    以下是一些有图形化界面的机器学习工具:

    1. 命令行界面

    机器学习工具提供了命令行界面,包括命令行程序,命令行参数,注重于输入和输出。命令行用户界面的好处有:

    • 允许不是程序员的技术用户完成机器学习项目。
    • 提供了许多专门的程序或机器学习项目特定子任务的编程模型。
    • 根据需要的输入和将会得到的输出分解机器学习任务。
    • 通过记录或脚本命令和命令行参数来促进有复验性的结果。

    以下是一些提供命令行界面的机器学习工具:

    如果你喜欢在命令行下工作,看看这本书《 Data Science at the Command Line: Facing the Future with Time-Tested Tools 》,可以让你了解如何在命令行下解决机器学习问题。

    1. 应用程序编程接口

    机器学习工具提供了应用程序编程接口,可以让你自由决定在你的程序中使用什么元素以及如何使用。应用程序编程接口的好处有:

    • 你可以将机器学习算法合并到自己的软件项目当中。
    • 你可以创建自己的机器学习工具。
    • 你可以在机器学习项目中灵活使用自己的处理流程和自动操作。
    • 你可以将自己的方法与库提供的方法以及扩展提供的方法结合。

    以下是一些带有应用程序编程接口的机器学习工具:

     

    参考文章:

    25个Java机器学习工具&库

    最好的Python机器学习库

     

     

    1. 各种语言-工具-平台-库

    Python

    • scikit-learn
    • numpy
    • pandas
    • matplotlib

    首先推荐一个大而全的网站 http://mloss.org,这个网站搜集了非常多的机器学习包,几乎涵盖了你听过的所有语言。

     

    如果你是用python的话,那么numpy, scipy, matplotlib是基础的,

    然后就是大名鼎鼎的scikit.learn了。

    最近pandas也很火,可以提供类似R中dataframe的数据结构,pandas的作者 最近出版了一本书 Python for Data Analysis。

    如果你想追求速度,那么可以考虑Cython和PyPy。

    Anyhow,Python是一门很灵活的语言,很多基于C和C++的包也提供了python接口(比如shogun)

    • Tensorflow
    • Theano
    • sklearn

    我是主推Python系的机器学习工具链的。主要的理由是:

    1.现在的研究热点大都用Python实现。

    2.Python可以编译到C(通过Cython),所以可以很好的保护源码。相对于Java的混淆字节码来说,编译到C之后的Python源码几乎不可能被分析。

    3.Python是免费的,虽然用起来比matlab要麻烦。但是有开源社区的支持,包括最近公布的numbapro可以把Python JIT到CUDA/GPU平台运行。极大的简化了性能优化的工作。

    4.Python在Linux集群上可以跑,但是matlab貌似是不行的。

     

    Weka

    java实现,Weka 非常适合初学者的工具

    R语言

    统计学出身的话,推荐R,免费开源,包数量多,社区强大。有本书叫mahine learning for hackers用的就是R。

    我还是推荐R,因为python的语法非常的灵活,反正我初看《ML in action》,numpy,scipy库基本上看不懂。我后来用R语言把这本书中的问题都做了一遍,基本上书中的算法我都明白了,如果想看理论推导,可以参考《统计建模与R语言》。我推荐使用R来学习机器学习,可以快速的理解概念,算法。至于实现,算法都会了,难道实现还困难么?

     

    Matlab

    statistics Toolbox+众多扩展包

    Octave

    theano

    想玩玩深度学习有theano

    Theanodeep learning首推

    svd-feature

    推荐系统:svd-feature

    Liblinear,libsvm

    liblinear适用于大数据集,注重训练效率,不支持kernel trick

    分类/回归问题:liblinear, libsvm

    opencv的ml库

  • 相关阅读:
    使用vue-cli脚手架搭建简单项目框架
    总结HTML5
    导出网页内容
    vue 编写插件
    各ui库项目结构
    webpack 模块方法
    webpack4.0
    webapp优化
    http/2.0与http/1.1的区别
    setTimeout与Promise的区别
  • 原文地址:https://www.cnblogs.com/yizhichun/p/6339915.html
Copyright © 2020-2023  润新知