注册 登录
阳新论坛 返回首页

heyishun8.com https://bbs.435200.com/?130873 [收藏] [复制] [RSS] 必需品省钱秘笈

日志

python 与人工智能 浅谈

已有 1731 次阅读2018-4-30 17:09 |个人分类:日记


Python很有前途,但只会Python毫无前途

python 作为人工智能技术的前端工具 。有着诸多优点,Python在拥有简洁的语法和丰富的生态环境从而提高开发速度的同时,对C的支持也很好,这使得它在速度上其实也不是很逊色。如果用原生的对象或方法,非常非常地慢,但用了numpy的一套对象和方法,就完全不一样了,很快。正如你拿二重列表和numpy的二维ndarray做矩阵乘法,速度差几个数量级。就是因为numpy的底层几乎全是C。

这样,python结合了语言的优点,又通过对C的高度兼容弥补了速度慢的缺点,自然受到数据科学研究者与机器学习程序员的青睐。


python 数据处理

百万级别数据是小数据,python处理起来不成问题,python处理数据还是有些问题的


Python处理大数据的劣势:

1. python线程有gil,通俗说就是多线程的时候只能在一个核上跑,浪费了多核服务器。在一种常见的场景下是要命的:并发单元之间有巨大的数据共享或者共用(例如大dict),多进程会导致内存吃紧,多线程则解决不了数据共享的问题,单独的写一个进程之间负责维护读写这个数据不仅效率不高而且麻烦

2. python执行效率不高,在处理大数据的时候,效率不高,这是真的,pypy(一个jit的python解释器,可以理解成脚本语言加速执行的东西)能够提高很大的速度,但是pypy不支持很多python经典的包,例如numpy

3. 绝大部分的大公司,用java处理大数据不管是环境也好,积累也好,都会好很多


Python处理数据的优势(不是处理大数据):

1. 异常快捷的开发速度,代码量巨少

2. 丰富的数据处理包,不管正则也好,html解析啦,xml解析啦,用起来非常方便

3. 内部类型使用成本巨低,不需要额外怎么操作(java,c++用个map都很费劲)

4. 公司中,很大量的数据处理工作工作是不需要面对非常大的数据的

5. 巨大的数据不是语言所能解决的,需要处理数据的框架(hadoop, mpi。。。。)虽然小众,但是python还是有处理大数据的框架的,或者一些框架也支持python

6. 编码问题处理起来太太太方便了

综上所述:

1. python可以处理大数据

2. python处理大数据不一定是最优的选择

3. python和其他语言(公司主推的方式)并行使用是非常不错的选择

4. 因为开发速度,你如果经常处理数据,而且喜欢linux终端,而且经常处理不大的数据(100m一下),最好还是学一下python


python数据处理的包:

1. 自带正则包, 文本处理足够了

2. cElementTree, lxml 默认的xml速度在数据量过大的情况下不足

3. beautifulsoup 处理html

4. hadoop(可以用python) 并行处理,支持python写的map reduce,足够了, 顺便说一下阿里巴巴的odps,和hadoop一样的东西,支持python写的udf,嵌入到sql语句中

5. numpy, scipy, scikit-learn 数值计算,数据挖掘

6. dpark(搬楼上的答案)类似hadoop一样的东西

1,2,3,5是处理文本数据的利器(python不就处理文本数据方便嘛),4,6是并行计算的框架(大数据处理的效率在于良好的分布计算逻辑,而不是什么语言)
暂时就这些,最好说一个方向,否则不知道处理什么样的数据也不好推荐包,所以没有头绪从哪里开始介绍这些包


Github上有很多不错的Python开源项目,多数都与人工智能有关:



JavaScript排名第一  第二就是python

Python开发的人工智能项目:

1. Scikit-learn

Scikit-learn 是基于Scipy为机器学习建造的的一个Python模块,他的特色就是多样化的分类,回归和聚类的算法包括支持向量机,逻辑回归,朴素贝叶斯分类器,随机森林,Gradient Boosting,聚类算法和DBSCAN。而且也设计出了Python numerical和scientific libraries Numpy and Scipy

2.Pylearn2

Pylearn是一个让机器学习研究简单化的基于Theano的库程序。

3.NuPIC

NuPIC是一个以HTM学习算法为工具的机器智能平台。HTM是皮层的精确计算方法。HTM的核心是基于时间的持续学习算法和储存和撤销的时空模式。NuPIC适合于各种各样的问题,尤其是检测异常和预测的流数据来源。

