方法不对,努力白费!
多少程序员想转行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来解决这个问题。首先,从列表中获取输入数据。
numberList = list([43,23,1,67,54,2,34,56,23,65,12,9,87,4,33])
现在选择一个随机数并将其存储在一个变量中。
sumSelector = raw_input()
为了解决这个问题,必须先对数据进行排序。在Python列表中排序很简单,可以通过sort函数来完成。
numberList = numberList.sort()
通过上述语句,将排序后的数字赋值给变量。现在使用两个指针:一个指向开始处(前指针);另一个指向结束处(后指针)。
检查两指针所指变量的和。如果和小于给定值(意味着当前的总和小于所需的总和),前指针向前移动一步并再次检查;
如果和大于给定值(意味着当前的总和大于所需的总和),将后指针向后移动一步并再次检查。
无论在任何位置,如果当前的总和等于要求的总和,便可以说,存在两个人的数值之和与给定的数值相同,需要给予奖励;
如果两个指针相交并且仍然没有达到所需的总和,则可以声称并不存在两个人的数值之和与给定的数值相等。
以下是完整的解决方案。
1 def isPrizeGiven(numberList,sumSelector):
2
3 sumOfTwo = 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数据分析,人工智能等技术,这里也给大家准备了一套系统学习资源,文中所展示的资料全部都是免费分享,点击下方链接添加微信即可免费获取!
戳这里 👉 【读者福利】Python经典学习资料免费分享,领走不谢! 👈
👉 1.确定好自己的学习路线 👈
无论做什么事,或者学什么技能,在一开始就要有所规划,所以我们要事先确定好自己的学习路线,这是非常重要的,能够在我们学习的时候使得我们的思路更为清晰。
👉 2.Python必备开发工具 👈
工欲善其事必先利其器,既然我们要学习Python,那么想与之的开发工具必须要先行安装好,利用好工具能让我们事半功倍。
👉 3、Python学习视频合集 👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 4.实战案例 👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉 5.一百道Python练习题 👈
学而不练则罔,练而不学则殆,检查学习结果,是优秀人员必备的。
👉 资料领取 👈
文中所展示的资料全部都是免费分享,点击下方链接添加微信即可免费获取!
戳这里 👉 【读者福利】Python经典学习资料免费分享,领走不谢! 👈