学 Python 没找对路到底有多惨?| 码书

2019 年 3 月 10 日 CSDN

作者 | 异步图书

责编 | 胡巍巍

本文内容经授权摘自《Python机器学习》

方法不对,努力白费!

多少程序员想转行AI,却倒在了学Python的歧路上?

都知道做AI赚钱多,为何你总是找不对门路?

众所周知,目前机器学习红遍全球。男女老少都在学机器学习模型、分类器、神经网络。

你也想成为一份子吗?但你该如何开始?以及到底该如何定义机器学习?到底什么样的教材,才是真正适合你的?今天的文章一定对你有帮助!


什么是机器学习?


从出生的那天起,我们就一直在学习中度过。

随着逐渐的成长,开始学习如何走路;通过倾听周围人的谈话,学习并尝试模仿;通过学习不同单词的意思,使得在需要时懂得该如何进行表达。

同时也开始区分事情的好坏。例如,在第一次靠近火源时,会因灼热而后退,从而明白要与火源保持一定的距离。

那么,现在思考一下计算机的工作原理。

计算机可以在1s内遵循人类的指示处理数百万条指令,并返回结果;它可以执行人类描述的任务,但是却不能自行决定。

而机器学习此时就可以发挥作用了。如果给予计算机像人类一样的思考能力,那会发生什么呢?

可以用计算机能理解的方式,给出每一天的任务令其进行计算,还可以建立一些模型来帮助计算机在将来采取行动。

人类从经验中学习知识,计算机则遵循指令执行任务。然而,其实还可以直接向计算机提供经验让其学习并为行动做准备。

目前我们是以结构化的方式定义经验。因此,我们将计算机从数据(经验)中进行学习的过程称为机器学习(Machine Learning)。

以买香蕉为例。你的母亲需要你去市场上买一些香蕉,同时她告诉你鲜黄色的香蕉很好吃。

你到一个水果商那里,开始按照母亲的建议挑选香蕉。你买了20根香蕉后就回家了,然而回家后你注意到有些香蕉的味道并不像其他的那样好。

事实上,有5根香蕉是坏的。你逐个拿起香蕉并开始作出假设。 20根香蕉中有12根大香蕉和8根小香蕉。

这8根小香蕉都很美味,但是大香蕉就不一样了,在12根大香蕉中有5根味道不如预期。

你已经掌握了挑选香蕉的知识。第二天,当你到达市场时,注意到有个水果商在打折出售香蕉,这些香蕉和昨天的不同,它们的皮带有一些绿色。

从这里买完香蕉回到家后,根据之前的经验将每一根香蕉分为好与坏,会发现大的绿色香蕉很好吃,但是小的绿色香蕉的味道不如其他的好。这样,你就学会了新规则。

你开始将自己看作是香蕉专家。有一天,你不得不去另一个城市参加表亲的婚礼。

现在你惊讶地发现这里所有的香蕉都很小,但是味道却都很好。在这里你了解到来自这个区域的香蕉是畅销商品。

现在你确实已经是一名专家了。但如果你的姐姐很长时间没有回家了,并且她喜欢石榴而讨厌香蕉。你要怎么办呢?为了找到美味的石榴,你需要重新开始你的学习。

现在这个任务就可以由机器学习负责指引计算机完成了。可以使用数据点的形式向计算机提供知识。数据点的属性称为特征(Feature),这里的特征是香蕉的大小(小、中、大)、颜色、产地等。

输出(Output)就是味道(好或者坏)。将这些数据输入到机器学习程序中,就可以让计算机学习如何区分香蕉的好与坏。

机器学习算法是一种根据经验来给予你决策能力的智能算法。


为什么选择Python


Python在数据科学家中是非常受欢迎的编程语言。

  • 第一,它免费且易学,不必为了小任务而浪费大量注意力;

  • 第二,它是面向对象的语言,这也是其被大型开发者社区支持的原因;第三,巨大的开源库支持。 Python具有相当数量的开源库,能够更迅速地实现数据科学和机器学习解决方案,而无须从头开始编写每一个算法。像Pandas、 scikit-learn、 SciPy、 NumPy、 Keras这样的库对于快速实现机器学习算法非常有用。

首先,通过一个例子了解如何使用编程语言来解决现实世界的问题。

假设举办一个聚会。你为每个进入聚会的人分配一个唯一的1~100之间的号码。现在聚会结束了,你宣布了一个消息。

“会从1~200之间获取一个随机数。如果有两个人的号码之和与这个数字相等,就会奖励这两个人。”

现在了解到,已经向x个人分配了号码。如何确定能否给其中两个人奖励呢?

可以尝试使用Python来解决这个问题。首先,从列表中获取输入数据。

1numberList = list([43,23,1,67,54,2,34,56,23,65,12,9,87,4,33])

现在选择一个随机数并将其存储在一个变量中。

1sumSelector = raw_input()

为了解决这个问题,必须先对数据进行排序。在Python列表中排序很简单,可以通过sort函数来完成。

1numberList = numberList.sort()

通过上述语句,将排序后的数字赋值给变量。现在使用两个指针:一个指向开始处(前指针);另一个指向结束处(后指针)。

检查两指针所指变量的和。如果和小于给定值(意味着当前的总和小于所需的总和),前指针向前移动一步并再次检查;

