分享

人工智能程序员入门应该学哪些算法?

 lijd2016 2017-07-07

鉴于题主的问题有些宽泛,我想把范围缩小一些来进行解释。【人工智能】是一个比较宽泛的概念,目的是让机器像人类一样思考,【机器学习】是“人工智能”的一个分支,【深度学习】是“机器学习”的一种方法,三者之间的关系类似于下图。

综合我个人的理解,目前机器学习中的各类算法和原理基本能解决大多数日常所处理的问题。

(一)首要问题:“语言的选择”

摆在题主面前的首要问题是“入门”,所以我们需要在前人的基础上进行理解和应用。在这里我推荐Python,除了Python语法简洁灵活以外,目前人工智能或者机器学习库在Python语言上最为丰富和完善——是的,没有之一。

这里我想解释一下“库”的概念,目前语言的一个趋势就是提高工作效率,也即“拿来主义”,别人做好的东西你可以直接拿来用,单这并不是说你什么都不需要做了,而是这只是一个工具,单是理解如何使用工具就不是一个轻松的事情。

如果题主想从0开始自己写机器学习的工具,那么我不推荐,一般来说大多数人没有这个能力,也确实没有必要。

1.所谓的“没有能力”,不是说你真的写不出来,而是一个成熟的库和包需要长时间的调试和完善,一方面保证写出来的工具要不出错并且具备很好的效果,另一方面要有方便的使用性;

2.所谓的“没有必要”,自己费心费力写出来的没有“大牛们”写得好,运行效率快,还是要依赖别人写的库,所以还是站在巨人的肩膀上比较好。

(二)“算法的理解”

现在我们步入正题,我们要使用“库”就要在理解的基础上调用,不同的问题处理要使用不同的算法。

机器学习认为常见的问题一般分为三种:

所谓【分类】,举个列子,就是人有男女性别之分,回答有正确错误之分,相貌有美丑之分;所谓【聚类】,你不能判断一个东西的具体类别而是说大致更接近什么,通俗来说就是更加模糊的分类,一个四不像的动物从概率来说更像什么;所谓【回归】,针对一系列连续的值,比如明天的天气是20℃还是21或者30这样、或者小明数学成绩考了60分还是72分。

明白了问题的类型,我们才能选择特定的算法:针对【分类】问题,可以选择KNN算法、决策树、朴素贝叶斯、支持向量机、逻辑斯蒂回归;针对【聚类】可以使用K-mean算法;针对【回归】问题,可以选决策树、朴素贝叶斯、支持向量机。(对的,我没有写错,决策树、朴素贝叶斯、支持向量机既可以分类也可以回归)值得一提得是,逻辑斯蒂回归虽然是回归命名,但却只能用于分类。

这些都是常见的机器学习算法,也是入门的程序员所需要掌握的,具体的使用还是要看sklearn官方网站的详细介绍,这里我就不详细解释了。但要说明的是,算法只是解决问题的方法,数据才是关键,如何对特征维度进行处理以及提取有效的特征维度更加重要。

Sklearn库网站:http:///stable/modules/classes.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多