4. Nilearn

Nilearn 是一个能够快速统计学习神经影像数据的Python模块。它利用Python语言中的scikit-learn 工具箱和一些进行预测建模,分类,解码,连通性分析的应用程序来进行多元的统计。

5.PyBrain

Pybrain是基于Python语言强化学习,人工智能,神经网络库的简称。 它的目标是提供灵活、容易使用并且强大的机器学习算法和进行各种各样的预定义的环境中测试来比较你的算法。

6.Pattern

Pattern 是Python语言下的一个网络挖掘模块。它为数据挖掘,自然语言处理,网络分析和机器学习提供工具。它支持向量空间模型、聚类、支持向量机和感知机并且用KNN分类法进行分类。

7.Fuel

Fuel为你的机器学习模型提供数据。他有一个共享如MNIST, CIFAR-10 (图片数据集), Google’s One Billion Words (文字)这类数据集的接口。你使用他来通过很多种的方式来替代自己的数据。

8.Bob

Bob是一个免费的信号处理和机器学习的工具。它的工具箱是用Python和C++语言共同编写的,它的设计目的是变得更加高效并且减少开发时间,它是由处理图像工具,音频和视频处理、机器学习和模式识别的大量软件包构成的。

9.Skdata

Skdata是机器学习和统计的数据集的库程序。这个模块对于玩具问题,流行的计算机视觉和自然语言的数据集提供标准的Python语言的使用。

10.MILK

MILK是Python语言下的机器学习工具包。它主要是在很多可得到的分类比如SVMS,K-NN,随机森林,决策树中使用监督分类法。 它还执行特征选择。 这些分类器在许多方面相结合,可以形成不同的例如无监督学习、密切关系金传播和由MILK支持的K-means聚类等分类系统。

11.IEPY

IEPY是一个专注于关系抽取的开源性信息抽取工具。它主要针对的是需要对大型数据集进行信息提取的用户和想要尝试新的算法的科学家。

12.Quepy

Quepy是通过改变自然语言问题从而在数据库查询语言中进行查询的一个Python框架。他可以简单的被定义为在自然语言和数据库查询中不同类型的问题。所以,你不用编码就可以建立你自己的一个用自然语言进入你的数据库的系统。

现在Quepy提供对于Sparql和MQL查询语言的支持。并且计划将它延伸到其他的数据库查询语言。

13.Hebel

Hebel是在Python语言中对于神经网络的深度学习的一个库程序,它使用的是通过PyCUDA来进行GPU和CUDA的加速。它是最重要的神经网络模型的类型的工具而且能提供一些不同的活动函数的激活功能,例如动力,涅斯捷罗夫动力,信号丢失和停止法。

14.mlxtend

它是一个由有用的工具和日常数据科学任务的扩展组成的一个库程序。

15.nolearn

这个程序包容纳了大量能对你完成机器学习任务有帮助的实用程序模块。其中大量的模块和scikit-learn一起工作,其它的通常更有用。

16.Ramp

Ramp是一个在Python语言下制定机器学习中加快原型设计的解决方案的库程序。他是一个轻型的pandas-based机器学习中可插入的框架,它现存的Python语言下的机器学习和统计工具(比如scikit-learn,rpy2等)Ramp提供了一个简单的声明性语法探索功能从而能够快速有效地实施算法和转换。

17.Feature Forge

这一系列工具通过与scikit-learn兼容的API,来创建和测试机器学习功能。

这个库程序提供了一组工具,它会让你在许多机器学习程序使用中很受用。当你使用scikit-learn这个工具时,你会感觉到受到了很大的帮助。(虽然这只能在你有不同的算法时起作用。)

18.REP

REP是以一种和谐、可再生的方式为指挥数据移动驱动所提供的一种环境。

它有一个统一的分类器包装来提供各种各样的操作,例如TMVA, Sklearn, XGBoost, uBoost等等。并且它可以在一个群体以平行的方式训练分类器。同时它也提供了一个交互式的情节。

19.Python 学习机器样品

用亚马逊的机器学习建造的简单软件收集。

20.Python-ELM

这是一个在Python语言下基于scikit-learn的极端学习机器的实现。










鸡蛋

鲜花

握手

雷人

路过

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|Archiver|手机版|小黑屋|删帖指引|阳新新阳网 ( 鄂ICP备19013424号-2 )

GMT+8, 2024-4-28 07:56 , Processed in 0.543811 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.