如果和大于给定值(意味着当前的总和大于所需的总和),将后指针向后移动一步并再次检查。

无论在任何位置,如果当前的总和等于要求的总和,便可以说,存在两个人的数值之和与给定的数值相同,需要给予奖励;

如果两个指针相交并且仍然没有达到所需的总和,则可以声称并不存在两个人的数值之和与给定的数值相等。

以下是完整的解决方案。

1def isPrizeGiven(numberList,sumSelector):
2
3sumOfTwo = sumSelector
4
5   i=0
6
7   j = len(numberList) -1
8
9   if(i>=j):
10
11       return False
12
13   while(i<=j):
14
15       currentSum = numberList[i]+numberList[j]
16
17       print(i,j,currentSum)
18
19       if(currentSum==sumOfTwo):
20
21           return True
22
23       if(currentSum>sumOfTwo):
24
25           j=j-1
26
27       else:
28
29           i=i+1
30
31   return False

为获得所需答案,必须向函数传递排序列表和给定的数值(即两数值的期望和)。

1if (isPrizeGiven(numberList,sumSelector):
2   print("No Escape. Give Prize to Everyone")
3else:
4   print("You Saved Yourself!!")

即使现在不能理解此代码,也不要担心。接下来我们还会对这段代码进行解析,并介绍程序设计语言的基本原理。

本文摘自《Python机器学习》

《Python机器学习》

作者:[印]阿布舍克·维贾亚瓦吉亚

ISBN 978-7-115-50135-6/

此书为Python机器学习实用教程,Python 3程序员晋级必备图书,本书提供配套资源可供读者下载。

内容提要:

《Python机器学习》通过解释数学原理和展示编程示例对机器学习进行了系统、全面的解析。

《Python机器学习》共分为12章,内容涵盖了机器学习以及Python语言的基础知识、特征工程的概念与操作技术、数据可视化技术的实现、监督学习及无监督学习算法、文本分析、神经网络和深度学习、推荐系统的构建方法以及预测处理时间序列的方法等。

阅读本书能够加深读者对机器学习的认识和理解,从而达到理论与实践相结合、学以致用的目的。 

喜欢这本书吗?

CSDN联合异步图书,

针对CSDN用户推出限时7.5折的优惠价。

买一本书,

不过是两杯咖啡的价格,

但如果掌握了本书的精华,

或可让你升职加薪!

上进的你,

动动手指赶快把新知识纳入囊中吧!

扫码就可购买哦!

点击阅读原文,也可秒购《Python机器学习》↓↓↓

登录查看更多
3

相关内容

“机器学习是近20多年兴起的一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。机器学习理论主要是设计和分析一些让 可以自动“ 学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论,机器学习与统计推断学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。很多 推论问题属于 无程序可循难度,所以部分的机器学习研究是开发容易处理的近似算法。” ——中文维基百科

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
简明扼要!Python教程手册,206页pdf
专知会员服务
47+阅读 · 2020年3月24日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
338+阅读 · 2020年3月17日
Python数据分析:过去、现在和未来,52页ppt
专知会员服务
99+阅读 · 2020年3月9日
《可解释的机器学习-interpretable-ml》238页pdf
专知会员服务
201+阅读 · 2020年2月24日
2019中国硬科技发展白皮书 193页
专知会员服务
81+阅读 · 2019年12月13日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
关于 K means 聚类算法,你需要知道这些东西
AI研习社
3+阅读 · 2018年8月19日
万万没想到,枯燥的“机器学习”还可以这样学!
Python 如何快速入门?
大数据技术
11+阅读 · 2018年4月9日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
如何入门Python与机器学习 | 赠书
CSDN大数据
9+阅读 · 2017年11月12日
Python除了不会生孩子,什么都会
算法与数学之美
3+阅读 · 2017年11月8日
Seeing What a GAN Cannot Generate
Arxiv
8+阅读 · 2019年10月24日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
Arxiv
4+阅读 · 2018年10月5日
Arxiv
22+阅读 · 2018年8月30日
Arxiv
3+阅读 · 2017年12月18日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
简明扼要!Python教程手册,206页pdf
专知会员服务
47+阅读 · 2020年3月24日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
338+阅读 · 2020年3月17日
Python数据分析:过去、现在和未来,52页ppt
专知会员服务
99+阅读 · 2020年3月9日
《可解释的机器学习-interpretable-ml》238页pdf
专知会员服务
201+阅读 · 2020年2月24日
2019中国硬科技发展白皮书 193页
专知会员服务
81+阅读 · 2019年12月13日
相关资讯
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
关于 K means 聚类算法,你需要知道这些东西
AI研习社
3+阅读 · 2018年8月19日
万万没想到,枯燥的“机器学习”还可以这样学!
Python 如何快速入门?
大数据技术
11+阅读 · 2018年4月9日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
如何入门Python与机器学习 | 赠书
CSDN大数据
9+阅读 · 2017年11月12日
Python除了不会生孩子,什么都会
算法与数学之美
3+阅读 · 2017年11月8日
相关论文
Seeing What a GAN Cannot Generate
Arxiv
8+阅读 · 2019年10月24日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
Arxiv
4+阅读 · 2018年10月5日
Arxiv
22+阅读 · 2018年8月30日
Arxiv
3+阅读 · 2017年12月18日
Top
微信扫码咨询专知VIP会员