七月在线公开课笔记-十八-

龙哥盟 / 2024-11-11 / 原文

七月在线公开课笔记(十八)

人工智能—kaggle实战公开课(七月在线出品) - P5:kaggle金融比赛实战:房价预测 - 七月在线-julyedu - BV1jh411y7Fh

我们这来讲一下,就是呃我们看一下,就是在呃开购这个平台,大家都知道吧,就是这样一个这样一个类似于我们讲怎么讲一个数据竞赛的平台,像国内相似的,比如说有叫天池这样的平台,对吧?都是做数据竞赛的啊。

有时候屏幕大一点啊好好好。我知道我知道我这哎,sorry,有时候屏幕要放大点,我知道我知道,稍等一下。

我这里卡小小卡机了。嗯。Okay。

응。什么什么什么什么什么。什么中面有个美女图片吗?没有吧,嗯,我们不会这么无聊吧。多大人了是吧?中面还有美女图片,天哪,这是这是大家小时候才会做的事情吧,呃,好,我们先说一下,就是对。

所以国内有类似的这样一个数据竞赛平台,对吧?就是像国内叫cago嘛?就是国内像比如说天池这样平台都会有这样的,有比如说有公司会上传自己的数据,上传一些呃无痛不痒的数据。

当然肯定是会上传一些就是核心数据吧,对?会上传一些无关痛痒的数据给你们,然后让你们去进行测试进行跑,然后看看这个效果怎么样看你能不能达到一个很好的效果,完成一个很好的事情,对吧?

以这里的话哎我们这里先看一个比较或者我们这里今天就看这样一个比较有趣的案例,是吧housepri就是说这个这个是某一个公司给提供在cago上提供了一个一个数据集。

这个数据集里面呢包含了美国的一些房子的一些呃一些一些一些客观信息,什么客观信息呢?比如说我看看da比如说比如说你们会告诉我们它的这个这个是它的售价值,这是唯一一个label。

告诉我们这个房子售价值是多少。然后同理会告诉我们,比如说这个building class就说这个房子属于什么级别,然后呢,包括这个房子的lo frontage,然后包括这个lo area是多大呃。

前面有没有前面是一个什么样的路,对吧?然后呢,就是个什么旁边的邻居有哪些什么condition怎么样然等等等各种信息,就说这么多这么多个信息,是关于一个房子,他收集这么多个所有的信息。

然后最终一个让我们求的东西,或者要我们做预测的东西是它的房价可以卖多少钱,这是一个非常直观的一个呃一个一个案例。然后这个案例上呢,我们是可以非常良好,或者说非常优美的运用我们今天所学的知识去进行解答的。

那么具体而言,怎么做呢?放放大。我靠,怎么又黑屏了,你能看到吗?我这么又黑屏了。能看到是吧?OK好好。😊,好,那么对于这样一个房价预测的案例。

我们应该怎么用这个呃东西来解就用用我们自己今天学的知识来做计算呢?首先啊因为今天时间关系第一时间关系第二,因为我们今天讲的主要内容不是数据清理。所以这里前面涉及这一大部分的数据清理的内容。

我会稍微略过的讲一下。大家如果有兴趣的话,我会把这个发到群里,大家可以仔细看一下这个教程里面所有的文字的解释。但是因为这个东西的话,呃我怎么讲就是如果要讲数据清理这件事的话,是可以讲一堂课的。

所以今天肯定没有这个时间给大家这样全部的讲数据清理这回事。但是我会给大家简单的过一遍,怎么这样完成怎么完成我们这样一个整体的这样一个呃比如说要做这样一个竞赛的话,拿到数据之后,你要怎么做。

然后怎么拿到一个非常好的结果再上传过去。O首先导入所需要的库啊,这个随便导入一下。当然注意点是我们最好在处理所有的这样一个竞赛里面的时候,竞赛题的时候,用我们的pada来进行我们的数据处理。

为什么为什么要。你可以用我们刚刚说的用n派导入我们的CSV吧,者可以用python自带的CSV这个库来做一些事情。但是这个程序员之间是有逼格的。嗯。

怎么讲就是就是程序员之间是有笔视链的用das的人是看不起任何其他东西的人因为本身是一个数据处理的库。他相当于是把我们非常呃非常怎么讲非常繁杂的数据处理变成了一个类似于像sql一样的数据库的处理形式。

所以说它类似于是把我们数据导入之后呢,你的你处理它的时候可以像我们 mergege啊,或者说把两个表conact或者把某某一个某一个Y给去除啊,把某个X给去除掉这样一个形式来进行处理。

可以像sql一样非常开心的来处理所有数据,所以说用das可以体现出你这个人的逼格会比较高。所以说在整个程序处理在整个数据处理或者竞赛圈这个圈子里面的话。

这个笔视链是用s会视所有其他用其他东西的人对这是我们是稍微提,所以大家可以。自学一下pas是什么。O然后呃呃另外一个啊这个这个这个是另外一个B格是关于这个在开里面,它这个文件储存形式。

是存在一个叫input的文件文件夹下面存一个V对吧?以大家在写比如说日后再写一些你们自己写一些教程给别人的时你以按照这样一个格式来的数据显你格你经常参加这一个国际赛?

你经常参加这样一个比行对这是另外一个关于B格的事情。所以这是开头先给大家讲两个B格如何安排的数据结构文档存储结构啊,如何使用如使用数据处理我们处理数据的时候呢,我们用自带来读进我们的数据。

并且告诉他我们的第个d这我们得一下们得到数据长这个一共有只点告诉是让我们只输出前五行前五行行前行他是会告诉我们前行这放那就会输出前十行1输前行。😊,没有意义。

我们读进来之后看一下的意义是在于就大概看一下我们读进来之后的数据的格式长什么样。所以大家看一下大概是长这个样子。那这里呢会发现有些问题。第一。

有一些NANnot a numbernot number就不是个数的意思。如这里可能是一个缺省值,或者可能是一些其他原因在在这里O那么接下来这时候我们是大概是心里有个数。

我们需要哪些地方需要进行一些人为的处理,就要一些人为的叫预处理这个预处理过程刚刚讲过是非常复杂,要讲可以讲一堂课,所以这里会会比较轻松的带过。如果客户大家有哪个部分不太了解的话,我们可以私聊好。

第二部分我们要做合并数据,为什么要做合并数据。我们之前如果有一些 learning基的话,大家肯定知道的话。😊,啊,这个方待会再讲,我先讲啊,我先讲另外一个事啊,在数据合并之前,我先讲另外一个事。

是关于这个我们salelespri这样一个叫平滑化处理。什么叫平滑化处理。我们知道在整个任何的数数学型的模型中的话,一个分布,如果是正态分布的话,是最能够最快的能够被进行拟合的,对不对?

因为正态分布符合了这样一个从中间点到两边的扩散的范围。如果说你的这样一个最终的Y是一个呃偏就偏左边这样一个分布的话,可能导致你的这样一个运算结果,你这样一个模型的计算结果到到最终是变成一个偏值的。

就是偏向一方的一个模型结构,怎么理解这个事。比如说如果我一个数据集中一共有99个是一只有一个值是0。那么我这样一个100个数据点的这样一个大数据集,对?我做ing的话。

我的这样一个模型可以就是一个输出等于一的这样模型,我依旧可以达到99%的正确率,对不对?因为我这里面本来就。99%的数值是等于1。所以说对于这种情况下,我们希望把我们的数据本身变行进行平滑化。

也就是正态化,使得我们的这个数据的分布,就是Y的分布可以更加的平滑,能够保证我们在进行模型的学习的时候,不会误入某一个偏执的区域里面去。所以这里面我会给它加上一个东西叫做。

叫做叫做叫做log加一为什么要加一呢?为了防止这个出现零的情况呢?对出现负负数的情况,所以我们这里把pri加上一这个一只是为了防止那个条件,就是边缘条件值的情况。

我们这里用log加一这也是体现一个逼格的体现。你在做这样一个数据处理的时啊,体你考虑一个叫极值情况。就是说你不用log而log加一的形式。

O那么这里面会出了这样一个方式叫log一也就是就是你这个值放进来之后给你自动加上一再给你log你log完之后,大家都知道log是一个平滑平滑数据处理器对吧?你做之后。

你所有的数据都会变成一个基于基于一个数据分布分布以内的一个正态分布,对吧?那么你做完这个log之后,也就是说我们把我们的这样一个spri进行的这个log加一处理之后,我们的最终我要面对那个结果。

从我们这样一个偏值的。比例的这样一个数据结构,变成一个比较正态分布的数据结构。所以这是第一步要做的事情。第二步呃呃,合并数据集,为什么要合并数据集呢?是为了让我们的的X。

就是让我们的训练集和测试集测试集都能都能经历相同的预处理的处理。也就是说有微胁数据啊,让我想有微胁数据处理经验的同学可能知道就是在进行测试和训练集这样分类的情分割的时候。

我们一定要确测试集不能被我们进行任何的燃指,对吧?但是在这里在进行竞赛的时候,我们要我们要做的是我们要确保我们的测试集跟我们的训练集用了相同的预处理的方式进行处理,这样才能保证我们把模型运用进去的时候。

我们的测试集和训练集用的是相同的概念,用了相同的尺度去进行衡量的。所以这里这是为什么我们在第一步的时候要把我们的剩下的部分给组合起来,把我们和组合起来。这个组合的这样作用。

不是为了让我们把这个让我们做cheing,让我们che吧?我们test和t给组合起来,是为了让我们可以一步到位的处理我们所有的。处理的方法。所以这里是为什么我们要把它们合起来?OK这是上面几步的过程。

接下来变量转化,也就是类似于一个特征工程的处理。什么意思?把一些。不该有的东西变成该有。把一个不该有的东西变成该有的。把一些就是呃比如说我们这这个是这个其实这个过程其实需要大家去注意关注我们的那个。

注意关注我们的我想想啊,注意关注我们的这样一个数据的解释。数据的描述。比如说这里呃MS subclass我们如果回到刚刚那个网页上会看到,就是这个东西其实是一个级别的代名词,它不是一个数字。

那么对于级别本身而言的话,我们不能够用数字来代表级别这个事,因为数字本身,比如说20和60之间有一个前后的20是小于60这个关系的。但是可能在我们整个这样一个级别的概念里面,20是一个级别。

60是一个级别,20和60这两个级别之间没有任何的没有任何的关系,它们只是两个不同的分类级别而已。所以我们根据我们的比如说我们根据我们的数据的呃descript。

我们知道MS subclassus是一个级别,而不是一个数字。那但是呢如果但是呢它因为它是一个数字的原数据形式被我们。被我们的这个s读进来的时候呢,会被默认为是我们的in64的格式。

那么这时候我们就会告诉大,哎,我们要把我们的里欧的所有的de frame里面的MS subclass变成一个train的形式。

然后再进行我value我看到我们是把所有的这样一个级不再是作为一个数字的表达是作为一个就是一个str的表达。我们做个统计,分为20级20这个级的一共1094个房子60这个级的。

一共50575个房子50这个级别变成287个,就是这是一步,就是把一些。格式错了的数据给变换成正确的格式,这是第一步。第二步。有一些呃我们所有的category的变量变成我们nu的表达形式,这什么意思?

就是说刚刚讲过,你不管是206050这样的处理这样的表达形式的话,它有一个自带的数据的大小关系在里面。那么我们为了想要表达我们这样一个category的形式的话。

我们用一个东西叫one hot来表达我们的category。也就是说假设我们这里呃,比如我们这里一共有呃,看看啊。

就假设我们比如说我们一个canlibry里面一共有class一共有1201234比如假设它一共有10个不同的级别,对吧?

那么我们用汪浩的表达式的意思就是说我们把这样一个con给它展开成10个con展开成10个列。这10个列里面呢,只有当我这个房子属于这其中这某一个某一个级别的时候,我才会被这里面值才会变成一。

其他情况下都是0,所以这是个零一表达的形式,我们称之为汪浩,就只有。它是这个分类的时候,它才会值等于一,其他不是时候值都等于0。那么在这里的话大家可以看到我们在进行这样一步叫ge处理之后。

我们可以把我们所有的MS subplus这个级别性的东西被我们转化成一个数据化的表达数字化的表达形式,它是变成一个0000000只有在哎比如说只有在60这个位置它是等于一其他地方都是通过这一个形式。

虽然说我们的变多了。我们把一个一个 column变成12个。但它这样一个表达形式会更加的合理化。这是这是其中的一种理的话我们其他各种各种各种各样跟级别有关,跟分类有关的数据的这样一个属性。

都要被我们话把它变成一个表达形式,使得我们的数据处理更加的直观直接。这是一部分这是上面这一部分就是关goical数据的处理。这是第一部分。

第二部分是关我们的 numerical变量变量就是我变量本身它就是个数字化的表达形式,但是它本身也会有出现它自己的问题。第一数据缺失对吧?如果这个数据是缺失的话,我们该怎么补全这个数据。

那么这个一般我们在。在主办方给你题目的时候会告诉你,一般会告诉你,就是说这个地方如果是缺失的话,我们用零表示,还是说是用平均值表示,还是说是用最大值及值中位数来表示。那你根据这样的审题之后。

你得到哎这个框一下这个这个fed下,就是如果说有缺审的话,我应该用什么值来代替,对吧?然后这里我们直接是用一个平均值来代替。这个没有什么道理。

我只是选取了一个平均值来代代替我们所有的这种填满我们所有的空缺,也就是说用这样一个命之后,把所有的这样一个空缺都填上去。然后填进去之后呢,我们我们标我们得到我们标准化的这样一个我们对对sorry。

就我们于是我们就能把我们所有的缺省值都给。填充完毕这个feel那就是feel进我们所有的nnot a number的地方,然后呢用我们的me columns把们它把它们那个平均数都给填进去。

这时我们看一下所有的是n的个数作为进行一个总结,看到是0。也就是说不再有任何的空档是零或者是缺绳值了。所以这是关于 numericalmer数据的处理。接下来关于 numerical数据的标准化。

有人刚问就是为什么就是log一下就变成正态分布了。我们不能说那是正态分布,我只能说那是一个平滑的分布。我我我刚刚讲的其实是一个叫正态化,就是把它近似变成一个正态化的一个分布。

因为log之后你值你大家可以看一下那个log y等于log X的那个那个图片图像分布。大家就知道就是任何数据的话,是在它这样一个loglog X之后分布是一个分行的,就是正值的分行形式。

那我们用这样一个方式的话,是为了把我们的数据给变得是归一化。O好,那么同理我们我们这样一个X本身也需要做做这样一个归一化的过程,就是做这样一个呃平滑化的过程。我们可以用什么呢?不光光可以用刚刚的那个。

我们还可以用这样一个东西这个叫标准分布对吧?把每一个X这个数值对吧?减上所有X的平均值再处以一个方差对吧?X减XX8,后处理方差。那这样的话我们的数据本身可以变得更平滑理跟刚刚到理一样Y需要更平滑一点。

更好更好便于计算处理那么X也希望可以把它变得更平滑一点,可以让我们更好进行数据处理对吧?以时候我们用同样的方式,把我们所有的X也进行这样一个平化。

这是一个opionalopional处理方式我们可以使用也可以不使用但是呢这显然是使用使用了以后呢,我们的数据计算会更好一点,举个简单例子。

如果说你的X里面有100个都是100100个99个值都是10只有一个值是对?那么你计算的时候,你这样一个距离差就是10。它这样一个计算,会使得你这样一个你的这样一个grad是非常大的。

它会使得你这样一个最终你这个图形在做最终呢就怎么讲,在拟合的时候会变得非常非常的容易跨入到一个过理合的区域中去刚刚讲过那个箭头要越小对?要经常有挫折,才能慢慢把它放到一个全局最优解里面去。

如果是一个过大的一个步伐的话,可以会让它过早的进入一个overfi的状态。那么在这种情况下,唉,如果我们把我们的所有的X也进行一个平方化处理的话。

可以保证我们所有的这样一个每一个X之间的距离变得比较可度量,就比较比较中比较中庸一点。那么这个数值的话,在我们进行处理的时候,就可以比较好的避免一些其他情况的极值情况的发生。

这是这是为什么把X要做一个简单的平方化处理。O接下来啊上面终于讲完了,这里讲的非常快,因为不是这一课的重点。那接下来我们开始正经的讲我们这一课的重点关于建立模型,对吧?

首先我们把这个我们的数据集分分割成这个测试和训练集两部分,对不?大家都知道合起来把分开就什么脱?接下来关于我们的rich regression。

就是比如说我们首先用一个最简单的 regression来跑一遍我们的这个模型怎么跑呢?我们用 model导入我们的对吧?并且用一下我们的做我们的我们的这样一个验证方案?

然后呢这个时候先把我们换成我们就是里面直接点value可以我们的D这样一个数据结构转成我们数据结构这个时我这样一套算法就这几行算法来进这里面什么叫们数分成几块?比如分成1块用一块进行我们的训练。😊。

然后用后面剩下的9块进行我们的测试是然后把所有的9块测试的平均值算出来错误率的平均值算出来,告诉我们这个我们这样一个套模型在不同的这样一个数据集结构中。

它的这样表现力有多好用这种方式可以极大的避可以极大避一是fi的模型看起来非常好,但其实在其他数据里面运用的不太好样一个效果那么这里这里就是每一次都新建一个的这样一个。

并且呢过所有的ri里面的阿尔法值尔法就是的一个参数对?把它每一个参数都一遍然后呢把每一次进一个新参数把们所有值计算一下。把计算的这个值输出出来。

这是我们画看下可以到当我们的尔法值大概右在10到20的时可以达到一个非常果概是0136右值这是我们用最简单的。呃呃,ri的方式来做这样一个。是这样一个数据分类的验证对吧?这是第一步。第二步。想想看,哎。

我们可以比如说再用其他一个呃分类器来做。比如说用random force来做对吧?我们在S learn里面导入我们的dom且呢同一遍我们所需要的各种各种各种这个参数这里参数就我只是选取其中一种参数对吧?

我们这里可以选很多种不同参数,也就是说你用一个 four几层的一个for循环,把所有的参数放起来。这这就有点像这之后你们可能会学到一个叫re search叫网格搜索这个是调参里面很重要的一个东西进行网格搜索的话。

可以确保我们的这个就是它的消耗量它的它怎么讲它的这个时间消耗量是很大。但是可以确保我们的每个参数都被我们给尝试到,且可以让我们。选取到最好的参数的组合啊,我们这里是只用了一个参数的调整来做我们的案例。

O然后把我们的regress放进来,然后把我们的所有的numberestim就这个东西呢其实告诉我们一共有几棵数,我们放200个大家可以回忆一下是什么意思呢?

是告诉我们每一棵能够最多看到之多少的属性所以这里我们放0。1还是1030%还是57999样用这样的形式进行记住下所有的呃那个错误率画出这个图我们看到在大概03左时候达到一个0。137的最优值,对吧?

大概是在就是每一个数能够看到30%的信息量的情况下可以达到一个比较好的值。这前面两个东西都是我们的呃最基础的算法。我们用了两个非常无聊的基础算法,算出了两个比较呃调试出了两个比较优的解,对不对?

这时候我们开始用我们的asseemble。有人看。韩老师后面会讲对吧?没关系,对,所以上面的内容黄老韩老师之后会讲,所以大家也不用现在听不懂,也不用太紧张。所以之后我们都会讲的这样一方面的内容。

O我们继续说好,那么接下来我要讲的主要是要结合这堂课的内容给大家讲解一下这里的作作用的重要性。那么这里我们刚刚已经有两个参数,并且有两个调出来参数,有两个调出来的算法是能够跑到一个比好的效果的。

一个叫尔法等于15的时候,一个叫在我们m等于3%或0。3的候达到一个比较好的效果。但这两个比较好的效果,怎样才能让我们呃怎么说我们怎样才能把他们两个的优势给结合起来呢?

那么这里可以用到我们刚刚上课讲的一个叫个思维,就是把这两个东西组合起来。投票的形式来看对吧?😊,与也就是说,我们同样会把我们的ridge和我们的renofor都进行一个feet,都进两个都进行fe之后。

记得这边还有一个重要事情,就是把我们穿上的衣服得脱下来。我们刚刚得到这个值,其实是一个被log之后的值,对吧?

这时候我们要要用一个叫exception minus来把这个log之后的值给返回成我们原始的最应该有的就是最原始价目表。这时我们会得到两个价目有两个模型分别决策出的两个价目表。

因为我们这是个regress的模型,我们不需要进行投票,我们需要进行就是平均化。因为他们有两个模型吧?两个型要做re的,们两个型之间就是我们怎么取们周值呢就是取两个模型的最优解就是平均解对吧?

那么就是这里我们的就等于我们的这个模型下取得的所有的房价预测的值加上Y这个模型下所有的房价预测值的平均值得到一我们最终的这一套过程就是用我们之前讲思维,就是把多个分类器组合在一起。

后呢都跑了一个比较好的结果之后呢,把他们一起相加求一个平均值得。最终的一个final的结果。这个final结果我们认为是一个asseemble以后的一个优化的结果。这个优化结果把它作我们的最终结果。

然后提交成提交上去就可以了。所以这里就是我们最终一个提交的结果的过程。所以整个这样一个案例从上到下。就是告诉我们如何对于一个真实的案例而言。

我们如何使用我们的呃今天所学的deciion tree以及asseemble的方式,把一个一些弱的分类器组合成一个高效的分类器,得到一个更很好的结果。这样一个过程。

然后这是我们今天想今天想给大家分享这样一个内容。唉呃感谢大家今天的收听,大概是这样,OK吧。然后这边如果有很多就是不太清晰,或者说听起来比较模糊的地方,大概应该都是前面那个数据处理那一部分。

所以大家不用紧张,因为这这个不是这堂课的重点,这堂课就会在我们第三阶段时候会给大家讲,所以大家就是耐心等到那个时候,大家可以再听一遍这部分内容。当然韩老师的案例可能跟我们不一样,这是我自己的一个案例。

韩老师可能有其他其他部分的案例,但是我们处理的这个整个过程都是一样的。也就是说不管遇到什么样的数据,我们的整理整个成处理的思路都是差不多的。我们都是要把一些。

呃呃分组的向量分级的向量变成一个数字化的向量,把一些数字化向量优化成一个更好的向量。呃,更好的数数数据。然后呢,最终的目的就是把我们的原始数据都变成一个数字化的表达形式,然后呢再把它带入到我们的模型中。

比如说弱分类各种弱分类器对吧?然后一堆弱分类,你可以做1000个弱分类器,对吧?然后给他们做一个bu,然后投票或者说做一个regression取平均值的形式,得到一个最最最优化的一个结果。

所以这是我们整体的这样一个呃取取值或者整体这样一个拿到一个真实的数据案例,么进行怎么进行怎么进行数据处理,并且进行我们的。弱分离器到强分离器的转化这样一个过程。O。这个东西我会分享到群里。OK好的。

没有问题。然后呃对,然后这堂课大概就讲到这里了,然后有什么问题我们可以私下讨论,然后根据那个根据老板那个指示啊,我们这个我们课上就是如果大家觉得这堂课讲的。

呃,蛮好的话,或者说有什么有什么心路历程想分享的话,大家可以在微博上或者在其他社交平台,就是艾特一下july,然后艾特一下我我加号。当然阿我也都可以了。然后表达一下这堂课的分享的心得。

可以得到什么200块500块这样的代金券,可以用来购买以后的课程。所以大家如果想要上其他课程的话,可以直接分享分享这样一个就是什么么上课心得就能得到这些钱,这个是啊老板吩咐我呃提醒大家的。嗯。

对老板说的话,我都要听对吧?好,大家就是这样,谢谢大家。然后我把这个东西分享到群里,所以大家可以可以仔细看一下。😊。

人工智能—kaggle实战公开课(七月在线出品) - P6:ML必备技巧:模型分析与模型融合 - 七月在线-julyedu - BV1jh411y7Fh

呃,所以你前面做的事情能够帮助你在你选定的特征上去完成你选定的这样一项特征上去完成模型的建模,对不对?而且你确信这个建模出来这个模型已经是我做过挑选的,应该是不错的一个模型。而且我又画了我的学习曲线。

对吧?我画完我学习曲线以后,我已经做过调优了。比如说它overfitting了,我已经把我的正则化的强度调高了一些,对吧所以。你现在已经有了一个你觉得还不错的模型,一个或者是几个你觉得还不错的模型。

那你可以去做下一步什么样的事情呢?一个模型往往是不够你不够帮助你去拿到最好的效果的。所以你可能要做的一个事情是你可能需要去完成模型的融合,通过几个模型去。通过好几个模型去sorry。通过好几个模型去。

共同给出的结果去判定最后的结果。那有三种方式的模型融合,你会看到最简单最常见到的方式叫做bagging。最简单最常见的方式叫做bagging。那back in的方式呢。一会儿大家看一眼就好了。

第二种方式叫做tacking。然后你会在ki的比赛的选手当中,频繁的看到他们用一个弱化的specing方式叫做bling。

第三种方式是类似于add boost或者是G呃grading boosting decision tree或者grading boosting regression tree这个增强数。

逐步增强数的这个方式啊。所以三种方式,第一种方式叫做baggingbagging是为他们解决的方式都是bagging解决的东西叫做过拟盒叫overfitting,对吧?

那如何缓解overfiing的这个问题呢?大家还记得我刚才给大家说的这个例子吗?我说如果你现在有1个1比10。你现在有一个。哎。😊,我没有选上嘛,抱歉。你有1个1比10的一个正负样本。

我刚才是不是给大家说了,我说这种比例情况下,我们可能可以做的一个事情是用把这十0份分成10个。这是1比10的十的这个负样本的。部分分成10份,每一份聚合正样本构建一个classify。

或者构建一个regressor。然后你去把这些classifier和reggressor的结果去做一个bagging。对吧十个分类器每一个都会有自己自己的主件会告诉你个结果。我去看哪个出现的频次最高嘛。

那如果现在它是一个regressor,一个回归。我这有10个,我这10个会给出来10个不同的回归的结果。我对它去求一个erage一个平均。不就好了吗?所以begging。的方式我给大家说明白了吗?

当然不需要你自己做,一定是有库帮你完成了这个事情的。所以。这个地方。大家可以看到s。好。地址又换了吗?G。哦,我没复制全。sorry。我们。取一个选择的工具吧。非ゃ水。像他那个不太智能。

所以大家可以看到这个地方我们提供。啊,有点慢O这有一个baggingclass是一个分类器的一个bagging。所以你可以告诉他,你选的基械的分类器是什么?

比如说是一个di decision进去一个决策数,那我需要。多少个estimator,对吧?然后他可以对这些estimator,他每他会每次有放回的去取样本,去有放回的去取样本去生成分类器。

然后根据这些分类器的结果去做一个综合的判定,做一个综合的判定。所以有现成的提供好给大家的这个back in class file。O所以我会对分类的结果去做一个vote。

我会对回归的结果去做一个erage做一个平均。然后做为最后的结果。大家都看到这个地方啊,back in class file对吧?这是第一种模型融合的方式。那backgging的话。

你看到的这是backgging的一个例子啊,如果你现在是所有的数据丢进来的话,做训练的话,它很可能会overfitting。但如果你举了100棵树,或者说你有100个分类器去做分类。

做最后结果的这么一个。这么它这100棵树,每一棵树都是由我的一个子集,我抽取出来的一个子集去建模生成的那我就生成一个class file一个分类器。我对这些class file的结果去。做一个投票。

或者求一个mamajority一个绝大多数的结果。作为最后的一个结果的话,你会看到平滑很多。那你刚才这几个样本点带来的离群点带来的这部分已经被我处理掉了。这是baggingtagging呢做的事情呢是。

king做的事情是我有很多个predor。我有很多个predor。我有很多个predor呢。🤧我做的事情是这样的,我的每一个分类器是不是会给出一个结果呀?比如说我的第一个分类器给出的结果是。

我的第一个分类器给出来的结果是result一。第二个分类器给出来的结果是result2。第三个分类器给出来的结果是result3,我可以在R1R2R3的基础上。再去构建一个新的分类器。

我把上一层多个分类器的结果当做feature,当做特征,去构建我下一轮的分类器。所以我不太清楚这个东西大家直观的理解有没有理解清楚啊,就是。我的第一个分类器是这样的我的第二个分类器是这样的。

我在这些分类器的基础上去构建了新的分类器,它是以这个F1的结果,F2的结果,F3的结果等等这些结果去作为输入去。完成这个事情的。所以。😊,其实大家一个直观的理解,神经网络很多时候做的不就是这个事情吗?

神经网络因为我每一层的结果我就输给下一层了。这个里头最简单的方式啊,刚才有同学在问blaning。你你的majority和linear的方式,linear的方式,线性的组合的方式去对最后的结果。去。

做一个加权的平均,这就是bling什么意思啊?如果你现在是一个回归类的问题,我要去预测房价,对吧?我的第一个regressor告诉我第一个reggressor告诉我说。😡,这个房价是呃是1个Y1。

第二个告诉我是Y2。第三个告诉我是Y3。我最后去预测这个东西,最简单的方式是我就用一个线性的组合,用Y1Y2Y3的一个线性的组合,一个 linear的组合去拟合最后的结果。

我知道了哪一个reggressor,它的结果是比较准的,我会多给它一点权重。另外一个regressor不是那么准。但他可能能帮我拉回来一些过拟盒,所以我给他一个小一点的权重。我不知道这个地方我说清楚吗?

blding很多时候他们用的blding是一个弱化的tacking,也就是你这个G我不取很复杂的G,我就取一个线性的组合,一个linear的一个组合。OK所以有同学会问说。

那这个那这个呃有没有方式可以做呢?呃,这个部分fiight could learn没有直接提供任何的,没有直接提供接口给你。但是这个事情大家是可做的。你大家大家想清楚这个东西啊呃,bling的话。

Bnding。我会给大家提供一个脚本,好吗?我。一会儿上完了课,我会给大家一个脚本,你们大家可以直接用呃,不在cyclcle里头封装的,但是大家可以直接用他做的事情非常的简单。

他是拿到这个output之后,把这些结果送到了一个linear的一个。Lar的一个or。啊,一个线性的一个regressor里头,然后你直接可以拿到对应的W1和W2和W3好吧,这就是一个bling。

我们就bnding就提到这好吗?然后最最最常见的叫做buosting啊,boosting的话,你可以用sd learn当中提供sekyd learn当中提供给你的这样一个un someble model啊模式去做。

当然这一头大家会看到啊。Sorry。这个看到吧?这个。所以我们可以去做一些模型的融合。大家看到所有SK认的模型的融合的方式啊,就是呃tking它没有ting或者叫bling,它这里头没有。

所以你看到其他的这个方式呢,在这里头都有有ad up。做做分类啊,你可以做分类或者做回归啊adbu。然后会有这个GBDTgring boosting class firegrreing boosting regressor对吧?

有这个 randomom forest。刚才大家看到的random forest其实是blackened的一种random forest。你可以理解成它是bagging的一种。

它是对数去做决策数或者是回归数去做bagging。所以都在这儿好吗?就是大家戳这个网址进去就能看得到这些。然后我我给大家的建议是,如果你要用GBDT不要用cycl learn。

因为它很慢去用chbook。或者是微软刚开源的lightGBM。lightGBM。呃,我的。get upub上应该有一个lightGBM的一个。

抱歉lightGBM的一个pyython的一个rappper一个封装。因为它原原生态不是给了pyython的,但是有一个python的封装啊,之之后有机会我们带大家看一下啊,目前用的比较多的还是叉us。

因为它比较用的人比较多,所以比较稳定啊,你出现任何的任何的。报错任何的问题你都可以找得到答案。好吧,所以bosin的话,我不想给大家细说,他做的事情无非就是我在做这份练习题的时候,我会不断的去。

我会先用最笨的方式去做这份题,然后做的不对的地方,我会把它的权重加大,然后我再去再去继续做。所以大家看到了这个地方我做一个最简单的二分类齐,我就是一条直线。这条直线会分成这样两类,对吧?

然后分这样两类以后,发现有有三个分错了,我把这三个分错的部分权重加大了,然后再分对吧?然后我再得到这个下一个结果,对吧?呃,大家需要的这些资料,我在课下会集中都发给大家。所以。大家。大家这个。呃。

不要着急好吗?这是buosting boostosing啊,就是有同学问到了说ad boost和grading boostosing的一个区别。那我。简单的说一下啊,因为这个属于原理类的原理类的东西。

ad boost做的事情是条样本的权重。调样本的权重。那grading boostinggrading呃这个grding boosting decision chain它做的不是调样本。他是在。

我的los function上去做的。然后。我们来看一些其他的东西带大家看一下所以SK论我们过了一遍啊,S论大家看到SK呢从最早最前面的这个大家可能会用到的啊,这个数据的清。

大家看到最简单的值填充的那个部分?特征工程各种各样的数据ature的这个pro里头是有的。然后特征的选择选择完了以后你可以去建模,然后注意这里头用到非常非常多的然后你可以去评估模型的状态。

我们给大家提供了学曲线画出来看模型现在怎么样然后去做处理好吧,然后你可以对模型做融合sing对对mod en sampleble的这样算一些方方式啊?我会给大家用ing?ing家如用的要用。

tree那个比较慢。好。

人工智能—kaggle实战公开课(七月在线出品) - P7:Spark MLlib and the Pipeline API - 七月在线-julyedu - BV1jh411y7Fh

他说老师我想用大量的海量数据怎么办?我想把数据全用起来,我不想下采样啊,我不想去做大量的采量,丢失掉数据信息。对,那你要借助于大的大规模的工具,比如说借助于sp。

对吧借助于park那park的话里头有一个部件叫做ML啊,就是在在这啊,它除掉这些spark circle啊,streaminggraph X是做一些其他的一些工作啊,比如说流失的数据一些处理啊。

一些一些这个在HDFS上数据的一些have里头数据的一些。

啊,circle你可以去做一些统计啊,那建真正建模在MLlib里头对吧?啊如果你要用它去做啊,这个里头你要熟悉一个东西叫做ML pipeline啊,你不是说不是说要熟悉这个东西啊,你要是自己能写。

当然更好了,但它给你提供了一个类似于流程的一个东西啊,这个park sparkk的这个。所以它提供了一个一样的东西啊,这里头会有data frame啊,大家很熟了,对不对?

pada里头会有data frame对的,那在park circle在park里头呢也是会有一个你park circle里头也可以读出来一个类似于pa里头data frame的一个东西啊。

然后有个这个transer啊。transer呢你可以理解成我会对我的data frame去做一个变形,它可以去变成另外的一个data frame,也就是做一些数据的一些预处理的一些工作了。简单理解。

这个然后会有其他的一些priameter把参数位进去啊evaluate。所以你看load data对吧?数据载入进来抽特征啊,一个 pipelinepeline后大概啊训练模型做一个评估,就这么简单。

然后我们来过一下过一下呢可以告诉大家在啊parpark的MLML label里头呢,大概是它有这样的一个 pipeline啊,这是原始数据。re data简单以后我会做一个啊这是比较细了。

会有一个str indexer啊,类似于什么呢?大家都知道做one hot encoding的时候,one hot ending的时候,我需要。

我做完 hot encoding一定是需要对每一个类别会有一个。下标对不对?会有个编号,所以这个stream index实际上实际上做的事情就是给给这个类别一下标。好,那你现在知道哪个类别的下标了。

你就可以去完成用one hot ender去完成这些类别性变量的一个编码了。啊后很简单啊,这个东西它叫做OHE叫做one hot encoing。

你看它是一个缩写 hot enco啊OHE feature啊特征那你有了这个one hot en的这个ature以后,你就可以丢到了just里头去跑了和呃论非常非常的像。但是只不过它现在是在集群上跑。

然后。😊,呃,而且代码如果大家不熟啊,我们用pi如果大家不熟,我们我们我因为我我知道很多同学对s对scal不太熟。所以我们用pipar的话,大家看一眼就能明白啊,这个的话是我们把数据读进来,对不对?

每一行一行的数据啊,还是刚才一行一行的数据没问题吧。所以这个地方呢因为如果大家仔细去看CSV文件它是用逗号分隔的,对不对?用逗号用逗号分隔的。所以这个地方做一个事情,说每一行读进来以后呢。

我会对每一行去做一个处理,看到这个 map函数了吗?说我读进来以后啊,我这个park这个函数这个。会对每一行去做一个处理,做什么处理呢?做一个分割。所以我我把它分割出来。ok。😊,然后然后注意看哦。

注意看这个地方,最后是不是有个负一。🤧啊,就是你要你需呃。这个这个是你应该直接把你读进来的数据去做一个split,拿到每一个feature就够了,对吧?然后你拿到非你这个地方的话。

parts你可能会去做下一步的处理。比如说你看这个地方,我给了他一些名字啊,就是我这里头okK第一列是一个label一个标签。第二列到第几列是一个int型整形的统计值的特征,对不对?

int featureature看到了吗?inter featureature后面是category featureature啊,就这样一个事情,然后。啊,这个地方我return了1个RDB。

return了一个data frame,一个一个大家熟知的数据帧。然后后面我们要做一些事情啊,这个事情非常非常的简单,就是。但大家看起来很简单的一个事情。比如说one hot encoding啊。

读热向量编码,在spark里头,它会怎么做处理呢?你看这个地方啊,我的类别有ABC3种类别,看到吧?两个3个A啊,对吧?两个C。对不对?一个B,那实际上他去做这个。事情呢是他会先做一遍统计。

就是park去做这个事情,会先做一遍统计。所以他做完一遍统计以后,他发现哎A好像出现的频次是最高的那我先把它的把它的这个索引编出来啊,编在最前面,所以它的A拿到了1个10这样一个索引。

然后第二名第二个频次高的是C,然后C就拿到了一这样一个编码,能明白吗?所以就是就是其实就是这个意思AB嘛,对不对?所以他拿到是第一个位置嘛,拿到是这样一个位置嘛,对不对?

对你按照这个流程写就可以了啊呃工业界用s多还是用par多呢都可以用啊,但是因为是这样的,因为因为spark的原生态的语言是sar,所以他有时候它的AP最新的功能会跟进的比较快呢会比它稍微慢一点点。

但是就目前为止,大家想用到的这样一些模型。举个例子,log regression或者是GBDT啊,我我组之前有同学很习惯用呃park去写GBDT的,而不是用 boost啊。

当然当然机 boost的话有分布式的。呃,是也也是可以跑啊。有些同学习惯用用sk。所以你常用到的这些log regressionBDT这样一些模型是一定是par和都可以都可以完成。

O所以如果你只熟pyth你就用par写。因为sner它学起来还是要花一点点时间的啊。所以pypar和刚才的这个做法呢啊 sorryor这个这个train index呢,我不知道我给大家说明白了没有?

它做了一个统计啊,然后按照频次从前往后就给他们做编码啊,所以这个拿到的是零号编码,这是一号编码,这是2号对吧?第二个位置啊,O然后接着他就会得到一个,因为为了节省空间嘛。

所以它这个地方用的是一个稀疏的向量,所以是一个pae一个 vector。所以大家这个地方大家一定能看明白啊,它说的是ok我A这个是占的是第一个位置啊,第零个位置,第零个位置是一。O。😊。

就是如果我现在要编码做一个one hot encoding啊,听听听清楚。如果我要做一个one hot encoding。如果我的one hot encoding,本案理来说我有三个类别。

我应该开三个位置,对不对?如果我我现在要构建一个系数向量,我只开两个位置的话,它只会取频次最高的两个两个feature。所以你会看到,如果我现在是一个。呃,对,所以如果如果你这个vector。

你你是可以自己去去做这个阶段的嘛,就是不一定你每个one你的你做oneho encoing的时候,不一定每一种类别你都需要给他一个预码。所以不管不管怎么做啊,最后做完的结果你来看就是一个稀数的向量。

然后A的话是在第一个位置啊,第零个位置对吧?最前面拿到了一个一的值,对不对?然后这个CC是不是在一号位置拿到了一个一的一个值啊,那看你这个spa vector,你这个向量,你这个读热向量编码。

你愿意给多少列,对吧?所以呃一会儿我们会给大家带大家过一遍那个我是不是给了大家一个。我给了大家一个。这是一个这个是一个我不会给大家完整的细讲啊,但这是一个工业界完整CTR预估的一个piline。

然后数据集就来源于这个这个数数据集,然后这里头会大家能看得到完整的完整的过程,就是我用。用我的这个spark是怎么样去完成这个one hot encoding的特征。

然后用这个特征去我pi spark全是用pi spark写的,然后去完成这个数据的啊分成训练集和测试集,对吧?或者叫验证集,对吧?然后我去我去抽取特征,对不对?我抽取特征出来了以后,我去做这个。

logity regression,然后做完logity regression以后呢,我可以去做一些这个你看这它这个地方会有一些,刚才我们是不是比赛用的是lock loss啊,用的是lock loss。

所以这个地方会有lock loss的一个评估。然后会有训练完了之后呢,大家来看啊,后面还会有一些这个。呃,模型的评估模型的评估以后画出来ROC曲线啊,这个很重要。ROC曲线啊,在工业界这个用了很多。

因为AUC实际的AUC是ROC这条曲线下方的面积。然后我们怎么做降维啊,看到这个地方feature dimension这个降维啊。特征维度的约减降维,我们是怎么做的?这个地方有个哈希的处理啊。

这个这个ipPthon有兴感兴趣的同学可以去看一下,这是工业界真正在做的处理,真正在用的方式。呃,这个我们不多说,我们先我们回到我们的PPT,我们给大家讲完。所以你简单的你简单的理解。

就是我刚才我我刚才所有的操作就是得到一个one hot的一个feature嘛,所以你得到了one hot featureature,你得到了一些feature,对吧?你对每一个列会去做一些处理嘛。

因为刚才有一些列,比如说user featureature。这样的列你做了one hot encoding之后,它可能就变成了一个由由现在的一列变成了一个向量嘛。那你现在要把它全组起来嘛。

所以这里有一个东西啊,会有一个veasseemble。就是用来把前面所有处理完的这样一些列拼在一起啊,得到最终的一个feature。也就是。这些东西拼在一起得到它啊。

好,后面就是一个logggion了。然后你可以看看后面这个这个地方,我也我我我也我也贴了一个啊训练。

和SK learn保持的很一致哦。所以这个地方大家看到了fet吗?大家看到了ft吗?它需要这个地方需要你灌给他参数,需要告诉他用的是什么样的一个模型。

你看我这个地方用的是一个二分类的一个一个这个evaluator or, sorryor,这是一个啊。评估器,然后你会看到这个地方会有一个primeter builder。

这个里头会把把你的这个你的一些参数灌进来。比如说需要几折交叉验证啊,number both对吧?呃,ok ok那个是单机的啊,然后对。对我们的park这个感兴趣的同学呢,先可以去看一下这个好吗?

可以看一下我们给大家的这样一个文档,然后。给大家这样一个ippython这个过程。因为它里头可能会设计可能需要大家熟悉的一个东西是你要熟悉它里头map和 reduce。

你要熟悉它里头的map query,就是因为最大规模的数据的话,它做的处理都是先分发,然后再再处理完了以后再聚合。先离开,然后我们来。啊,我们接着往后讲。所以呃LR我简单给大家讲到这儿OK吗?

就是有更多的问题的同学呃,可以在。课下,然后咱们再交流,我们会我会把这个。这些代码呢回头再我放到我们的。云服务器上。好不好?你看这是对,这是腾讯给出来的,说我们为什么要用LR模型,对不对?对吧。然后。

这个模型,然后这是阿里的,你们可以去看一下我给的文档啊,这些都是工业界真的在用的这个文档。然后这是凤巢的OK。

所以LR。

人工智能—kaggle实战公开课(七月在线出品) - P8:特征工程之非标准数据的处理 - 七月在线-julyedu - BV1jh411y7Fh

那我这里先过一下PPT就是对于这种非标准数据怎么做的?就是刚刚我们有看到,就是所有的数据都是整齐化一的这个X等于呃,写特征一特征2特征三特征N对吧?这样的形式。但是呢现实生活中,我们这些数据本身。

它并不是非常标准化的特征一特征2特征三特征是一叫特征N,对不对?那么我们要通过一些方式把它写成这样一个X特征一特征2特征三特征N的方式,那么通过什么方式呢?

比如说降维度取特征或者数字化表达一步步这样的方式来把我们。左边这些。现实生活中的数据变成右边这些高维数据的表达形式。O。然后比如说文本数据里面就是一个hello word。对不对?

那么我们可以通过比如说记忆,我们可以通过不同的方式,要这种通过不同的方式把它变成一个数字化表达的形式,宽泛的也称之为一个特征工程。只不过这个特征工程比我们刚刚讲的会更加复杂一点。

我们刚刚课上看到那个特征工程是,我本来那个数据本身它就已经是一个。呃,已经是一个高维的X的形式,然后要预测出外,对不对?但是。那里面可能有一些con,它不太标准,不太开心。

不太呃不太不不太能够被计算机所处理。所以我们用一些特征工程的方法把它变成都是由数字化表达的形式来进行我们下一步的模型的呃处理,对不对?而这里这里的特征工程就是我们本身这个X本身。

我们这里其实X拿到手的时候,X是等于一句英语叫hello word。那这个处理就更加尴尬了,它本身就已经不是一个。不是一个能被我们一个co,一个 column一列一列来处理的一个形式了。

那我们要通过各种比如说用自然语言处理的方式,比如说通过记录每一个单词出现的次数,把它变成1个01001这样形式。也就是说呃第一个单词比如说hello这个单词出现了一次记为一。

其他这个地方都没有出现即为零,没有出现即为零,没有出现即为0,出现记为一这样的一个形式。或者每个单词出现的频率,也就是说这个出现的数字出理一个呃总数嘛等于一个频率,或者说用语义网络。

也就是之后呃我也会给大家讲到word to。通过语音网络把它们表达成一个固定fix size的一个网络,对吧?0。143。28888各种形式表达形式。也就是说。同样是特征工程这个事儿。

我们把这样一个文本数据通过我们自定的各种规则。自定的一些规则,表达成一个数字化的向量。OK同理啊我们的图片数据。就是把我们这样一个因为图片本身是1个RGB点阵是吧?我们可以把它表达成我们这样一个矩阵。

RGB形式,那这个本身也就已经是一个数字化的表达形式了,它本身就已经已经可以被我们作为下一步的处理的input了。所以图片而而言还稍微好一点。当然你要有一些不同的图片处理方式了。

比如说你想要截取这里面狗头这一部分,其他都不要。那这里要有这里面又会涉及到一些特征提取的方式。同理那还有视频数据。那视频数据呢那就是也是大家就可以想一下,就是一样是一个从高维到低维的方式。

那么高维就指的是视频的维度肯定就比图片高,对吧?图片的维度肯定比文本高,对不对?那么这时候我们上升到视频维度的话,那我们可以把它分离成音轨和视频轨而视频轨本身可以被分隔成成一堆图片。

那这时候一堆图片就是由一堆图片所组成,对不对啊,每个图片是因为可以用RGB点阵变成一个矩阵同理音轨可以变成er声波或者是变成语音识别的语音,那语音本身通过语音识别变成文本。

可以被我们记下一步进行NOP的处理,对不对?那么同同时我们还可以通过声波把声波这样一个波形,通过这样一个零1的形式。我们通过当然不一定是零1呢,就是波有多长,这个频度有多高的形式,把它写成一个长长的呃。

呃,向量的表达式。也就是说对于各种高维的数据,我们通过这样一次降维,一次一次的降维降维降维降维的形式,最终把它表还是把它表达成我们想要的数字化的表达形式。然后这具体案例就是这个东西了。

那这个东西我会在下一课讲NOP统一讲NOP的时候给大家具体讲讲解这个案例是怎么做的。因为这样的话会更加更加更加更加符合逻辑一点。但是呢我这个课件已经上传了。

所以说大家可以先提前预习一下这个top news这部分的一些内容。然后下堂课我会具体给大家讲这堂呃这个自然语言处理。

这一类的题目在开国中是怎么做的?对,一张图片,如果直接转化成什么302维每一维是没有什么太多意义的对,是没有什么太多意义的。但是比如说你后面可以接CN对吧?就是work卷积矩阵等等这样的东西。

把它因为它本身因为图片本身被你表达成矩证之后,它已经是一个数字化表达形式。你后面可以接各种不同的机器算法的机器学习的算法,把它转化成一个有意义的特征形式。

这个我会在下面堂呃不在下面讲这个在深度学习那堂课的时候会给大家讲,大概是在后面第八第。第五第六课左右的时候会给大家讲,就是图片。

其实图片的这个处理比其他东西稍微trick一点在于它本身变成一个矩阵表达的时候,它并不是一个有意义的东西,而是通过了connetwork之后,得到了那个值才是我们真正理论意义上的一个特征值。

把那个特征值再进行下一步的呃,比如说神经网络的处理。这内部才是我们。比较正统的机器学习的后面半部分做法。不过这个现在解释起来比较复杂,我会在第五第六课的时候给大家讲,所以这是第二课。

然后第四课给大家讲自然语言处理,第六课给大家讲图片呃,就是呃深度学习方面的应用。OK所以谢谢大家,今天谢谢大家。然后今天实在不好意思,稍微。

呃,我稍微起的晚了一点,因为因为我刚刚是踩着夕阳进家门,然后然后然后又爬起来,对吧?所以见谅见谅见谅,然后下次不会了,因为毕竟是一个平安夜嘛,昨天大家都在外面,所以就是这样。好,么么哒,谢谢大家。

然后如果觉得这堂课好的话,大家可以呃啊我想想看那那那句话怎么说,可以发微博,然后艾特呃7月在线,然后艾特我,然后可以拿50块代金券。我大概忘了,大概是这个意思。对,然后大家就这样好,谢谢各位。😊。

对我后面的资料和代码都会上传的。呃,对,这次是因为实在是因为有假期,然后我自己本身也是在外面浪,对,然后就没有来得及提前上传。我之后会提前一周尽量提前三四点两三天的时候给大家。对,好,谢谢各位。

人工智能—kaggle实战公开课(七月在线出品) - P9:以鲸鱼识别为例,利用深度学习解决Kaggle竞赛中的图像分类问题 - 七月在线-julyedu - BV1jh411y7Fh

啊,比如说这个例子,我们想做呃。就是说我我们有什么,我们有CN跟RN啊。我们想做什么?我们想做这个呃呃输入一个图片啊,输出它的这个tenion啊,输输出。

这个图像图片最后这个啊captioning某一个词在具体某一个位置的一个一个注意力啊,我们怎么办呢?啊,这个是我们想做的。啊么我们有的是第一,我们有这个CN啊。

CN我刚才说过了CN的这个就是我刚才说的CN把一个图像变成一个。变成一个tensor的表示,汇比变成1个4096的,这是4096维的一个向量。这个的表示它的这个monty instance。

它这个mounty instance的这个信息就包含进去了,就是说它每一个这个小柱柱代表了图像中的一个区域,这个是它的核心。而这个事情是需要从机器学习的那个角度来看的。

那么我们这个attension其实就是关键就是利用了这个表示啊,就是他把这个tensor的这个东西拿出来了。这个每一个点就。这个每一个框框其实代表的就是这么一个小柱柱。

而这个框框是能够回溯到具体的这个图像中的区域的。然后我再针对于这些instance,我利用RN,我每次做一个soft maxoft max回归的是我需要attention的这个这个inst的这个ID啊。

所以呃一个是呃呃呃。这些instance的一个啊。一个线性叠加,再加上我的这个caption的这个word。

我就能每一次的预测出来一个呃这个呃需要attentionatend到的这个instance的这个位置。就是很简单的一个事情。那么其实比如说你回到了这个呃两年前,你自己想当时还没有我退身啊,两年半前啊。

应该是两年半前吧。如果你回到两年半前,别人想告诉你说,请给我做一个attention啊,你怎么做呢?如果你对CNN的这个真正背后的这个意义比较了解,然后又懂1点RN的话啊。

这个事情你也就啊其实也是一个并没有什么啊,你你也就能自己也就能做出来的一个事情。这个是我希望大家啊掌握的一个一个方向。再比如说一个例子,就是说我们呃能不能就是说我们想做什么?

我们想做一个呃一个一个所谓的这个影空间,这个share space。就是以前我们对图像,我们这是一个图像,这是一个label。而我们对这个label的编码是一个one hot enr,对吧?1000。

或者是00100对吧?那么其实我们现在一个每一个label,它是一个英文词啊。比如说这这个它是一个比如说它它是一个cat。或者他是一个dog。但是诸位你们如果稍微关注一下NLP的话。

我们NLP里头其实有一个东西叫做wordl to vector的,对不对?work vector的表示是比这种one号ing表示不知道好到哪去了。所以说我们如果要做一个分类问题。

我们把这个label背后的语义信息所忽视的话,直接强行的回归到一个不包含任何语义信息的这么一个label里头去,肯定是呃不够圆满的吧。那么有没有可能我们把这个这些label当做一些词。

然后用一种inbedding的方式嵌入成了一个向量。然后我们学出来。就就不做分类任务了,就做一个回归任务了。或者说换一句的角度,从呃比较数学的角度讲,就是说。

这是图像image它的一种ebedding对吧?它的一种ebedding它这然后这个label啊。它的一种inbedding,然后我们学出来就是每一个label我们在。一个空间中在这儿。

就比如说这个是cat啊,它的一种嵌入啊,然后这个图像它的这个嵌入,比如说在这个共享的这个空间中啊,它大概图像在这个点。然后我们通过监督学习的方式。

尽可能的让标注有cat这个label的这些图像都跟cat这个label比较近。啊,这个事情啊也有人做了啊,但是这个事情也是非常straightfor的一个。一个应用啊,我说明白了没有?

就比如说我们这个是一个图像,我们走进了一个VGG啊。然后走进微微机机制之后,我们又有一层,然后再再一层这一层我们回归的是word。To vector。而那么如果是这样做回归的话。

那么我们这一层其实就是我们的这个所谓的shared space。嗯。好好。那么这个是一些word to vectorctor的一个介绍。其实我想说的是,我们想做word to vector。

就是说比如说你给我一个就是w to vector,它关键的假设是这样,我们想知道一个词儿,一个词的定义是根据它周围的词所所决定的。那么如果比如说你在时间倒流回到2003年。别人给你提出一个任务。

请我给你个词儿,我给你个word。请你能不能给我一个这个vector,这个ve而这个vector跟这个word是有,就这个vector是包含一定语义信息的,这个是我们想做的对吧?

这我这我这是我一旦一再强调的,这个是我们想做的事情。那我们能做什么呢?我们能做的是,那么如果我们基于这个信念的话,我们是能做SVD的啊。

我们把这个cocurnce这个mtrix做一个SVD分解分解之后的每一行其实就是这个就其实就是一种 to vector的一种嵌入。但是他的你看这是SVD嵌入出来的入嵌入的也很好。

但是它的问题就在于它这个方法吃不进去很大的数据。那么呃用一个单引层的神经网络来做同样的一个任务啊,他就做的比较好。这个这个就不说了啊,这个就是啊啊NP那帮人的事情。但是如果你们这个做做做CV的话。

你们心里要清楚,我们这个图像嵌入跟这个文本的嵌入这种多模态的学习是可以学出来一个一个你叫一个引空间也好,叫一个share space也好,然后在这个share space中,你就能做一些其他的一些。

事情了,而这种approach呃是呃机器学习这边过来的啊,所以希望大家也能够呃多关注一些啊这种玩意儿啊。OK那么现在我们说这个cargo challenge啊,这个其实呃可以当一个。嗯。

如果花了两个小时讲这个,我相信。大家也会觉得比较浪费时间的。啊,做C微的W to vectorctor不是很懂哈那。

我们来讲一下。他这样。我们输入一个词儿,对吧?输出这个词儿,周围所有词就是这个是一个很有野心的一个很简单粗暴的一个词。比如说嗯一句话吧,嗯话在哪?输入的是这个词啊。

输出是请你把周围这些词全给我做一个prediction。因为神经网络它是能monty taskask的,就是它就全就全就都输出了。然后输出之后呢。

我们每每每一个词我们会有一个叫做lookup table,这是一个lookup。他这些这个是ID啊,就比如比如说这个词儿ID是一啊,ID是2,就是你的这个字典在这儿,这个是word。

to vector的一个emdding。那么每一次更新的时候呢,我刚开始初始化的时候,我全部是一个随机的300维的一些向量。然后如果啊。这个词儿啊那到了这个词儿了。

我我把这个这个字字典中的这个inbeddding我拿出来,我做一次训练更新。更新之后呢,我不因为我做backpro,我是能把这个输入这一层也做,就是说我也能对这个X,我也能对X进行更新的。

你们做你们做图像的,肯定你们也知道,如果我们要做这个stll呃,就是这个。Transfer。就是你们是能对这个image做梯度的,对不对?这个你们是会的吧,就是你你们是能对image。

做这个做做这个梯梯度的。那么NLRP一样,它也是我back个 purple给你回去,我也要对X做一个upateX updateate之后,我把X这个upate的这个新表示,我对对这个表做一个更新啊。

然后就这么迭代的用一种单隐藏的一个神经网络来训练就行。它其实并不是深度学习啊,它就是一个神经网络,它一点也不深啊,大概这个是嗯谷歌他们那个。经典的一个方法是1个300维的一个。一个表示。

啊啊CV的 word好,抱歉啊。啊,C维 world vector是这样。好。CV其实不是CV的word to vector,就是说CV要利用到word to vector是这样。

我们现在不是有有一个图像,有一个 inputput的X嘛?我们有一个Y,对不对?我们这个Y有可能是一些label,对不对?而且有有可能是monkey label,对不对?

就是有有有可能一个图像它对应的三个label,下一个图像对应了5个label,下一个图像对应的两个label。而这些label,我们如果用one halt code的方式是不是不是很好啊?

因为他没有什么语义信息,我们想借用NLRP中的一些知识,我们对这些lal做一种嵌入啊,这个没有问题,对不对?那我们没有嵌入之后呢。

我们是不是就能那么我们是不是就能给他就是说我我们学习出来一个一个输入到输出的这个回归问题。嗯。而不是一个简单的分类问题。而如果做回归问题的话,我们倒数第二层的这个激活层的这些值。从嵌入的角度讲。

它其实就学出来了一个隐含的空间,让这个。图像跟这个label映射到了一个空间里头,使得空间里的同样label的图像跟label长得比较近。这是一种方式。

另外一种方式是我的这个text跟这个image它共同的进行一种训练啊,然后呃再做一个监督式的学习。这个跟任务就就有关了,不同的任务,不同的干。那么这种做法呢就是多模态的做法。

这种做法呢就纯粹的monti label的一个做法。

那我。好,那么呃呃呃。这个tsask呃呃很简单啊,就是说他们有这么4000多张从海上拍的这个鲸鱼的照片啊。呃,给你一张新照片,请给我分类是哪一种鲸鱼啊。

就一个一个所谓的fu green的一个分类的问题啊,那我们看看。

他这个训练仪就是4237张啊,一共是427种。但是他。比较扯的地方是有一些的这个。这个鲸鱼的类别啊,这个是一个鲸鱼类别的一个分布啊。

嗯每一个是它的这个类别的一个1个ID有些类别在训呃在给你的这个训练集中只出现了一张。这个是一个小问题啊,需要需要处理的一个一个技巧啊,那么就是。拿到这个问题。OK你有个图像,我有个label。

那么最最最b line的方法就是OK那么我们把这个图像我们res稍微切一下,撂到一个微基金net里头去。我们算一个label啊,这个应该是嗯就是嗯大家学过第二节课之后就应该会的事情。

因为我们想干的是啊对图像进行分类,我们有的是一个从网上下了个危机G啊,那么我们肯定第一步就先这么干,看看效果怎么样。如果这这一步的就是做深度学习的事情最好我我还是建议大家嗯这种迭代的敏捷开发好一点。

就是先先做个最烂的。然后一一步一步迭代的这来来做。如果我们这么做完之后,准确率已经差不多99%以上了,那你就不用再做其他的事情了,但是很可能不可能有这么好,但是你也是要从b斯烂往往往下做,对吧?

从b斯烂往下做。那么这么做完之后就会有很大的问题是什么呢?如果你对这个模型,你给它做节卷机,把它那个。把他的那个呃就是说呃把把他所关注的那些点plot出来一下之后,你就会你就会发现。

这些海面上的这些波纹其实是这个分类器所关注的一些地方。而这个事情是你不想发生的一件事情。你就明明是在对鲸鱼的这个脑袋进行分类啊,到最后这个分类器却很多分类器,就分类器在很多情况下再看一些海面上的波纹。

那这个肯定是比较missleading的一个事情啊,那么你要干的下一件事情呢?就是说啊我想解决这个问题。那我一种可能的方式是什么呢?一种可能的方式就是说啊这个东西切的还是不够。

我能不能只把这个大脑袋切出来啊,就是说我输入一个已经reess过的1个2562乘256的一个图图像。那么我们来一个这个这个这个所谓的localizer。

我们把这个图像给它切成啊这个么只包含这个脑袋的一个所谓的证证件照,然后再撂到一个呃V机机网里头再训练啊,这个这个的原有。不是因为我们上一步分析过了。

我们发现啊这个这个海面上的这些东西是我们困扰我们的一个事情。我们才这么做的。OK那我们这么做,那我们怎么做这个怎么样找到这个bunding box呢啊,那么最简单的方法就是我刚说了。

我们不会做bing box。但是我们会做回归啊,那我们就标注一些bunding box,我们回归这个bing box的。四个点就行嗯,这这是最简单暴力的方法。那我们我们基于这个方法,我们做这个。

RRCN或者是faster。而且也可以就是说我们有各种各样比较奇奇怪怪的方法来找到这些。bunding boxesOK那么这个是第一种改进方式啊,做完了之后呢,还会还会有一个问题,就是啊啊对对。

就是说我我我们会会什么,我们会分类或者回归。我们想做什么,想获得bing box。那我们要干的事情就是说我们对这个bing box的这个。这个点做一个回归就行啊。

那么那么我们下下一个事情要要做的就是所谓的这个aligner,就是说我们要对齐,因为。这个脑袋的脑袋的脑袋的脑袋的这个这个指向啊,也是影响这个。就因为脑袋指向是比较随机的。而一个神经网络。

他并不知道这个是一个很不很不重要的一个点。他以为就是他他会学习出来一些规则,会会以为是在去。在这个角度上,它是这一类,在那个角度上,它是那一类。

那么我们需要就是说我们第二步就是我们会我们需要找出来他的头呃,跟他的脖子这两个关键点。然后根据这关键点,我们做一个做一个旋转变换,我我们就能都他们都给我都都给我扭成这个角度啊。那么我们怎么找关键点呢?

哎,那这又是一个典型的一个回归问题,只要我们标注足够多的数据,我们回归这两个坐标就行。回归完这两个坐标之后,我计算一下这个坐标跟这个平面的这个夹角,我们给它硬拧过去再ress一下就行。

那么这个是第二个trick,就是说我们怎么样的做这个aligner啊,那么一样,我们想要的是关键点检测,这是我们想要的,这个是你们CV中的问题,但是我们机器学习中的东西只有一个分类跟一个回回归器啊。

怎么办啊,啊,有分类器不好使,回归器的话,哎,我既然关键点了,那我就回归就很那么简单粗暴的把这个把这个点当做一个回归问题回归一下,背后有什么理论依据没有。但是很work啊,那就行了啊。

那就是反正就就这么干了啊,那么就把这个。

这个就能这么做。好。

人工智能—Python AI公开课(七月在线出品) - P1:三节课上手Python第一节 - 七月在线-julyedu - BV17W411K7G8

7月公开课的这个三节课上手python的中的第一节。那么呃这节课呢我们主要的一个目标是什么呢?我们主要的目标是一个呃第一个呢就是说我们要跟大家一块介绍一下我们python环境的一个简介呃。

python的一个简介和它的一些具体的应用啊,这是咱们的第一个目标啊,第一个目标。然后第二个目标呢是说呃带着大家,咱们手把手,哎把这个python的环境给搭建起来啊,搭建起来。

第三个目标呢就是说如果咱们把这个环境搭建起来以后啊,咱们的这个呃主要的开发工具,也就是notebook是如何去使用的。这个是需要和大家一块去啊去做一下。

那么最后一个目标呢就是咱们的python的一些基础操作啊,python的基础操作。然后呢,python的基础操作呢就是说我们有一些python的简单的基础的语法啊,简单的python的基础的一些语法啊。

一些它的一些常用的操作啊,比如说它的这个操作符啊,或者一些它的一些循环分支判断结构。啊,可以说今天内容还是比较多的。但是我们今天的课程呢会有一个特点,也就是说我们大家再去。嗯ん。😊,呃。呃。

我们的这个我们今天的课程的一个特点呢,就是说有画面啊能看到画面吗?我我共享的是我的PPT大家能看到吗?呃。呃。等稍等一下,我确认一下,大家能看到我这个PPT啊。呃,稍等一下,我确认一下哦。

PPT可以看到是吧?哎,好的好的,还把我吓了一跳哈,我生怕大家看不到咱们那个PPT啊。好,那么既然是公开课呢,就是说我们也是在星期天的上午,大家也抽出了自己宝贵的休息的时间来一起参与我们的公开课。

那么既然我们花费的时间,那么我们就一定要有一个结果,对吧?就是说这公开课并不是说呃老师我听完呃你讲完的公开课,好像啊我知道一些东西ok结束了,不是这样,我们一定要有一个结果,既然对拍摄感兴趣。

既然对呃继续学习数据分析啊感兴趣,那么我们呃参与了这场公开课,那么呃对不起,那么在我这里我就希望你能有一个结果,好,那么好,那么我们继续开始往下去讲啊。😊,好,那么我们开始第一章的一个讲解哈。

那么我们python的一个简介和应用。那么python的简介和应用呢在网上可以说是一搜一大堆啊的东西。那么在这里呢我就不再过多的去介绍,我只是简单的去讲一些东西啊,那么python的语言的作者。

大家至少得知道是吧?哎,归叔就可以了啊,也就下面这个非常可爱的老头是吧?哎,一个荷兰的一个大叔啊,非常有才华啊,那么他的名字的来源呢,他也可以说是一个他最喜欢的一个乐队啊。

他最喜欢乐队里面的一个啊叫python是吧?哎,python,然后呢再往下走呢,就是说python的来历啊,他并不是横空出世的啊,不是啊,他是这个归叔在研究ABC语言的时候呢。

哎他参与设计过的这个ABC语言。这个ABC语言,大家听一听名字就知道ABC语言是什么呀?哎,就是针对于服务于非专业程序员的一个语言。😊,啊,非专业程序员的一个语言。那么这也是咱们ABC语言的一个来历。

那么ABC语言的一个来历呢,也是python诞生的一个前身啊。ABC语言最后就是被这个项目被下得 down了,是吧?但是python哎从这个哎ABC语言中浴火重生啊,浴火重生。然后呢。

嗯这个python呢其实也是不年轻了啊,也是不年轻了。也是上个世纪90年代就已经有了的语言啊,也是一个。嗯呃,也不是一个。啊,也不是一个这个年轻的语言了啊,也不是一个年轻的语言了。

那么python的基本的历史呢。就跟大家讲到这里啊就跟大家讲到这里。😊,那么呃python的这个版本啊,这也是大家比较呃关心的一个地方啊,比较关心的一个地方。大家老是说啊,那个我学python。

我看python有好多的2。7的2。72的2。711的或3。5的3。5。10的或者3。6的,我到底该选哪个版本呢?其实你根本不用为这个事情去操心啊。你现在既然没有开始学python。

那么就请你从python3。啊X开始,可以是5也可以3。5也可以3。6啊。你不要为这个版本所谓的这个兼容性去担心啊,去担心。那么。😊,我们现在呢主要去做的事情是什么呢?

就是说OK我们要确定的是我们要学习这个python。那么版本兼容性。大家这个问题只是其中的一个小小的一个细节,大家不要去纠结这个问题,这也是我想跟大家去分享的一个点啊,分享的一个点。好。

那么python的版本的问题,我们大致讲完了以后呢,我们来看一看python的一个特色啊,python的特色。python呢有很多很多的特色啊,网上也可以刚才也说啊,一搜一大堆的特色啊。

一搜一大堆的特色。好,那么python有什么特色呢?最重要的一个特色呢?其实啊在我个人认为啊,就是说哎就太简单了啊,太简单了。因为pyython有很多的特色啊,很多的特色。那么其中一个最重要特色。

就是说它相对于其他的啊相对于什么呀?相对于其他的这个呃这个编程了语言来讲,它学习起来的难度可以说是最低的啊,可以说是最低的。那么这一点也是python。😊,呃,从这个上面的这个ABC语言中。

诞生的这么一个哎一个一个他的一个血统的问题啊,血统的问题就是说它的服务呢其实并不是面向于一些特别细节的哎计算机领域的这些人去使用。

你如果是C我用过C加加的同学可能会知道们C里面会有一些指针啊哎这些东西或者是内存的一些自己去分配一些内存啊啊,非常一些底层的操作。他面向本身就是去解决问题的。

希望他尽量的能把程序员或者是说我们的用户从这个底层的硬件的软件的操作系统的等等的细节之中抽离出来。哎,你既然是要解决问题。那么好,那么我这么语言给你提供。

就是希望你能够以最快的速度去解决问题的这么一套语言,我也是按照这个我也是按照这个方向去设计的啊去设计的这个语言。好,那么。呃,另外呢呃我刚才讲到python的特色呢啊我个人认为最大的就是一个简单哈。

所以所以说为什么我们会用python去主打啊,我们的学习啊的机器学习也好,或者数据挖掘,或者是深度学习,都会涉及到python,为什么呀?哎,第一点它非常的简单。那么不光是简单就可以了,对吧?哎。

简单它既然啊它既然是说光是简单,是不可以支撑它现在这么火热的哎流行的这种流行的程度的。还有一点呢,就是说它支持各种各样的一个什么呀类库啊,那么其他的特点我也不再讲我智障这两个特点。

大家一定要记住就可以了啊,也就是说python的应用python呢,其实大家可以把它看作仅仅啊那个课件呢稍后我会共享到咱们的群里啊,大家不要着急啊不要着急。😊,好。

那么python呢就是说哎python呢就是说哎我们的这个哎它的应用呢是什么呢?为什么它会有如此火热的应用呢?哎,它的流行度为什么这么高呢?就是因为它与它背后有强大的第三方的库的支持是离不开的。

你比如说老师我想做python的外部方向的开发,那外部方向有很多的框架,你比如说jugo啊呀,对吧?这些东西都是哎python在外部方向的领域的这这种框架,那你说我想做科学计算,那科学计算有很多呀?

你比如说派呃是吧?哎,这些东西都是关于矩阵运算科学运算方向的东西,包括像分析一些这个信号分析是吧?或者是矩阵的一些运算或者图像图形的分析,这些python都会有相应的差件。

你比如说我做图形有没有有啊PL库对不对?都有那你说老师我想学深度学习可不可以可以没有问题啊?它有flow这种。😊,超级牛的这种库的支撑,对吧?那你说我想图形化可不可以可以啊,没有问题啊。

它也有自己的图形画,对吧?哎,他有自己的图形画的这些GUI的工具啊,这些库也都有啊。😊,那你说呃我想把我的数据可视化有没有有更有 plan的,那是更非常之详细。可以说呃python为什么之所以这么流行。

是与它的应用。哎,是分割不开的。哎,它的应用是分隔不开的,它有强大的应用的支撑。哎,也就是说python本身可能是一个哎一些简单的一些只是一个程序语言,但是python背后有非常强大的第三方库的支撑。

所以python可以说是一个什么呢?万能的语言啊,万能的语言啊,这也是我们讲到了python的一个哎它的应用和特色,它既是它的特色,又是它的应用。好,那么我们课程开始了大概有十来分钟左右了哈。

那么今天呢呃也是由于我们的这个呃直播的一个系统呢,让大家呃临时的到我们这个QQ群里边来去沟通啊,非常的抱歉啊,非常的抱歉。那么如果有后来的同学,如果有后来的同学,那么我再回复一下。😊。

我们之前去的一个目标哈。今天的公开课呢呃今天的公开课大约是在30分钟到40分钟的时间啊,因为周末的时间啊呃呃非常也是非常宝贵的这种休息时间啊。另外呢就是说30分钟到40分钟呢。

也是一个人的这种集中度和注意力比较专注的时间哈。那么大家在这30分钟到40分钟的时间里边集中呢听我来给大家去讲啊,我们python的这个三节课上手的中的第一课是吧?哎,也是希望你能有所收获啊。

刚才我一直在去强调这个收获,并不是说我们这个课程哎只有这么短的啊30分呃分钟左右的时间啊,我们这课程就没有结果,只是听一听,不是这样啊,不是这样,我们强调的是一个上手,什么叫上手啊,你自己能去做。哎。

你自己能去做这些东西才是你的啊,才是你的。好,那么呃后来的同学呢,我也把刚才的啊东西有一个强调哈,我们继续来往下走。啊,那么。😊,这个呢就是python的简介与应用啊,简介与应用。

这也是我们的第一个目标,给大家介绍了python大致的一个简单的介绍和一些应用哈。那么接下来我们就要开始进行python环境的搭建啊,python环境的搭建。什么叫python环境搭建啊。

就是说我们可以python它是一门什么语言,它是一门解释型的语言啊,解释型的语言,什么叫解释型的语言呢?就是说我写了一些代码,我需要一个什么呀?解释器来去来去向什么解释的我这个代码应该如何去运行。哎。

大家可以按照这个方向去理解啊,所以呢我们有一些啊去安装我们它需要去安装一个python的一个环境哈。那么python的环境呢呃我们有不同的安装方法,对吧?第一种方法呢?就是我们去python的官网啊。

python的官网呢?我现在在群里打一下啊,就是python点ORG啊,大家可以去看一下啊,这是python。😊,哎,这是这个呢就是python的一个官网。

大家可以去这个地方呢去下载哎python的一个什么呢?呃,它的一个包是吧?它会根据你的版本去下载一个包。如果你是啊windows会非常方便,linux也不难是吧?

linux本身自带本身就自带python的解释环境。如果它的版本不符合你要求,你再升级就好了嘛,对吧?哎,那么呃它的这种官方环境的安装呢,啊,它是一个非常简单的安装,这里呢不做不不做过多的解释啊。

不做过多的解释,大家可以自己去它的官网上去下载相应的这个。😊,呃,去下载相应的这个群啊,下载相应的这个呃文件安装就可以了。但是呢不推荐大家去哎这个地方来下载。为什么哎我刚才呃跟大家介绍,哎。

刚才跟大家介绍说呃那个呃我们的python里面最强大的一个什么呢?它有强大的第三方库的支撑,还记得吗?刚刚讲过的哦,是吧?哎,那么它有第呃第三方库就意味着什么呀?哎。

你从官网上下载下来的这个python的环境,它仅仅是一个环境。那么你想再去做任何其他的事情的时候啊,它都会怎么样啊?它都会去干嘛呀。😊,他都会去有一个这个你需要安装第三方库,明白吗?哎。

你比如说我想做抽样处理,那么对不起,那么你需要你用PIP这种工具去安装一下我们的哎PIL库。那你说我想做深度学习,可不可以可以,那么你不光要安装terflow。

你还要安装呃和erflow相依赖的一大堆的东西。那么你说我装down派装py做这个爬虫可不可以可以没有问题。那么也是一样,你需要去做很多的这种安装的操作。有些时候会因为版本兼容性操作系统的这些问题。

会导致你在这个上面会花费了非常多的时间,你还没有去接触到还盘有真正的去运行过这个python啊,还没有真正的去运行过这个python。那么这一点上呢就会有一个什么原因呃,会有一个什么问题呢?

就是在于我们的效率的问题。所以呢我们不推荐大家使用呃thon官方的一个环境。另外一个不推荐它的原因呢。就是说大家刚才也知道,我刚才跟大家去讲的python目前有两大两大细的版本,一个是二点差的。

一个是3点差的对吧?哎,如果你去安装了python2点差的,你再去安装python3点叉的,这两个环境之间会有非常多的这个重叠的问题,会有非常多的。比如说我们的这个库安装到哪个环境上。

安装在哪个版本的python上很麻烦,经常会把人搞晕啊,经常会把人搞晕啊。有课件的啊,大家不要担心。😊,啊,有课件的那个课件呢稍后我会分享到咱们的群里边啊,大家不要担心啊。那么我继续来讲哈。

那么python的这个问题就是说两个python或者是更多版本的pyon或者把你搞晕啊,搞晕,极大的降低了咱们的这个效率学习或者是生产的效率。

那么所以说这是我不推荐大家去用python官方环境的一个原因啊,那么under康环境啊,这个环境为什么我会推荐大家去使用了这个环境大家啊可以去搜underda也可以呢在我给出这个链接里边,大家去干嘛呀?

大家去下载啊,大家去下载这个链接呢是咱们啊清华大学的一个镜像啊,速度会比较快啊,如果你是从这个under康的官网上去走under官网上去走。那么呃如果声音听不到的话。

那么请同学们呃检查一下自己的网络环境吧。因为我这边呃用的是那个手机的4G去去直播,就是因为担心本地的网。😊,会有问题啊,本地的网络会有问题。那么如果呃这个QQ群的录播我不知道呃会不会有。

因为我们之前呃的那个我们之前的直播平台里都会有录播的。那么没有关系,我会呃咱们在QQ群里边,如果你要是有问题,你可以随时来提问啊,我们也会有给您一个回答啊,给您一个回答。因为我们今天的内容啊。

相对来讲还是比较紧凑的啊,比较紧凑的。😊,哎,那么我们来去看啊我们来去看我们的under这个环境哈。under这个环境呢,它为什么推荐它它几乎差不多有500多兆啊,新版本可能已经超过500兆了啊。

那么为什么还要去呃声音还小啊,那么再尽量大一些啊,那么呃为什么还还呃为什么还那个为什么还要去推荐under康呢?就是因为它内部已经帮助大家集成了很多很多很多的第三方的库啊,非常多的库,明白我意思吗?哎。

非常多的库。那么我们就不用再为我们去安装各类第三方库的这种直呃,我们去安装第三方库的这种啊这种版本兼容性啊,或者说这种下载速度啊,去担心啊,都已经看到了是吧?哎,那么我就呃大家看一下这张图。

我呃呃看到我们这个新同学发的这张图啊,我跟大家说一下,去下载哪个版本啊。😊,你把所有的东西往拉到最底下。哎,这位新同学啊,你把所有的东西拉到最底下。然后呢,根据你的啊操作系统,如果你是m克的。

它会有m克的,如果你是windows或者windows的,如果你是linux那就会有linux的。那么如果你是呃这个64位的,那么一定要去下载64位的,明白我意思吗?哎,哎拉到最底下。对对对,啊。

目前建议你呢就下啊,能看到3。5。0。1windows叉86下划线64,看到了吗?也就是最后一个。对对对,就是最后一个。那么如果你是呃这个linux的这个版本或者m克的上面也都有。

尽量的去下叉86-64这个版本的啊,尽量去下3。5的啊,3。5的。😊,哎,下载完了以后呢,我一会儿跟大家去说大致的一个安装。因为我们今天的这个不太好去。

我看看能不能够去直播我的这个呃直播我的这个分享屏幕啊,一会儿我来分享屏幕来给大家去看一下啊,也示能分享的哈,别着急哈别着急。那么您下载完了以后,一键双呃就是双击安装的时候,它无论提示什么。

您都说是无论有什么这种东西啊,有没有勾啊,您都点上勾,明白我意思吗?哎,我们一键安装傻傻瓜式的安装就可以了啊,就可以了。那么这个安装呢会花费很多的时间啊,我们在公开课里呢,也就不不像大家去演示了啊。

不向大家去演示了。好,那么呃我们来去看一看我们下面的一个东西啊。😊,啊,下面一个叫做notebook的一个使用啊,notebooknotebook是一个什么东西呢?那么我先呃大大家如果有黑屏。

大家耐心等待一下啊。因为我先分享一下我的屏幕啊,我看看这个呃分享窗口呃呃分享区域啊分享区域,我把整个屏幕都跟大家分享哈。😊,开始实施分享。呃,大家能看到我的屏幕吗?

呃,QQ群哈。

呃,模糊是吧?啊,不清楚是吧?啊,那么大家这样吧,如果不清楚的话呢,因为不涉及到一些特别呃细的一些操作,大家大致的去看一下啊,大致大致的去看一下啊,哎,那么我给大家去演示一下我们python运行。

通常会有两种方式啊,就是我们安装完了under看环境啊,看见了是吧?哎,如果安装完了under看这个环境以后呢是吧?哎,那么我们可以进什么呀?在CMD的窗口里边,对吧?在CMD的窗口里边。

这个窗口怎么打开呢?如果有同学不会打开呢,我们可以在这个地方我演示一下啊,在开始里边去输什么呢?CMDICMD它会有一个命令提示符啊,命令提示,我给大家截一下啊。😊。

呃,我给大家发到这个群里啊。😊,Yeah。哎,就这个东西啊哎命令提示服,我们在命令提示服下面运行了以后呢,我们输入这个python。😊。

Okay。啊,然后呢它就会来有一个什么呀?哎就会进入到我们pyython环境里了啊。我把这个截图给大家看一下,尤其是这个地方给大家看一下啊。😊。

嗯。啊,大家看到了没有啊?啊,我发刚刚呃给大家分享的这个。😊,进入到python了。进入到python了以后呢,大家看到这张图没有?有三个大于号是吧?哎,对对对,啊,我们的新位同呃。

我们这位新同学非常的啊非常热心哈,帮助大家啊把家帮助大家一块去解决这个问题哈。好,那么我们来去看一下啊。那么这个python呢是什么呢?就是我们呃刚刚安装好的under康的这个环境里面。

他所提供的python,你不用去纠结什么正版啊不正版啊之类的哈。啊感觉卡了是吗?可能是因为有这个视频的问题啊,可能是因为有视频的问题。那么我们会尽尽快的把这个问题解决一下啊,稍等一下。

我会尽快的把这个视频的东西讲完啊,换到语音的话会好很多,稍等一下啊。好,那么我们哎进了这个CMD这个窗口,安装的官网啊,零下3度同学,如果你安安装完了官网的python,你一定要卸载掉啊。

一定要卸载掉啊,一定不要呃不要再有N多个python环境里边,把你给折腾的这个头晕的呃头晕目眩的哈,头晕目眩的。😊。

啊,没那必没那个必要啊啊,卸载完了以后,您就去呃,刚才我刚才这刚才我们新同学分享那个链接里边,您下载刚才说的那个一步一步安装就可以了。安装完了以后呢,我跟大家说一下啊,这就是我们python的运行。

python呢有一种命令行的运行。😊。

也就是说我在这个位置上面对吧?哎,它有三个大于号,我可以在这个下面去输入非常多python的一些具体的东西了。你比如说我现在去建一个,哎,我给它建一个这个变量,A等于一B等于一个字符串,对吧?

叫做china。哎,最简单的这两个变量是吧?那么现在呢我们来去把这两个变量去输出一下,就可以看到它输出的是个元组,那么在这个地方呢,我们就已经进入到了python环境了啊。

但是这个python环境会有一个什么问题呢?哎,也就是说你比如说现在我想把B改成哎,比如说改成什么呢?改成北京,那么我现在还得再去再重新输入一遍,它是什么呢?就像瀑布一样,从上面倾泻而下,对吗?哎。

不太方便,我们去做一些变更。你比如说我想把EA变更了,或者把这个B变更了之后再重新运行一下。我在底下可能要写非常的多,对吧?哎,大家非常直观的感受是吧?写的非常的多,对吧?哎哎呃,刚才K同学问说。😊。

呃,andunder的这个呃官网,刚才我说过了啊,就undercon非常的大。但是呢呃你就安装它还是建议安装它,为什么呢?它包含了有非常多非常多的库。可以说你学tthon的这些库,它都有。

省得你再去为了装一个库去折腾啊折腾啊。😊,啊,under看那里好多函数都包括了官网python包括环境。对,是这个意思啊是这个意思啊啊哎是这个意思啊,就是说一切是为了我们学习的效率啊。

你不要在意那几百兆的容量啊,不要在意那几百兆的容量啊。好,那么我们继续回来啊,那么在这个环境下呢,我们运行的什么呢?就是python的一个叫做命令行的方式来运行。好。

那么现在我们退出我们的这个python哈。那么这时候呢我们进行这个note呃jupy的notebook我们去输入啊,😊。

嗯。

Yeah。我们输入这个中心note book这个地方我有一点必须说明啊,你必须在安装完了undercom以后,你再去做我刚才做的这些操作,否则你电脑里没有环境。

没有这些相应的这个note book这些库,你是运行不起来的啊。我不知道我说的清不清楚啊,也就是说你一定先去安装完under哎啊能看到。😊。

呃呃,三人参与呃,你是不是麦克,这个我不太知道哈呃,慕云清风的同学啊呃,如果您有问题,非常抱歉哈,可能是QQ的这个呃QQ的这个不是很OK啊,不是很OK好,那么呃我来继续来去演示一下啊。

那么呃如果对这节公开课有问题,可能大家也可以在咱们群里来提问哈。好,那么我们继续啊,大家看得到我们这张呃桌面了没有啊,我我给大家截张图吧。如果如果有同学没有这个东西的话啊。😊。

我给大家截张图哈哦,没有关系,如果你实在看不到,我给你截张图啊,大家看得到这个没有啊,我发到群里这张图看到了没有?就是说呃我们输入jupytern book啊,这个单词以后啊,这个命令以后。

它自动的会在我们的它会做一个什么事情呢?它会自动的在我们的电脑上开启一个服务,这个服务哎,是干什么的呢?它是一个外部端的服务,大家看到了没有?就是叫做什么呢?哎。

也就是说我们可以访问自己的电脑本地机大家看到这个没有我来给大家去截一张图啊。😊。

哎啊,看到这个没有?就是说哎,这就是说我们刚才输入上面那个东西,它自动就会弹出来下面的这个它就是一个网页,对吧?你看你咱们是不是用浏览器打开的对吧?那么哎既然是网页的话,哎,既然是网页的话呢。

我们就会怎么样啊,我们就会说那我能不能够新建一个呢,对不对?我新建一张网页,其实我们看一看啊,叫你有这个按钮啊,我给大家去呃截张图啊,就照顾一下看不到的同学啊。😊。

哎对对,是的,你只要在命令行里直接输入支notebook就可以了。但是前提是什么?你一定要先安装好under德康的环境,明白了吧?哎,所以为什么我说要大家安装这个环境,因为太方便了啊,啊。

需要进入on不需要不需要哎哎你安装安德康的时候啊,你一定把所有的勾打上,所有的人家问你的这些东西你都打上就可以了。哎,你千万别不打勾啊,就是安装了啊,那那样的话就会就指定thon环境非常麻烦,知道吧?

哎,如果安装的时候,他提问他说要什么,你就给他什么就可以了。好,那么我们刚才也看到这个了,那么ok我们现在就可以啊,如果没打勾的话,呃,你要是不太会配置,那么就建议你重装。如果你很会配置的话。

其实就是需要配个路径就可以啊,那么如果你要是呃想深入学一下,你也可以在网上搜一下,如何去配置这个路径,这也是对这个有一个理解啊,有一个理解啊,那么如果你嫌麻烦重新装一遍对吧?卸载完重新装一遍啊。😊,好。

那么我们来继续继续下一步啊。那么我们的这个note book已经ok了,对吧?😊。

我们点新建是吧?那么这个时候呢,我们来看一下,我们就会进入到我们的notebook了啊,进入到我们notebook了啊。那么稍等稍微等一下啊,我来去截张图给大家啊。😊。

嗯。😊,好,那么呃没有,即便是没有视频的同学,你看这个图也可以的啊。因为视频上也是这些东西啊。好,那么这张图呢就是说我们新建了一个notebook。notebook是什么?笔记本笔记本可以干什么啊?

在上面怎么样写写画画,对吗?是不是哎,我们可以在我们的笔记本上写写画画,对吧?非常方便啊,非常方便,而不是说我写完了以后呃,我再去更改,没有办法更改了,非常麻烦。哎呃,山草,我看一下啊,呃,😊,哎。

对对,是这样的,是这样的。就是说当因为它的这个启动,嗯,别着急别着急,它这个启动是比较慢的哎,比较慢的,在谁的电脑上都是一样的啊,不是说没有反应,它反应比较慢啊,等它启动完了以后呢。

它自动会弹出来一个东西啊,它自动会弹出来一个呃这个浏览器啊,浏览器里面自动就会把我刚才截图里的这个东西给你显示出来啊。好,那么哎弹出来了是吧?哎,非常好,那么说明您已经上手了,不客气啊。

那么呃说明我们的目标达成了是吧?啊lo宽带环境装好了,那多顾客你也上手了是吧?好,那么我们继续啊。😊。

啊,那我们继续我们的note book已经出来了是吧?好,我们继续往下走哈。那么大家看一下,我给大家截这这张图里面notebook。那么说老师,我这个notebook怎么去写呢?

你还记得刚才我们就写的这个A等于一。😊,对吧A等于一,B等于china。对吧然后这个时候呢,我们是在这个框框里写这张框框里非常像不像我们要去发一些block是吧?我们发那个博客,我们写电子邮件。

像不像这种感觉啊?你看你的鼠标可以随意的去点是吧?哎,也可以随意的粘贴啊什么的,是不是比这个命令行里要友好一些,对吧?哎,比命令行的要友好一些,那么这个地方呢我们来去看。那么写完之后怎么去运行呢。

我们有两种方式啊,一种你可以点这个上面的按钮啊,我把这个截个图给大家啊,一种你去点这个上面的按钮,我给大家截个图照顾一下啊,看不到视频的同学哈。😊。

哎,那么哎我给大家截个图啊,大家看到你在这地方写的这些命令,对不对?你可以点击一下这个按钮,哎,点击一下这个按钮,对吧?哎,在这个按钮下面点击完了以后呢,它会出现什么东西呢?我们来看一下咦。

为什么没有任何的反应呢,对不对?就会出现了一个新的东西,大家看到这个没有啊,这是两个啊,我们管这个东西叫做什么呀?叫做sll啊,我把这个东西给大家截一下啊。😊。

哎,这叫sll。哎,这叫sell,也叫单元格,你就把它认为一个单元格就可以了啊。好,那么我们上面的这个东西,我们运行完了以后,为什么它没有反应呢?是因为我们没有让它有任何的输出,对吗?

那么okK我们在这个地方我们使用print一个。😊。

A。B我们再去输出一些,大家看到了没有?一和china就已经输出出来了。那么这也是我们最最最最简单的python的一个练习啊,python的一个一个上手。那么这个时候你就可以来。

你已经进入了python的世界了啊,你已经进入了python的世界了。好,那么唉稍等一下,我看见其视频啊。😊。

没有反应弹出来了哦,对对对,这是那个哎咱们加入到咱们就可以了啊。加入到咱们的这个呃群的这个视频就可以了。我刚才好像点了什么东西啊,稍等一下啊,稍等一下啊,好,那么我们继续啊,我们继续。好。

那么我们这个note book呢有很多的用法啊,如果第一次接触同学一定会被很多的用法给迷惑了。但是不要紧,我有一个学习的秘诀给大家分享,就什么呢?你用到哪儿学到哪儿,我今天给你讲到哪儿。

你你就只学到这么多,知道吗?你只学了这么多。如果你有自己的想法。😊。

你说老师,我想把这个notebook,哎,我如何去把这两个notebook连在一起,或者呃我想把两个notebook怎么样啊,哎合并了等等的时候,这个时候你再去学是最有效率的。怎么去学啊?我告诉你啊。

你先点击这个ESC相当于退出是吧?哎,退出到退出单元格哦,然后你点击一个H,它会自动的输出一个什么呀?叫做notebook的一个什么呀?叫做key shortcut,我给大家截个图啊。😊。

呃,我看一下啊,进Q波群啊,windows手机啊,如果安装到D盘的话,路径是不是要求全英文?对,就是说如果你安装呃,因为它默认的是安装的C盘,如果同学们有C盘空间不足是吧?哎,没关系。

你安装的D盘也没有关系,但是路径的话呃,你最好还是留下under德康da,或者不要你不要去改这个名字啊,就是它本身不可能带中文啊,你一定要也是全英文,省得就是说将来会遇到非常多奇奇怪怪的问题啊。

非常多奇奇怪怪的问题。好,那么我们继续啊。😊。

啊,大家别着急,等我等我讲完以后会有一个集中的提问。大家也可以有问题。我们可以集中的去给大家去说一下啊,给大家说一下。好,那么现在呢我把这个notebook里边如何去寻求帮助也说了。

如果这个里面还是解决不了你的困惑,我们是不是还有谷歌,还有百度呢,对吧?我们可以随时的去搜索,我们要去解决那个问题,对不对?哎,我们解决那个问题。好。

那么现在我们来去开始我们的这个notebook的使用了啊,notebook呢其实就是一个什么呢?啊,大家还记不记得这个。😊。

哎,我们在刚才在这个地方来写的东西是不是哎其实一样的,但是呢note book有非常多的特性,让它非常方便哈非常方便。好,那么note book的使用,我们已经开始上手了,哎,已经把这个环金搭起来。

知道在里面怎么写,怎么运行,对不对?你比如说我想把这个china改成北京,刚才我们在那个CMD里不好改,对吧?但是在我们的这个里面是不是非常非常的方便去改,对吧?好,那么我们继续啊。

我们继续我们的课程啊,好,那么我们的这个PPT啊,稍等我把这个屏幕先关一下,我把共享关一下啊。嗯,稍等一下啊。😊。

呃,分享呃,稍等一下啊。

演示PPT稍等。好,那么我们还是回到我们的PPT里啊,我们回到我们PPT里面。那么我们的PPT里面有3个目标,我们这堂公公开课可能只有40分钟左右的时间。但是我们有4个目标。第一个目标我讲完以后。

无论你怎么样,你至少能说出来on大概是个什么东西是吧?什么语言是个什么样的语言,它有什么特色,有什么应用,你大致能说出来。第二个python环境的搭建,这个非常简单,你去下就可以了,对吧?

你去安就可以了啊,一路回车安装,人家要什么,你去点什么,人家有什么勾,你就去把这勾给人点上,对吧?哎,一路的同意,对吧?好,第三个notebook大家也应该会启动了,对吧?哎,第四个呢。

notebook我们怎么样在notebook里寻求帮助,我们怎么样去在notebook里面去使用,大家也都应该能够有一些简单的使用了,对吧?哎,那么第四个点呢就是python的基础操作了啊,pyon。

那么我们用30分钟左右的时间就已经从开始简介到环境搭建到一些具体的这个。😊,工具到最后我们就已经接触到了python的简单操作了哈。那么python的简单操作在这里面我不打算给大家去讲的细啊。

因为时间的关系,我只给大家理一个比较清晰的脉络。如果之前你有一些其他的软件或者其他的这个语言的开发经验,那么你看这些python会非常的easy。那么如果即便是你没有。

那么你按照哎我们python学习的一个路径去走的话,也会能够非常清晰的把这个东西理出来。首先是python的基础语法。什么是python基础语法,一个叫注释啊,什么叫注释啊?

我们在一个python的语句前边去写一个什么呢?😊,这是来,你看我写一下,这是咱们哎公开课。的哎演示代码,对吧?哎,如果这是一个是不是一个注释啊,对吗?哎,那么我去运行,我们看会不会报错啊,对吧?报错。

为什么报错啊?因为他认为你这是一个标识符,那么我们把这句话给他怎么样加上一个井号,我们再去运行,是不是就对了呀?哎,那么这是它最简单的一个python的呃。😊,没有切换画面啊,同学现在啊哦对对对,啊。

这是我的问题这是我的问题啊啊,我没有切换到那个我们的这个呃这个稍等一下,我来分享屏幕啊。因为刚才光顾着去啊这个演示了哈,稍等一下啊嗯。😊。

嗯,可以了,那么我们来看一下我们的分享屏幕啊,分享屏幕啊。那么现在这个屏幕同学已经看到了哈。那么我刚才打了一个字啊,就是说你看虽然咱们这个代码非常简单,对不对?但是呢这是咱们今天公开课代码。

我做一个呃做一个注释,将来我看到这个代码,我就知道哦,原来这是咱们啊2018年的1月7号的上午的10点钟和大家一起分享的公开课的演示代码,哎,报错了,是不是报错了,怎么办?加上一个井号再运行,不报错。

对不对?不报错是吧?哎,正常的输出了E和北京,对吧?E和北京,这就是它的注释负。如果说同学说老师我想把这所有行都注释起来怎么办呀?那么太简单了,那么我们用notebook非常easy。

我们选中notebook的contrl键加上一个什么呢?一个斜线键,是不是一下都给它。😊,去注释了,对吧?也远远要比咱们在这个呃这个命令行上要方便很多。那你说我不注释怎么办?同样的按钮再点一下嘛。😊。

对不对?哎,非常方便的在一单行注释和多行注释,是不是哎,单行注释和多行注释啊?那么我这样来去看啊。

嗯。😊,那同学们有没有问题啊?如果有错误可以调试吗?可以啊,python里面有专门调试的东西啊,那么在以后的课程里们会讲到,但是我们今天的课程里面,我们只讲python遇到了一些问题,报错。

你比如说在这个地方,哎,既然讲到了错误啊,我们就来看一下啊。😊。

我们来看一看开en的这个报错啊,我们来去呃大致的去说一下啊。😊。

哎,我们啊回答一下加ter的soso这位同学的一个问题啊,就是说你看啊,首先他会告诉你一个name errorname error大家都知道name是什么呀?名字,arrow是错误。

那么这地方呢在python里面就是一个什么呀?标示符命名错误,就是什么意思啊?这是咱们公开课的演示代码没有被怎么样,defined没有被定义,对不对?那么我们把这个给它注释掉。那么我们再去再运行一遍。

又报错,什么报错啊,我们看看name C。😊,是不是这个地方啊,我们我们定义了A定义了B,但没有定义C,但是我们直接要去使用C,它一定会给你一个报错啊。那么呃我就继续往下去讲啊。

这是刚才说的一个调试和一个错误的一个报错啊,如何去看哈,因为报错这个东西太平常了。😊,报错这个东西太平常了。所以呢就是说如有同学们遇到的错误一定比较慌张。你遇到的错误越多,就证明什么呢?

证明你学习的我们的这个学习的经历越多,也证明你会未来你去把这个东西掌握的这种可能性越大。好,那么继续啊代码分隔。哎,比如说现在呢我把这个地方。😊,假设现在呢我们的这一行呢有很长的对吧?

这一行很长怎么办呢?我们加一个。😊,我们加一个反斜线。😊,我们就可以把一行代码写到两行里。因为这个演示呢就是说呃不是很长是吧?不是很长是吧?但是呢我们正常的话,如果你的一行代码里啊通常写的很长的话。

我们就可以用这种符号去给它做一个什么呢换号。第三个呢叫做分隔代码块头和体叫什么呢?也就是说我们的一个冒号,什么叫冒号呢?一般冒号我们会用在函数和我们的这个类里的,我们定一个简单的函数,叫做A的一,对吧?

我们给它以两个参数叫做A和B,然后呢,我们用一个冒号。哎,你如果看不懂函数,因为我们假设我们今天来的同学都是没有太多基础的哈。如果你看不懂函数不要紧啊,你只要看我下面去做一个事情就可以了啊。

我是不是写了一个冒号,同学们冒号,对吧?冒号,我们再去双击一下呃,再去回撤一下,你会发现什么了呢?是不是它的它为什么我说我回撤了以后,它不在这儿了呢,对吧?你看在其他的地方里边,你看A。😊,ABC对吧?

全都是为什么冒号里边,我在冒号后边回车就是要要又会有一个缩进呢。那么这个地方也就是会讲到咱们python里面非常重要的一个特色叫做缩进。叫做缩进。好。

那么在这地方呢我们写一个叫做return A加上一个B。好,那么现在呢就可以了。那么这时候呢我们就可以来使用这个ADD1我们传进去1个31个5,它就会return一个什么呢?😊。

是不是return了一个8在这里,对吗?哎,如果我们传进去的是别的数呢,9和8我们再去执行一下啊啊,因为他这刚才同学不知道我怎么运行的哈。

就是如果你在这个地方快捷键是一个controrl加interl键,它就能运行。如果你要是不知道,你就点这个地方啊,点这个地方好,那么我们看同学有什么问题啊。😊。

哦。我看到了老看到老同学来了是吧?😊。

好熟悉的名字啊,helloovercra3是吧?哎,看到老同学来了哈,那么呃我们继续啊我们继续。😊。

好,那么我们的空行啊缩进哈,那么缩进是非常非常之重要的一个东西啊,缩进是非常非常重要的一个东西啊。那么大家看我在这个地方的缩进,它是这种缩进叫做一级缩进啊,一级缩进。那么如果看着啊。😊。

我们现在给它加上一个判断,if。A大于B,我又加了一个冒号,看到了没有?我再去点回车键的时候,大家发现。😡,什么了么,我的缩进是不是要比之前要又往又往这个右哎,又缩进了一级,对吗?哎。

那么同学说老师我我我我还想这样哈,我我试试这样,它是不是又往里边又缩进了一级啊。😊,看到没有?你有几个冒号,它就会往里面怎么样缩进几级几个级别啊,几个级别。我不知道这样解释大家能明白吗?啊。

其实缩进是干嘛的,缩进是干嘛用的呀,缩进就是为了去干什么呀?为了去哎区别我们的代码的一个区域用的,如果我们之前学过C的同学可能会知道这个画括号对吧?哎,画括号画括号呢,哎它其实就起到了一个包裹代码。

就是说我这个代码是属于这一块的。那么你看比如说我在这个地方来写很多的代码啊,我用这个我快速一下写一下啊。😊,哎,这都是注释啊。那么在这个区域下面的在这种缩紧下面的都属于哪个块的,都属于这个下面的。

就是说这是我的地盘,明白我意思吗?哎,这是我的地盘。那么我再来写这些东西啊。比如说。比如说这些的分割符啊,这些的代码假设我们我们把它假设成代码,这些的都是我这个冒号下的地盘。明白我意思了吗?哎。

这就是我们缩进的作用啊,我们不用再用画括号了,我们用缩进去做啊。那么这个缩进呢其实我个人认为是非常的美啊,非常的美,要比这个C语言的这个东西要美很多哈,要美很多。好,那么我们继续啊。

我们继续我们的这个PPT哈,那么我们的缩进说完了,我们空行就不再说了啊,我们的模块我大致说一下啊,因为正好我们有这个notebook啊,我们的模块刚才一上课的时候,是不是就说。😊,python很强大。

强调在哪儿?有非常多的第三方库的支持,对不对?好,那么现在我们导入一个什么叫库啊,叫做n派这个库SNP大家看到有个有个花的一个这种星号,对吗?就代表着咱们的note book正在去导入。好。

那么现在我们的numb派就已经导入了。那么现在我要去生成一个什么呢?哎,我们的哎 randomdom点N哎,我们看一个什么呢。😊,哎,报错了,我看哪报错了啊。

list object cannot be interrupt as intent啊,就是我们的列表是吧?哎,我们不能用列表这个。😊,又报错了是吧?我们看看啊,tople啊,tople稍等一下啊。

tople是个什么东西啊,我们以后会讲到tople就是一个我们的哎我们的一个元组哈。那么这个时候呢,这个这个地方做了一个什么问题呢?我们来看一下NP是什么呢?n派这个库n派什么库啊。

n派这个库给大家大致的去说一下啊,就是我们的。😊,erica我们的python就什么呢?我们的数字的python啊去做运算的python。我们看看这个A到底是个什么东西啊。大家看到这个A是个什么东西啊。

它是有几行几列。我们看看四行四列的一个随机数哎随机数。但是这个随机数是符合我们正态分布的随机数,符合我们标准正态分布的一个随机数啊,那么我们可以看得到非常简单的两行语句,我们就已经生成了一个啊四行四列。

并且符合标准正态分布的随机数可以说啊我们的这个哎模块啊,模块就是这个import是一个关键字啊,大家看到这个绿色的字里面,绿色的这个字啊都是关键字啊,绿色都是关键字啊,都是一个关键字。

你不能用你不能去把这关键字去折腾。你比如说老师,我想把import命名成六可不可以,当然不行。当然不可以是吧?它一定会报错的啊,一定会报错的啊。😊,好,我们继续回来啊。好,那么我们看到我们的标识符。

标识符就是刚才我说那个问题。什么叫标示符啊,我们回头看一下啊,A是标识符,B是标识符,明白我意思了吗?哎,我们的这个哎这个呃这个这个我们比如说我们的标识符,它有一个命名规则,什么规则啊?

就是说你不能以数字开头。你比如说我6A等于什么呢?等于china可不可以,我们来看看都可不可以啊。😊,报错了,为什么呀?因为你是一个什么呢?不合法的一个语法。那么我叫A6圈等于can的可不可以?😊,哎。

可以,为什么它符合语法啊?它符合啊,而且呢就是说哎你只要记得它是一个什么呢?哎,以数字不能以数字开头就可以啊。标识符它会有一些非常详尽的东西,我就不太细讲,大家可以搜一下网络上有非常多的东西啊。

那么拍d的操作符,操作符,它会有很多的操作符啊。你比如说现在我跟大家讲一个最最最最简单的操作符哈。😊,那么这里我会用一个分号啊,分号就是一行里边,我想写两行的判断代码哎。😊,比较符很简单吧。

比较符一大于二吗?不大于,那么它就会返回一个boss。那么我们再来看A小于啊,就是A小于B吗?😊,小于它是对的对吧?一肯定小于2啊,这也是是事实,对不对?它就反回一个处,对吗?来反回一个处。

我们继续再去看啊,这是它的一个简单的一个哎一个这个叫做比较符。那么我们还有什么呢?叫做负值符,什么叫负值呢?你看A等于5哎A等于三,相当于我把三这个数字负值给了谁呀?负值给了A这个变量,对不对?哎。

那么我们可不可以这样去写A等于B等于C等于5。😊,我们再来看看C等于谁呀,是不是也等于5啊,那么这个叫做多赋值,我一次可以复值好多的东西,对不对?哎,你我后边有D有EF没有问题搞定,对吧?

那么我现在可以说我们可以这样去做吗?😊,我们来还看看作叫交换图纸啊啊,python里非常方便哈。我们来先去给4,对吧?哎,B呢等于5。😊,C呢等于6,对吗?哎,我们先给它这个大家都知道了。好。

那么老师我知道了,这也非常好容易理解哈。那么现在我想把A的值赋制给B,把B的值啊付给C,把C的值付给A怎么去做呢?哎,我们可以去这样去做A等于B等于C是吧?你比如说我把我想把C的值付给A。😊,我想把B。

我想把这个呃这个A的值付给B,我想把这个什么呀呃,这个A的值付给C。😊,就可以了,哎,稍等一下啊,这样就可以了。我们再去看看我们这三个数字啊,们再来去看看我们这三个数字有没有变化啊。哎,654就好了。

哎,这是非常方便的交换复值啊,交换复值啊啊,有声没有声音了吗?呃,送送花给我,谢谢啊。谢谢。好,那么我们来看看啊啊呃送了好多花,谢谢啊,谢谢啊。那么好,那么我们来再看啊,我不不我不过多的去纠细节哈。

那么操作符呢还有很多,那么我就不再过多的去讲,那么我们来看看循环和这个条件判断,来,我做一个最简单的循环给大家看一下啊。😊。

python里是吧?好,我们循环一下啊,for eye in range,这是python的一个语法啊。比如说哎比如说我来去print一个是吧?哎,我来print一个,感谢大家是吧?

感谢大家抽出宝贵的时间来学习pyython,对吧?我觉得能学习的人都很了不起,是吧?好,我要把这句话打印10次啊,我们来看一看。😊,报错了是吧?我们看看报错,不要着急啊,报什么什么in range是吧?

你们来看一看啊,for I in range I是什么东西呢?就是说我在这个序列里的每一个元素啊,我们来去打印一下,我们看看会出什么结果可能会出意外啊,但是我先不说什么意外啊,我们会看什么呢?😊,哎。

我们来回去看,哎,感感谢大家这句话就怎么样了呢?就会去哎运行了多少次啊,N多次N多次哈,那么这就是一个什么呀?一个循环啊,一个循环,那什么是判断呢?那么循环也可以有Y有循环和报循环都可以有。

那么Y要循环就是什么呢?Y有N大于哎大于10,我们现在先定义一个N是吧?我们的N等于一个零,对不对?哎,我们这样也可以啊,我们print一个什么呀?print一个还是一个哎。😊,学习的人最帅是吧?啊。

不是一个这个。😊,好,那么在这个上面呢,我们N。😊,加等于一这句话如果你要看蒙了,没关系,这是哎python的一个呃一个很让人很懵的一个东西啊。我们用这样去写,我这样写,你就明白了,N等于N加1。😊。

这样写明白了不?哎,我把后边的注释掉,哎记得注释吧。哎,这句话什么意思呢?就是说哎我每次去循环一次,对吧?只要它大于十的,哎,哎,我们就哎这句话应该是我自己写反了哈,应该是Y小于10哈,只要它小于十0。

它就会打印一遍,明白了吧?那么现在我要打印15遍怎么办啊?😊,明白我意思了吗?哎,那么同学说老师我想知道行号,哎,没关系。😊,很Ey吧,非常easy是吧?这是它的两种循环。但这两种循环不是说我跟你说完。

你就懂的哦,你要课后要做很多的练习哈,很多的练习啊,很多很多的练习你才能会懂啊,很多的会懂。好,那么我们来继续看我们今天的这个我们的直播间哈。好,稍等一下啊。😊。

呃,老师办法python里呃字符串是不加括号吗?是这样的啊,这个问题呢是我们python2点X和3点X之间的一个呃,我们通常开发里面最常遇到的一个问题哈。那么这个问题会怎么会什么情况呢?

就是说在python2点叉的时候呢,print是一个关键字。😊,它是个keyword,明白我意思吗?唉,它是个关键字,但是到了3点差的时候呢,它就变成了一个函数啊。我们知道我们要调用函数的时候。

它必须要加上一个什么呀,要加上一个这个括号来去调用它。所以呢就是说如果你要想去啊这个不加括号啊,对的,我现在切换到这个了啊,我现在切换到咱们的这个QQ群视频了啊。啊,如果你想不加括号的话。

你我我我猜想你可能会有什么呢?你可能会有很多的之前的python2点叉的这个版本是吧?哎,默认装了3呃,安装under是默认装了3呃,就是装三装的3呀,就是装了3要不用默认啊,不用默认啊。

另外呢under里面我跟大家再说一下啊,under里边有非常多的哎它有一个非常多的功能,有一个非常好的功能叫做它的虚拟环境。😊,那么我这里不展开讲啊,大家自己可以搜一下啊虚拟环境,虚拟环境干什么的呀?

就是说ok我现在有2。7的代码,我现在想去学习2。7,你可以在com下com下面你去建1个2。7的一个环境。用完了之后退出这个环境之后,你还是3,你也可以去建2。7。62。7。112。7。1都可以去建。

所以非常的方便哎,非常的方便而不会互相有冲突啊,我不知道你能明白我说嘛啊,那么再说一个啊,就是说刚才这个print啊,哎啊谢谢啊呃我说的这个print啊,谢谢那么说明白了啊啊,听明白了。好。

那我们再来去说啊,这个print啊,你不要去想这个问题啊啊,你可以去找那种啊如果你是有很多的2。0的代码,你可以去找这个呃相应的转换的程序去转。但是在三的下面就请你习惯去用这个括号就可以了。

因为大家在当时往后转的时候,转到三的时候都会遇到不习惯啊,就是用多了就习惯了啊,用多了就习惯了。好,那么你看。😊,我们继续啊我们继续呃,稍等一下,我看一下同学们的话啊啊,不客气不客气啊。

我们来继续赶一下我们的课程啊。因为快讲讲了快一个小时了哈,那么我们在循环和判断也说了是吧?那么最后呢我只简单讲一点点的数据基础。最后我要留一个小作业啊,留一个小作业。好,那么什么叫数据结构呢?

A等于一B等于china?😊,然后呢,C等于一个这个东西。这是一个什么东西呢?我依次跟大家去说一下,A是一个数值型的,这样大家都能明白B是一个什么呢?字符串型的是吧?那么C是一个什么形的呢?

C是一个列表型的。😊,哎,python里的数据结构里一个叫叫做列表。那么我再来看DD等于什么呢?D是一个叫做什么呢?我们来去给它转一下啊,D叫做一个topple型的。刚才出错的时候也说了啊。

D是一个topple型的。那么这就是简单的python里边。那么再来看这个EE是一个什么形的呢?我们再来去做一下啊,你就明白了。😊,Yeah。Okay。哎,那么这就是我们paon里面最为简单的东西了。

我们一次的去打印一下啊,我们看一看我们的这个我们用这个typeap去看一下我们的这个E啊,它它叫做字典型,对不对?什么叫字典型啊?叫做键值对应,什么叫键值对应啊?一就是键值。😊,china就是它的值。

哎,它的键和它的值。你比如说我喊我喊这个。呃,比如说我喊一个人的名字,哎,我说呃比如说这是这个人的名字。那么这个这个地方呢,就这个人本身我不知道大家能说明白没有啊,k和V对应啊。

大家可以去搜一下KV对应啊那么我们就重点不讲这个dick,因D光是dick的操作就有很多啊。那么我们今天只讲最后一个东西,叫做一个列表型啊,或者一个字符串型,叫做序列。😊,嗯,叫做序列的访问,对吧?好。

那么现在我来访问什么?😊,0到3。哦,我不知道有们的同学之前有过python的基础啊。😊,呃。

抱歉哈,非非常抱歉啊。好,那么我们来看一下我们的呃现在已经开始分享屏幕了哈。那么同学们看一下我刚才打的这个字啊,A等于1B等于china,C等于AB对吧?D等于A这些东西,你不用去管啊。

pyon里面的数据结构,你要学要花很长的时间,我不指望说啊两分钟就让你上呃,就让你入手啊,就让你怎么怎么样,这个不可能哎,我我先把这个话说到这儿,这不可能需要你练习啊,需要你练习。

但是呢我只说一个最今天跟今天作业简单相关的一个东西啊。😊,好,那么我们来看这个china是吧?好,那么现在呢china它是一个有序的序列啊,有序的序列。那么在这个地方,唉在这个地方稍等一下啊。😊。

啊,在这个地方我们来看一下啊,我们去访问这个地方什么呢?哎,0到3,我不知道同学能看到这个冒号了没有啊?0到3我发到这个地方啊。😡。

稍等一下啊,我发到咱们的这个聊天的群里啊,稍等稍等啊。😊,哎,0到3啊0到3,那么0到3就意味着我们只访问前面的CHI明白我意思吗?开着呢访问它有一个特点啊,这叫切片访问啊。那么如果我只访问C怎么办呢?

我们写一下这个。😊,叫直。访问C明白我意思了吗?哎,这是python的切片访问啊,这是python的切片访问。哎,这是这python的切片访问和python的索引访问。那么这两种访问方式。

我希望今天你能在课后之后,你开始去不断的去练习它,并且我也留了一道小的题目,你要在under特com曼环境之上,你去把这个小的题目做出来啊,什么小的题目啊,哎,叫做什么呢?😊。

哎,叫做判断回文啊,判断回文啊,什么叫回文呢?我跟大家去说一下啊。😊。

回文判断练习啊,就是说比如说61816,这就是一个回文,它的从前往后读和从后往前读,它是一样的。那么我就希望你用这种,无论是切片还是索引,你去。做一下这个判断啊,去做一下这个判断。好。

那么今天的咱们的公开课的时间差不多就到这里了啊,因天讲的也比较匆忙,之间啊,QQ也会断了一次啊,非常的抱歉哈。但是呢我会有最后的一一段话给大家啊,就是说python的学习啊,python的学习。😊。

,习稍等一下,我录播我不太清楚哈。那么我们先说一下啊呃under是这样的啊呃这个这个问题非常好啊,飞龙在天同学啊呃under它是一个集成环境是吧?哎,我刚才用的n它是一个开发环境,明白我意思吗?

它是一个开发环境啊,呢它是一个IE啊,它是一个IE这主要取决于你想做什么如果你想做的是数据科学方向的。你比如说我想分析一个数据啊,导入一些库啊,或者经常要修改啊什么的,你用不合适明白我意思吗?哎。

你用不合适。但如果说老我想做爬重,我想去做外部哎,这些东西你用非常的合适。哎,它是根据你用途啊,因为我们今天要主要讲的就是数据科学方向的嘛。

所以一直在用notebook也是希望大家培养大家去用这个notebook是吧?好,继续我继续。😊。

好,那么呃本节课的最后呢,我就说我们记这堂公开课的时间可能稍微长了一些,要一个小时多一点哈。那么呃最后送给大家的话,就是python学习,对于同学来讲,对于新同学来讲是既简单也困难的,简单的是什么呢?

简单的是python它本身相对于其他的语言,而且它的门槛是最低的,困难的是什么呢?困难的是说。😊,任何的东西的学习都不是一蹴而就的,它都是需要你的日积月累的去练习,老师和资料只能占到20%啊。

剩下的全靠你自己动手练习啊,动手练习。你如果不能自己动手练习,你听100堂的公开课,你听1000堂的专业课,你花再多的钱,最后你还是依旧不会。

我把这句话啊也送给大家也是希望大家能够明白如何能学会一样东西哈。那么最后有一个有一个秘诀啊,叫做用以置学。如果你现在从事的就是计算机领域或者开发领域的。那么非常好,恭喜你啊。

因为你所学的东西都能够立刻的什么呢?哎,在工作上去去使用得当啊,就是说我边用边学边用边学这个效率是最高的啊,这个效率是最高的。

那么最后呢也预祝大家哎所有参与能够认真的听完今天公开课同学在python上面都能有一个结果,什么叫结果,你最后能够学到python,什么叫你能最后能学到。😊,thon我给你很多python的题。

你能做出来,你能编写python的代码,这才叫能够有一个结果,这才叫你学会了python,明白我意思吗?哎而不是说我听过多少堂课啊,听过多少堂课。

那么最后呢再呃说一下我们的啊下周也会有一个三节公开课中的第二节啊,第二节会涉及到稍微进阶一些的pyython的东西,那么也希望今天听完公开课同学回去之后能继续练习,你练习了以后。

你才有基础去听我下周要讲的东西啊,要讲的东西啊,那么呃最后再强调一下这个作业啊,非常的简单,但是也需要你干什么呀?你把这个作业完成了,我告诉你,你今天就有大收获了,明白我意思吗?一个小时的时间不长。

但你有大收获了。什么收获呀?😊,我们看一下我们今天的目标哈。😊,你把python理解了,你把环境打好,你把note book使用了,你连python的基本操作你都会了。你说我们今天目标是不是达成了呢?

对吧?好,那么呃O那么今天我们的课程就到这里了,那么也非常期待能和下呃同学们。😊。

啊,也非常能够期待和同学们在下一周我们的公开课能继续见面。好,那么呃同学们啊这个时间有没有问题啊?有问题我们就来提问,在我们的留言板上来留言啊,留言啊,留言我们来看一下啊。啊,刚才忘了切换屏幕了。

非常抱歉啊,因为光顾着去讲课了啊。好,我们来去看一下啊,有没有问题,如果没有问题的话呢,非常感谢大家能够啊认真的把这个呃公开课听完哈。那么我们这堂课就结束了,谢谢大家。😊。

人工智能—Python AI公开课(七月在线出品) - P10:大学生AI成长计划 - 七月在线-julyedu - BV17W411K7G8

啊,首先各位小伙伴啊,大家晚上好,非常欢迎各位小伙伴参加我们7月在线大学生AI成长计划的这样的一个呃公开课。那么我们今晚的一个主题是围绕两个方面啊。

首先呢我们要认识一下人工智能以及如何进入我们人工智能这样的一个行业啊,那么重点呢分以下四个部分来完成。那么首先第一个啊是关于我们AI行业的一个思考。那么第二个呢。

我们呃了解一下我们目前AI项目的一个基本的流程。啊那么第三个啊,我们所要掌握的一些核心的技能啊,有哪一些,最后呢啊带大家来走进我们的企月在线啊,来了解我们企业在线的一些课程还有一些呃其他的一些内容啊。

呃。那么首先我们来完成第一部分啊,我们对于AI行业的一个思考。那么而经我们人工智能的一个声音呢,已逐步变得普遍理性啊,且越来越多的AI的创业的项目已经开始下沉到我们这样的一个应用层面啊。

比如说我们的金融电商教育啊等等。那么与此同时呢,我们AI技术型人才呢,也同样着手于探究我们AI更深层次的一些啊技术难题。那么像咱们学这个积极学习、深度学习啊,理工科的同学呢基本上或多或少的都学过一点啊。

那么所以说未来这方面的人才呢也会越来越多啊,对应的市场的机会呢,也会越来越大啊。那么我们AI的一个发展啊,对啊比如说对社会的影响也好,或者说对我们整个行业的一个思考啊,我想从以下这。

六个方面啊来给大家去进行阐述啊,那么啊第一个是吧我们的what是吧,我们人工智能到底是什么?它的一个整个的发展和经历啊,是一个什么样的一个过程?那么呃hy也就是我们为什么要有这样的一个人工智能啊。

那么where呢?也就是说,现在我们人工智能在各个应用场景下达到了一个什么样的一个水平啊,那么how也就是说我们怎么去实现它,以及实现后有哪一些这样的一个成果?那么问是吧?我们人工智能啊。

什么时候才能够走进我们的一个生活,产生这样的一个呃落地的一些价值啊,最后呃我们的呃 who是吧?在人工智能的浪潮里面,我们又是充当一个什么样的一个角色啊?

OK那么首先啊来完成第一个我们人工智能到底是什么?那么我们在讲人工智能之前呢,可以回想一下我们人类的智能是如何发展而来的。那么我们知道呃地球的寿命大概是40亿年左右。

那么我们人类诞生也就200到300万年前这样的一个时间段啊,那么我们之前啊我之前看过一篇很有意思的一个文章是吧?如果说把地球呃生存的一个时间呢当成一天的话。

那么我们人类大概就是在那个23点59分之后的那个时间段诞生的啊,所以说我们可以看出人类在地球上存在的时间是非常短暂的。那么大家可能就会问是吧?那么我们人类的智能是如何产生的啊,那么首先我们举一个例子。

比如说像呃恐龙啊,那么它在2亿年前就诞生了啊,统治着我们地球大概。1亿六七万年前啊1亿六七万年是吧?那么呃那为什么恐龙没有产生这个智能?啊,那么在这里面啊。

为什么等到我们人类的时候而产生了这样的一个智能?所以说在这里面其实是人类本身的一个智能,也是通过我们的一个迭代进化啊,甚至很多未知的,没有研究清楚的一些东西。那么进而产生了我们人类的这样的一个智能。

那么我们人工智能时代是如何产生的啊,那么这里面啊,它有一个迭代的一个顺序啊,比如说我们从能源时代啊,能源时代,那么能源时代如何产生的,它的条件是什么?比如说我们呃早期的上这个瓦特改良了蒸汽机是吧?

爱迪生发明了啊电灯对吧?特斯拉发明了我们电力的一个传输方式,把电力以无线能量传输的形式呢,呃,比如说呃传达到我们的一个目标电器,对吧?那么紧接着就是第二个我们的电子时代啊。

那么呃常见的比如说我们的什么电子管啊,进气管啊,集成电路啊等等。那么第三个。一个是我们的互联网啊互联网。也就是说在我们发明了计算机以后,对吧?后面有了这样的一个互联网。

包括我们现在的移动互联网这样的一个时代啊,那么再往后面。来走的话呢,其实就是进入到我们的一个人工智能的这样的一个时代啊,那么呃。大家有没有去想过,为什么说我们在呃蒸汽机的时候啊。

没有产生这样的一个人工智能呢?啊,在这个下面是吧?我们可以来呃看一下它的一个发展的路径啊,其实呢以我们今天的这样的一个人工智能来说,它是依托于我们计算机啊,或者说它背后的这样的一个计算的能力啊。

那么如果说我们想要去做好它,那么需要我们现在互联网或者说移动互联网所带来的这样的大量的这个数据作为我们的一个支撑啊,它是基于我们大数据才实现的。那么这也是比如说我们在呃很早之前。

比如说我们的蒸汽时代无法产生我们人工智能的一个原因啊,那么我在做这个进一步的对比啊,可能呃有人说把这个人工智能啊,当成我们第四次这样的一个啊工业革命,是吧?那么如果说我们把工业革命看成什么呢?呃。

一次改革,对吧?那么工业革命它改革主要的一个点。是不是把我们人从体力劳动中解放出来。而后面呢,比如说进化到我们的信息技术阶段。也就是说呃包括我们的计算机啊、互联网啊。

也就是它可以将我们全世界更好更紧密的联系起来。然后呢唉逐步在进化到我们这样的一个人工智能的一个阶段。那么人工智能主要是呃它的一个终极目的啊,肯定是将我们人类从那繁重的这样的一个呃脑力劳动解放出来啊。

这也是我们为什么要呃进入学习人工智能的一个原因啊,那么到底什么是人工智能呢?那么这个定义啊啊,可能有呃不一样的一个地方啊,这个是呃2018年啊一个呃。

刚定义出来的一个比较呃我比较认可的一个关于人工智能一个定义是吧?也就是说,利用我们的数字计算机或者是数字计算机控制的这样的一个机器啊进行我们的一个模拟延伸扩展人的一个智能,包括它的一些感知环境等等啊。

来获取什么呢?我们这样的一个获取并使用知识的这样的一个系统啊,那么人工智能领域里面研究,其实像我们现在目前来说啊,包括我们的机器人呀啊,语音识别啊,图像识别自然语言处理啊。

包括一些我们的专家系统啊等等啊,这样的一些内容啊等等这样的一些列。那么现在我们对人工智能的来历呢,有了一个简单的一个了解了以后,那么在各个应用场景下啊,大概达到了什么样的一个水准O啊。

接下来跟大家啊一起再聊一下,是吧?那么啊大家都知道我们人工智能的一个引爆点,对吧?阿尔法go啊,很多人就会说阿尔法go呃连围棋这么难的事啊,它都能搞定是吧?啊,毕竟这个下围棋是一个比较难。

而且比较高级的一个事情啊,那么就会有一个疑问,那是不是人工智能什么事都能做呢啊,应该有人有这样的一个问题啊,那么一般我们会根据内容的一个难易程度将我们人工智能呢分为这样的三个阶段啊。

比如说我们的运算智能感知智能啊,最后是吧达到我们的一个认知智能。那么运算智能它的一个主要的作用就是什么能存会算啊,技能存储也可以进行啊大量的运算,是吧?那么感知智能这一块呢,也就是能听会说能看会认啊。

那么最后是吧我们终极肯定是要达到这个认知智能,也就是它能够理解啊,并且会思考啊,像我们刚才所讲的这个阿尔法go呢,它是属于运算智能啊,虽然你解决了这个围棋的问题。

但是本质上是一个空间有限的这样的一个任务。换句话说只是在有限的这个任务里面去完成了某一个事情啊那么理论上都是有解决方案的啊,那么比如说像最早的时候93年是吧,战胜这个呃跳棋冠军。

然后97年战胜了这个象棋冠军啊,这些可能都是多年以前的一个内容。那么像围棋这件事并不是因为它解决不了啊,它肯定是可以解决的啊。但是这个阿尔法go,它为什么会。

轰动呢原因就是在于它利用了一些呃相对比较巧妙的一个方式啊,将实现的时间大概提前了。呃,比如说呃20年或者25年啊30年这样的一个呃时间啊,让我们在现在或者说现有的这个运算能力下就能够呃做到这件事。

那么在这里面我们可以看出阿尔法 go呢,它在呃学习人类围棋的这样一个规则的时候呢呃。是有一定的优势的啊,但是他的一个思维方式呢跟我们人呢的一个思维方式啊并不是完全一样的啊。

比如说他在战胜这个那个叫呃李世石的时候是吧?可能就学习了3000万盘是吧?但是到第二年战胜科杰的时候,他可能已经学习了有3亿盘了啊,那么像现在可能进化到了阿尔法ro是吧?那么不仅可以学围棋是吧?啊。

他还可以学其他的棋,而且他的一个学习的时间成本会很少,那么他的一个进化速度呢,也同样是按照天来进行计算的啊,那么这里面其实就衍生一个东西,也就是说我们啊思考什么呢?人工智能的一个魅力。

那我们现在追求人工智能的一个原因啊,其实这里面呃。我大概认为啊有两个比较重要的一点,一个是什么呢?持续向前进化啊,第二个是无成本复制啊,那么持续进化的一个过程,比如说嗯以我们人类为例啊。

你是一个呃数学家的孩子,那么你的数学就一定好吗啊,不一定啊,或者说呃。嗯,我们经历了一个很长时间嗯。比如说之前哈也就是说往前推一个百十年是吧。

可能会出现像啊牛顿呀、爱因斯坦呀这样的一些基础研究的一个大家。但是呃过了这么长的时间了以后啊,也并没有出现嗯这样伟大的一些人物,是吧?也就是说我们人类的一个持续进化的能力还是有一点点弱的。啊。

那么我们人的大脑呢其实是经过了长时间的进化才变成我们现在的这样的一个样子。但是机器可能就啊不一样啊。今天我们识别,比如说我们啊之前做这个识别识别率是吧?做到80%啊,明天只能会更好啊。

超过80%达到85%,86%、87%是吧?啊等等啊,不可能说啊还有降的是吧?不可能达到70%几啊,这就没有意义了啊,这就是我们机器的一个持续进化的一个能力啊。那么第二个呢啊很重要的一个点。

就是买无成本的一个。复制啊,那么无成本的复制啊,打一个比方啊,比如说我们在研发某一个产品。那么在研发阶段,我们可能需要投入很多的一个资源啊,比如说呃人力啊啊,包括我们的一些设备啊等等啊。

但是只要我们一旦研发成功了,那么我们的编际成本就会下降的非常厉害啊,比如说我要做一个客服系统啊,那么我可能需要招相关的一些人才啊,然后呢还要提供一些相对应的设备啊啊我们如果要做一些优化。

那么最多也就是比如说用一些啊相对科学的方式来增加人员的一个工作效率啊,也就是提高个人的人效啊,但是如果是机器,那么只要往那一堆啊,那么很多东西都可以去代替啊。

它这种无成本的复制能力呢啊对比人类来说是非常明显的啊,那么以上这两等呢这两点是吧?比如说我们这样的一个智能的持续化向前。进化的一个能力和无成本复制的这样的一个能力。

也是呃我们现在这么关注和追求人工智能的一个相当于一个原因啊相当于一个原因。OK啊,这个是相当于什么呢?相当于我们第一层啊第一层。那么第二层呢我们的一个感知智能啊感知智能。

那么感知智能呢主要就是呢哎能听会说哎也能看也能认啊。那么我们生活中常见的,比如说像现在比较普及的智能音箱啊啊,还有一些智能手环啊,无人机制度飞行、无人驾驶啊等等。这些设备啊。

然后呢具有这样的一些识别的能力。然后感知这个功能呢呃不光是呃我们的一个人是吧?动物其实也有啊,比如说我们对光线啊、触觉呀、味觉呀等等啊,这些呢啊都属于我们的一个感知的这样的一个范畴。啊。

那么从感知的角度来说呢,机器进步呢,它的一个速度啊呃非常非常快啊,和人类呢越来越接近啊越来越接近。那么呃最后一个就是我们的一个认知智能啊,能理解会思考啊,比如说我们的语言。那么我们从诞生以后呢。

比如说啊我们的人类的发展啊,也就是说这个语言对我们人类的发展呢起到非常非常大的一个作用啊,可以说是我们人类智慧的一个载体啊,或者说它是一个非常重要的一个基础。那么如果说我们从人工智能研究来讲啊。

自然语言处理是人工智能皇冠上的一个明珠,是吧?啊,这个话呃。应该流传很久了啊,但是这个实现起来呢啊并不是特别容易啊,说起来比较简单是吧?啊,可能实现起来就比较难啊。

因为呃语言本身呢可能啊有多重这样的一个含义。比如说以我们中文为例啊,一词多义的情况呢,其实非常普遍啊非常普遍啊,而且呢这些文字呢只是一些表面上的一些啊东西。

它背后呢我们可能如果从我们的自然语言处理来说啊,可能需要很多的常识啊,知识啊,多模态呀啊等等。这样呢来作为我们技术的一个支撑点。那比如说我们打个比方啊,我们中文里面有什么呢?呃啊树达招风是吧?

你听到这个词呢,你的脑子里可能就会产生这样的一些情景啊,或者说呃我们从小就去学习,比如说啊中文啊,或者说呃。比如说就是猴子吧啊,我们是如何学会猴子的呢?啊,肯定是呃你的爸爸妈妈。

然后呢带你去动物园看到一个猴子猴子是吧?然后指着告诉你是吧?这个就是个猴子啊。那么那个时候呢可能呃你只是有这样的一个感觉啊啊可能你连字都不会写,对吧?那么等到上学了以后是吧?老师呃可能去教室里面是吧?

啊,他不会抱一个真的猴子是吧?啊,但是课本上一般都有话啊,然后呢,你看到呃课本里面的这个猴子,然后老师告诉你是吧?这是一个猴子。哎,你一看这个好像和我之前去动物园看到的这个猴子是吧,有点像啊。

那么这个时候呢,你就会把这个猴子,比如说这个字儿啊,它的叫声呀、动作呀,还有一些其他属性跟这个语言呢相结合起来啊,相结合起来。那么这里面我们人类的智慧啊,其实它本质呢就是。多模态是吧?

首先呢我们不说是基于纯粹的语言,能够实现。比如说呃相对来说的一个什么闭环呀啊等等。那那么我们在这里面可以看到啊,就是说通过这样一个猴子的一个例子啊,我们可以简单的去理解,比如说我们的文字或者是语言啊。

它其实只是人类表层或者说呃的一个载体啊,所以说我们经常要啊。用多种模特啊来进行尝试。但是这个路呢还是啊非常非常长的。也就是说我们需要做的工作呢啊还是非常非常的多啊非常非常的多。

那么这是我们对于啊这个三层啊我们人工智能的三个阶段啊的一个内容啊。那么我们。该如何去实现啊,以及说我们实现了以后呃,有哪一些这样的一个成果。其实我们在讲实现的时候呢。

其实我们最好去区分一下我们当前两个比较重要的一个概念,也就是什么强人工跟弱人工这两个点啊,那么我们以语音识别为例啊。🎼那么这个强人工呢什么意思呢?比如说我们刚才呃讲这个小时候看到猴子学习以后是吧。

你就知道了啊,然后啊不需要去列一堆啊这样的一些样本是吧?然后呢呃我们就可以啊达到比如说某一种效果啊,这个呢还是比较前瞻的,那么以我们的老科学研究为这样的一个基础啊,那么还有一种就是什么弱人工智能。

其实我们现在所处的大概都是这个范围啊,比如说呃我们的语音是吧?它可以将我们的语音转成我们的一个文字。那么这个过程呢和人对比,其实差距呢啊还是非常非常大啊,非常常。

但是呃逐步随着我们技术的这样的一个不断的推进啊,会越来越好啊,那么像这个弱人工智能它主要的一个呃思路主要就是基于大数据加我们目前啊深度学习的一个框架啊,那么这是我们。

物流的一目前的一个主流的一个技术线路啊,那么从这个实现路径来讲呢,其实就是比如说我们的深度学习是吧?然后呢算法呀、算力呀、大数据啊是吧?这三个是不是我们之前称为三大法宝是吧?啊。

他们相结合得到的这样的一个结果啊,那么我们人工智能。呃,怎么样对吧啊,比如说贴近我们生活,或者说啊走进我们的生活啊,产生这样的一个落地的一个价值。那么对于我们日常生活来说呢。

其实啊近几年大家对人工智能的一个期望呢应该是越来越快。同样呢变化呢也是非常非常快的啊。比如说像我们早期的可能在1516年啊,提出什么算法呀、算例啊大数据啊是吧?这个相当于人工智能的啊三大件是吧?

然后到17年的时候呢,我们可能就提出了比如说我们的场景是吧?你要转场景啊,不光有这些东西啊,呃也就是说不光停留在我们啊漂亮的PPT上是吧?然后啊到底你你通过这些技术到底能够干嘛。

也就是说你一定要去落地啊,你得告诉我然后到1819年呢,可能呃它的一个层次又高了啊,也就是说转变成我们的一个价值对象啊,你光找场景啊也不行是吧?你需要去追求它的一个价值对象啊,你得盈利啊。

那么这个可以看出,我们大家对人工智能的一个期望呢和技术的一个迭代是在不断的一个增加啊。但是我们实际做事情呢啊同样又有一点区别。那比如说我们在学校里面是吧?做科研的。然后呢和在企业里面做研发的。

其实区别还是蛮大的。那么这里面呃有一个相当于比较长的一个链条啊相对比较长的链条啊,那么从我们的理论然后到技术,然后到原型啊,引擎产品、商品啊、商业。那么从我们啊比如说你写了一个pepper是吧?

从你的paper开始是吧?有了理论跟我们的一个技术了以后,那么有了这些数据后,可能会转变成一个什么呀原形啊,可能就会转变一些。但是呃。如果你没有具体的一些场景,你是上不了线的。

那么需要考虑的问题就非常非常多是吧?那么啊比如说我们未来的商业模式是什么样子的呀,是吧?那么决定我们嗯未来我们个人还是企业在这个过程当中的一个位置位置是吧?那么本质上呢。

其实我们需要对未来的一些形态呢来进行一些啊预测。那么呃提前预测了啊,才能够知道将来会发生哪些东西,然后呢,结合我们现有的一些技术啊,然后呢啊配套,然后包括如果说你可以落地的话是吧?啊,来完成。

比如说啊往后面再走是吧?啊,营销呀,把它给商品商业化啊等等这样的一个呃将当一个一个线路啊,一个线路。嗯,那么实际上啊我们也会发现啊,在这个人工智能落地的过程当中,其实呢啊。挑战啊也是呃非常大的啊。

那么下面呢啊这里有一幅图是吧?这里面是吧?这是一个啊翻译器啊,或者说你可以称之为机器翻译啊,或者说一个翻译的一个机器,那么这是一个什么呢?wifi是吧?wifi那么啊大家想一下,我们啊。

比如说在日常里面对这两件事的一个关注度和容忍度其实呢相差是非常非常大的啊,非常非常大。比如说这个wifi吧啊,wifi大家都觉得是一个好东西是吧?啊,之前有个梗是吧啊。

到哪里可能先问一下有没有wifi是吧?那么即使这个wifi断了是吧?你连上以后即使断了是吧啊,你也不能怎么样啊,最多你重新找一个wifi再连一下是吧?但是如果换成了我们人工智能里面。

比如说这个翻译系统啊,原来比如说我们最早可能做到四级水平是吧?啊?当然有的人说啊四级水平太low了是吧?不行,是吧?你要做到6级。水是吧,然后呢啊慢慢做你做到8级水平啊,或者说你像现在啊无人驾驶啊。

那么可能无人驾驶在事故上的一个呃产生率已经远远的低于人类了。但是。只要有一个啊比如说一场小的事故或者出现一个小的问题,那么这些问题呢啊就会被无限的放大啊无限的放大。那么其实这个什么原因呢?

其实这个原因就是我们刚才讲的是吧?人工智能的这样的一个能力啊,其实是我们人类能力的一个衍伸啊,其实任何方面啊,其实相当于我们这个人工智能这块任何方面我们人类智能都是这个人工智能的一个老师。

包括我们跟大家之间其实呃换个角度来说,也是竞争对手啊,也是竞争对手。那么下面是我们比较像现在基本上都是已经落地的一些内容。比如说我们的人脸识别是吧?啊,非常的成熟啊。

包括我们对于自然语言处理上是这个智能音箱是吧?包括我们的呃无人车是吧?啊,无人车可能现在还没有大批量的啊来做是吧?那么像这个啊病理检测啊,病理检测,像很多这样的一个呃重大的常见的一些疾病啊。

现在完全可以用人工智能来进行替代啊,包括我们这样的一个呃智能的红绿灯是吧?包括我们现在所看到的这个天气预报啊等等啊,其实呢都是我们人工智能的一个产物啊,人工智能一个产物。

那么我们在这个人工智能的这样的一个啊这个大浪潮下吧,我们应该充当一个什么样的一个角色啊?以我们契约在线为例啊,我们是一家教育培训公司,那么我们的目标呢啊是培养百万AI人才是吧?

助力我们AI产业的一个发展。那么像这个呢其实就是我们对于人工智能的一个思考,是吧?我们的一个定位啊,在这个人工智能浪潮里面,对吧?我们处于什么样的一个位置。啊。OK啊。

那么以上啊这些内容呢啊主要是跟大家去分享一下,是吧?我们对这个呃AI这个行业啊的一些基本内容的一个思考。那么。我们对于这个呃行业有了基本的一个认识了以后。

那么接下来呢和大家交流一下我们企业中大致的一个项目的一个流程啊,也就是说我们啊如果要完成一个AI的一个项目是吧?我们该如何去做啊,这里面呃画了一个脑图啊,脑图。那么其实整体的步骤呢就分为五步啊,五步啊。

但是啊这个啊需要去注意一下啊,这个只是我只是列了一个大致的啊,大致的一个框架啊,并不是说所有的项目都遵循这样的一个流程啊,这只是一个大概的一个框架是吧?那么第一步呢我们需要去提取问题啊。

也就是说你要找到你的一个出发点啊,你的出发点,你到底要干嘛,对吧?把你的需求呢先列出来啊,然后呢,我们需要去获取数据,然后呢,特征工程,然后呢,模型然后呢上线部署啊,这是大的五步。那么首先第一个。あ?

提取问题啊,那么提取问题呢啊其实我们可以理解为数据的一个基础啊数据的一个提取。那么实际问题呢我们可以把它抽象成我们数数学的一些问题啊,那么其实这里面啊如果说你把它抽象成数学的问题。

那么指的其实就是我们要获取啊,或者说获得什么样的一个结果啊,目标是一个分类啊,还是一个回归啊,或者是一个聚类的这样的一个问题。那么如果都不是是吧?那么可以划归到啊其他的某一个类的这样的一个问题啊。

那么这是第一步啊,那么第二步呢,我们要去获取数据啊,那么获取数据呢啊方式有很多种了,对吧?比如说呃我们可以通过爬虫自己去爬啊,或者说可以去一些啊数据交易平台啊,你可以去买啊等等。

那么那么像如果你自己去爬是吧?爬虫这一块是不是两种是吧啊,常见的两种啊,就是通用的一个是聚焦的。那么一般呢我们使用聚焦。啊,获取我们想要的这样的一个数据。那么我们获取数据。

那么呃包括我们获取原始数据以及什么呀?我们要从原始数据中经过什么呢?比如说我们下一步的特征工程啊,然后我们从原始数据中去提取一些我们比如说把它分开,有训练的,有测试的这样的一些数据集啊。有这样一句话啊。

就是说呃比如说我们数据啊,它是决定比如说我们机器学习结果的一个上限啊上限。也就是说数据非常非常的一个重要。那么可能还有人说算法不重要吗?啊?算法呢其实只是尽可能的呃。毕竟我们刚才通过什么呢?

数据来决定的这样的一个上限啊,可见说我们这个数据在机器学习中它的一个啊作用啊是非常非常。大的啊非常非常大。OK那么其实总体来说哈,数据它具有一个啊非常典型的一个代表性啊。比如说我们对于分类问题。

数据的一些偏斜对吧?不能过于呃严重啊等等等等啊,或者说我们不同的类别的数据呢,数据量是吧?不要有我们比如说有数量级的这样的一些差距啊,那么除了这些以外呢,我们还要去对我们的数据的一个量级呢来进行。

比如说评估,是吧?我们的一个样本的数量呀,特征的数量呀,我们这个估算训练模型,比如说我们要对内存的一个消耗呀啊等等。这个呢都是需要去考虑的。那么如果说我们数据量特别特别大,那么这个时候呢。

我们就可以考虑,比如说减少我们的一个呃训练的样本啊,比如说我们可以通过什么降维啊,或者说我们可以使用什么呢?呃分布式啊,也是可以的啊。那么这些呢其实都是对于数据处理的一些手段。那么数据OK了以后。

那么接着呢就来啊进入到我们的一个特征工程这一块了啊,特征工程这一块。那么特征工程这一块呢,其实包含啊一般啊三个是吧,怎么去构建,怎么去提取,然后呢怎么去选择啊。

那么有时我们可能嗯用一些比较简单的一些模型的效果啊,比复杂的模型效果又好啊,这个呢其实呢是根据我们具体的一个情况而定的啊,那么实际工作中呢,大部分的时间,其实我们就是花在这个特征工程上面是吧?

我们怎么去构建啊这样的一个特征是吧?那么构建完了以后,你怎么去提取你想要的一些内容是吧?最后选择一个合理的一个模型是吧?然后呢进行我们这样的一个呃。操作啊,然后呢达到我们想要的这样的一个效果啊。O。😊。

呃,那么接着呢我们就进入到这个模型这一块。那么模型这块可能呃核心的就比较多了啊,其实它属于我们这里面的一部分了,对吧?啊,包括我们的训练呀、诊断呀啊,我们的优化呀验证是吧?包括我们的一个融合啊等等。

那么呃训练这个啊一般啊呃这个就比较简单啊,训练是啊基本上它的逻辑呢基本上呃大同小异啊,那么关键在于哪呢?这个诊断啊诊断我认为是呃整个这个模型里面啊非常非常重要的一步,是吧?我们在这里面呃模型诊断。

你要判断什么呢?比如说我们要判断它是否过拟合是否欠拟合,然后常见的一些方法,比如说我们可以通过呃交叉验证啊,绘制曲线啊,或者说我们增加这样的一个呃训练的一个数据量啊等等。

或者说我们可以通过降低这个模型的复杂程度来降低我们过拟合的这样的一些风险啊,或者说你通过什么样的一些方式来提高特征的一些数量啊,包括提高它的一些质量啊,来增加我们这样的一个模型的复杂度啊。

来防止我们的一个啊嵌拟合啊,那么诊断完了以后是吧?其实我们还需要干嘛呢?调优是吧?我们。需要调优。那么呃调优后的一个新模型呢啊这个时候呢,其实我们按照呃正常的一个工程之手,其实你还需要再回来是吧?

就调优完了以后,你还需要进一步的再准断一下。其实就是这个这两个呢,其实呢就是一个相对来说比较反复迭代啊,不断逼近的这样的一个过程。你需要不断的去尝试。然后呢进而达到我们呃最优的这样的一个状态啊状态。

那下面就是一些验证是吧,我们可以通过什么呢?比如说有测试数据集是吧?然后呢,我们验证模型的一个有效性,然后观察它与我们这个样本呀之间的一些呃误差,然后分析我们误差产生的一些原因啊。

那么往往能够使我们啊能够更快的找到我们这样的一个解决问题的一个突破点啊,那么误差分析呢主要是分析我们这个比如说误差的一个来源,或者说我们之前你拿到的这样的一个数据呀特征呀啊,包括我们算法。

它们之间的一些联系啊,这个需要去综合的去考虑啊,那么最后呢这一块呃这个模型的一个融合啊,那么模型的融合呢,一般就是模型的前后端的一个融合,对吧?前端这一块可能就涉及到啊比如说我们的特征工程啊。

清洗呀、预处理呀、采样,这是相对来说就比较细节的一些部分了啊,跟我们的后端呢来进行融合啊。那么这样呢其实呢可以提升我们算法的一个精确度啊,提升我们算法的一个精晰度啊,这是我们模型这一块啊。

那么往上来走是吧?还有。这个最后一步了是吧,上线部署啊,也就是说哎我们呃怎么把它啊放到我们的一个呃相当于一个工程里面,对吧?那么这一部分内容呢主要是跟我们工程实现呃,相关性还是比较大的啊。

工程上一般我们都是以结果为导向。那么模型在线上运行的这样的一个效果呢,直接其实决定我们模型的这样的一个成效啊,我们啊不能单纯的去嗯比如说通过这个准确程度啊,或者说啊误差程度啊。

某一个单一的一个属性来进行这样的一个判断,是吧?它到底是ok了,还是没有没ok是吧?我们需要去结合,比如说把多个这样的一个因素呢进行融合啊,比如说我们刚才所讲的准确程度是吧?误差情况。

然后呃运行的一些速度啊,包括我们对于这个资源的一个消耗程度啊,包括最。最后比如说啊还有很重要的就是什么这个是否稳定啊,稳定性这块啊是否可以接受啊,把这些东西呢啊融合在一起啊来。这样的一个决定啊。

我们模型啊,它到底是成功了还是失败了啊,那么这个呢啊是一个大概的一个流程啊,这里面就不涉及什么呢?啊,这个基本上都是研发这一块的啊,研发这一块的内容。如果说你往上去纠的话,可能还涉及到什么呀甲方呀。

乙方呀可能涉及到一些呃前期的一些啊内容了,对吧?那么如果说单纯从我们研发这一块呢啊,基本上大概的一个流程啊,就是这样啊大概的流程。OK那么。😊,这部分okK了以后,那么第三个部分呢。我们来呃。看一下哎。

我们具体要有哪一些啊技能。也就是说当我们掌握了基本的流程以后,其实相当于啊比如说我们建一个大楼啊,建个大楼。那么这个大楼的框架呢,就已经建好了。

那么接下来呢就要让大楼里面是不是要在大楼里面去填充一些内容啊啊,需要去呃哪一些这样的一个内容啊,就跟我们房子装修一样是吧?那么首先需要一个基础的毛坯啊,基础毛坯。那么像这个基本的流程你了解了以后。

相当于这个毛坯就已经有了是吧?接下来你就是做一些个性化的一些软装了啊,那么这个时候我们就可以根据或者是按照自己的一些想法来进行我们合理的一个选择啊,合理的选择啊,那么这里面像这个。知识树这块啊。

我们呃企约的官网啊有一个呃。🎼这个技能数啊,这块我们可以来看一下啊,我们到底要掌握啊哪一些这样的一个内容啊,这是我们整个7月的一个类似于什么呀知识图谱啊,知识图谱。那么。

这里面啊分为什么呢?我们的入门级别的是吧?初级的,然后下面还有对应的呃中级啊高级啊,一共这样的几个阶段啊。

那么这个里面基本上涵盖了我们目前啊常见主流人工智里面人工智能里面所涉及到的这样的一些知识点的一个内容啊,知识点内容。那么啊我们一个一个来过一下啊。

啊,其实这后面有很多很多的加号是吧?可以啊点开的啊,有一些具体的内容是吧?啊,我就不一一个一个的扩展了。那么在这里面,首先啊我们呃从这个入门的基础类体系来说,那么首先是吧你需要去具备一些什么呢?

数学功底啊,数学功给啊,但是啊这个啊一般啊都没问题啊,这个基本上都是我们啊大学里面都学过的啊,除了像这个图学化,可能这个呃接触的比较少一些。像这个微积分呀,概率论呀,信息代数啊。

这个基本上都理工科必修的这样的一个啊课程啊,这个啊应该啊很轻松就可以搞定啊,那么第二个就是什么呢?我们的一个啊编程语言这一块的一个选择啊,编程语言。那么编程语言这一块呢。

像人工智能为什么会首选python啊,python。因为首先第一个python比较简单啊,入门比较快。那么第二个呢它是有丰富的对于数据处理的这样的一些库啊,我们可以很好的去来啊对我们的数据进行一些。

比如说操作啊来分析啊,那么这里面我们需要掌握的什么呢?除了一些基本的语法以外,比如说呃其实这些其他语言里面都是一样的了,是吧?包括呃什么循环呀判断呀啊,怎么去呃定义函数呀,它是一个面向对象呀。

你怎么去理解面向对象呀啊等等等等等啊,这个是属于哪语言层面的。那么我们用这个pathon里面的哪一些包来做我们的数据这一块呢?比如说有npy啊,我们的pandadas啊,然后呢比如说你要做图的话。

是不是还有我们的一个matath blood label是吧?还有我们的s born啊等等。然后包括这个screen啊等等啊,这个呢都属于我们python啊这一块啊python这一块。

那么呃往右侧啊来看,那么也就是说我们入门的还有一些啊涉及到一些啊数据的一些结构啊,那么这个呢呃数据结构这块呢,其实呢啊更多的是在于理解啊,更多在于理解啊,那么数据结构这一块。

比如说常见什么堆呀啊啊我们的数呀,我们的图啊,递归呀啊等等等等啊啊这些呃常见的一些内容是吧?在这里面啊也同样需要去做一些呃了解跟掌握啊,比如说我们的一个排序是吧?啊,比如说我们有啊怎么去排序的是吧?

你可以冒泡啊,你可以选择呀是吧?啊,比如说你个堆呀,怎么去用堆是吧,怎么去用栈啊等等啊,这样的一个内容是吧?什么是链表,什么是二叉数啊,这个呢都需要有一定的掌握啊。那么这是我们对于什么呢?

初步这一块啊初步这一块的内容是吧?那么往下来走是吧?呃,你入门了以后,那么初级阶段呢,我们需要掌握哪一些这样的一个内容。其实呢就是对于我们数据分析这一块的一个基本的内容,是吧?啊。

你要对数据这一块呢要非常的敏锐是吧?那么首先是吧我们从这个数据的获取这一块是吧?比如说我们用这个呃python来完成爬虫是吧?python里面爬虫还是有很多的。比如说我们可以直接用这个crape框架。

或者说啊你像通用爬虫的话,你可以用那个c是吧?啊,也是比较好用的。我比较喜欢用那容啊。那么同样它自带的啊,除了用这些框架以外,它自带的啊,比如说我们用这个request啊等等。

也是可以啊来进行一个啊数据的一个爬取啊。那么数据爬取了以后是吧?也就相当于我们拿到了这样的一个数据。拿到数据以后,你要来做这个什么啊数据的处理。比如说哎怎么去进行一些分组啊,合并啊等等等等等等啊。

也就是说哎慢慢的啊进入到我们特征工程这一块啊,然后把数据进行一些拆分啊拆分,然后进行我们的模型的一些训练啊等等。然后呢,最后啊进入到我这样的一个模型的选择啊,这样的一个阶段。那么初级完了以后。

接着呢进入到我们的一个中级这一块。那么其实中级这一块呢,主要就是数据建模了啊,数据建模。那么这里面主要是学习我们。常规的啊机器学习啊里面的一些内容是吧?比如说我们这里面呃像这个啊都是你要学人工智能是吧?

这些算法都是必备的是吧?比如说我们的逻辑回归是吧,决策术是吧啊,辅助贝耶斯,我们的一个知识下烂机啊。啊,SVM是吧?包括啊我们的一些啊模型是吧?这是分类的是吧?这是回归的啊,还有一些啊其他的是吧?啊。

大概就是这两类啊,大概就这两类。比如说你是呃二分类的还是呢啊多分类的啊等等。那么往下来走呢啊可能又是呃演化成一些比如说我们的无监督的学习是吧?有监督的学习,还有我们的集成的学习,深度学习,强化学习。

迁移学习是吧,生成对方网络啊等等,是吧?这些内容啊,其实呢它都是呃。其实都是串联的啊都是串联的。然后大家在学习的时候呢,其实还是以这个啊这个比如说我们先从机器学习开始是吧?

然后呢啊进入到我们的一个深度学习,然后慢慢的进入到我们强化学习,先移学习啊等等,一步一步的来进行这样的一个啊往下的一个递进啊。然后最后呢其实啊像这些基本的一些啊技能呀知识点呢,掌握了以后。

那么接着呢就进入到我们的一个呃高阶部分啊,那么高阶部分呢其实主要就相当于应用部分啊,应用部分呢,也就是说把我们刚才上面的入门啊,初级啊、中级啊,所用到的知所学到的这个知识。哎,我们要把它给呃用起来啊。

那么用起来怎么去用啊,有我们呃企业在线目前的课程来说啊,这些啊无人驾驶的啊,自然语言处理的对吧?聊天机器人的语音识别的图像处理,然后包括我们的推荐是吧?包括我们的一些金融风控啊啊,包括我们的计算广告啊。

可能这里面啊还有一些其他的没有列出来。那么像现在可能新开的有这个呃无人机啊自主飞行啊,它可能跟我们传统的这个无人机通过手柄啊,大家呃这个是不一样的啊,它是事先就会设定这样的一个啊相当于一个。

路线啊或者一个程序啊,然后呢自己去完成这个内容啊,不需要人去控制它啊,像未来,比如说像这个物流这一块啊,可能就会呃很大程度上会去依赖于这样的一个呃无人机的一个自主飞行啊。

那么像这里面啊可以啊简单的去啊扩展一下。比如说我们呃自然语言处理这一块啊,那么自然语言处理啊,你肯定需要掌握一些NRP的一些啊基本的一些技能,对吧?包括我们的像这个啊辅助BS啊,im克服模型啊啊。

这些都是啊之前是不是终级的时候啊来完成的这样的一些内容,对吧?然后把这些内容OK了以后,比如说我来写一个什么呢?作为一个聊天机器人啊,或者是做为一个智能客服系统啊啊等等啊,这样的一个内容。

那么像图像这一块呢,目前图像已经非常成熟了啊,那么像我们这边,比如说呃你有的项目,比如说对于这个车辆的大规模识别呀啊,大规模的人脸识别呀、人脸的检测呀、姿态估计呀啊等等等等的啊,就是项目非常非常的多啊。

然后还有什么呢?比如说这个推荐这一块啊,推荐这一块啊,这两年啊也是非常非常火的一个啊。一个相当于什么一个呃。一个行业吧然后在这里面可能推荐啊更多的是跟我们这样的一个业务场景啊,可能是啊相挂钩的。

或者说您可以理解是跟我们的工程啊相挂钩的啊,比如说我们常见的有一些呃什么今日头条啊是吧?或者是一些电影推荐呀啊,大家在啊比如说淘宝呀,京东的时候,是吧?有一些商品推荐呀啊等等等等等等。

那么这些呢都属于什么呃。推荐这一块。那么像现在比较流行的,有一个什么广告推荐是吧?广告推荐,那么呃也是很主流的一个方向啊,那么这个像这个呃广告这一块啊。

我们这今天啊刚开了这样的一个呃计算广告这样的一个就业班啊,大家也可以去了解一下啊,可以去了解一下。🎼O那么这是我们的高阶部分。那么往下去走是吧,可能就是一些啊框架了。

那么这些呢啊大家可以去啊其实框架这一块呢,我个人认为哈啊能直接用啊,就是直接用。比如说我们的testflow啊,突啊是吧?这些啊别人都已经弄好了,而且呢效果也是经过市场的检验啊是吧?

这个我们就没有必要去啊花很大的这样一个心思去做这样的一个内容是吧?我们可以直接拿来去拿来用啊,那么还有一个比如说像这个竞赛呀,cago是吧?啊,那么像这个竞赛呢。

其实我觉得大家如果想要进入这个行业参与一下,还是非常非常有必要的啊,非常有必要的。因为这里面可能会呃你可以组队是吧?你可以学习到一些新的内容是吧?

包括啊大家在一起可以更好的去完成我们这样的一个团队的配合啊。然后最后呢可能有这个呃论文的解读了,对吧?那么论文解读这一块,你像现在人工智能发展的速度啊非常非常非常快啊非常非常快。那么像这个论文哈。

每天都呃日新月异。那么像我们之前可能啊上周还是上上一周在聊,就是说。作个假设哈作为假设,比如说像我们现在。呃,就是以我们目前的这样的一个技术啊,现在咔停了,就是说。到今天为止。

这个技术呢我们就呃不再往前推了。就是以我们现有的这样一个技术来进行呃落地的话啊,可能我们呃未来十几年啊都有活干啊,都有活干。所以说它的市场呢非常非常大啊,但是这个呃是不太现实的。

这个技术啊不可能是停之不前的啊,它一定是向前不断的推进啊不断的发展。ok。

啊,这是呃给大家介绍一下我们啊7月的一个技能图谱是吧?啊,通过这个呢啊大概可以啊比如说啊分门别类啊往。

你想往哪个方向去走是吧?然后呢啊重点去掌握哪一些这样的一个内容啊,那么呃我们今天呢主要是呃针对于我们的一个啊大学生这一块,对吧?我们大学生AI的一个成长计划啊,成长计划。那么啊主推的课程呢。

可以在我们这个7月的官网上啊,比如说我们来找一下啊啊大学生这个成长计划啊,那么在这个大学生成长计划这个里面呢啊大家可以看到这个课程的一个简介啊简介,是吧?我们主要是针对于啊这个。

啊,高年级的一个本科生啊,或者说即将毕业的啊这样的一个呃。研究生人群啊等等。那么呃这个课程呢,我们推出的一个呃原因啊,除了刚才以外啊,那么呃其实我们嗯之前很早就在考虑啊开这样的一门课。

因为我们之前都是有这个集训营跟就业班啊,集训营就业班啊,它是我们相当于主打的一个内容是吧?但是呃可能呃有一些反馈啊,反馈什么呢?啊,反馈比如说我们目前来说这个高校可能呃师资比较缺乏是吧?

可能啊需要我们这边提供一些这样的一些支持,是吧?那么呃其实我们就考虑开设这样的一个面向于我们呃大学生啊这样的一个啊成长计划啊,大学生的一个成长计划。那么啊在这个整个的一个呃AI成长计划这个里面。

我们整个的课程呢啊是采用呃录播加直播的这样的一个。方式啊来进行我们的一个课程的一个讲解啊讲解。那么这里面啊一共有三种这样的一个方式吧。比如说啊在线视频啊在线视频。那么在线视频这一块呢呃就是啊。

把这个之前的一些内容啊,我们可以以录播的形式传给大家。然后还有呢在线实训啊,主要是解决大家啊,比如说啊视频完了以后会留一些作业。然后大家呢啊去完成,然后呢会有老师给大家去讲啊,还有呢在线直播。

就是就跟我们今晚是一样啊,在线去讲解这样的一些内容啊,那么这个呢是作为我们的一个呃主要,然后呢把之前的内容作为一个啊相当于什么串一下,然后呢讲一些新的一些啊技能点啊,新的技能点。

那么我们整个这样的一个课程的一个规划呢,一共分为什么呢?7个阶段啊,一共分为7个阶段。那么呃前六个阶段呢都是针对于我们的一个呃技术技术点啊,比如说我们是从什么呢?python入门开始的啊。

python入门开始。然后入门了以后是吧?比是说我们对这门语言有了一个掌握了以后,那么接着。这呢就是进入到我们这样的一个呃数据这一块啊数据这一块。那么数据这一块你需要提前先掌握一些什么呢?

比如说啊我们刚才所讲过的这样的一些数据的结构啊,数据结构跟一些常规的一些算法啊,比如说对应啊战呀队列呀哈西表呀等等啊这样的一些内容啊,那么这些内容O了以后。

我们就啊从我们这样的一个类似于啊小白就进化到什么呀数据分析这个层面啊数据分析啊,那么数据分析这一块我们着重去找啊,这几个内容是吧?我们的n派啊,包括我们的mat label,还有我们的那么这里面。

会有啊大量的这样的一个案例啊,来帮助大家去更好的去呃理解跟掌握是吧?哎,我们数据拿到了以后,到底该怎么去进行处理,那么处理完了以后是吧?我可以通过可视化来更好的展示显示出来啊,达到这样的一个效果是吧?

然后第四阶段呢就进入到我们的一个类似于机器学习的一个呃基础原理部分啊,包括我们常规的啊线性违规是吧?决策书啊,随机声林啊SVM呀啊等等等等是吧?啊,这些内容然后呃机器学习原理O了以后是吧?

有一个我们的机器学习的一个啊实战啊,实战。那么也就是说把刚啊上一阶段我们所学习的这些内容呢,然后呢啊做一个类似于啊总结,然后呢把它给用起来啊用起来啊,然后这里面可能。涉及到一些啊。

比如说我们还通过一些案例是吧?拿一个cago上面的一个比赛是吧?来大家去呃实际的去操作一下啊操作一下。然后。机器学习完了以后是吧?那么啊更深层次的一个进阶呢,那么就进入到我们的一个深入学习了,是吧?

那么现在深入学习呢啊发展是越来越啊快是吧?啊越来越快啊,那么啊所以说我们要进入到人工智能,像这个基本上现在都啊是必不可少的一个阶段了,是吧?包括这里面是吧?我们的循环神经网络呀是吧?

我们的一个卷积神经网络呀啊等等啊,都是啊相对来说啊。是必须要学的啊,深入学习的一个原理部分的一个内容是吧?然后实战这一块呢呃。有一个推荐是吧?有一个推荐,然后怎么去从零去搭建一个电影的推荐网站啊。

这个可能这个项目的一个周期就相对来说比较长一些了,是吧?那么啊你想象一下,我们搭建一个电影的网站,那么这里面可能还涉及到一些前后端的一些内容,是吧?比如说呃我们前端页面的一个显示啊。

后端数据之间的一个啊传输啊,那么然后嵌入我们机器学习跟深度学习的一个算法来达到什么呢?哎,我们比如说做一些个性化的推荐啊,人启动啊啊等等等等啊,这样的一个内容是吧?那么这里面啊它的一个点。

比如说我们要首先啊要确定什么呢?产品呀数据啊,我们整个需要用到的这个技术框架。如果说你的数据量比较大的话啊,可能我们还需要用到我们的一个啊服务器啊,或者说我们还需要去搭建我们的一个集群环境啊等等啊。

然后在这里面我们会讲解常见的啊关于推荐方向的一些算法的一个讲解啊,然后这里面可能涉及到一些核心啊,包括什么怎么去召回,怎么去排序啊,这样的一个内容啊,然后啊最终呢哎我们更深层次的一个优化啊。

可以把我们深度学习啊。给他啊应用进去啊应用进去。OK啊,这是对于我们这样的一个呃面向我们大学生的这样的1个AI成长计划课程啊的一个呃基本的一个介绍啊基本的一个介绍。呃。是。呃。

如果说呃大家在学习完以后呢,比如说你想要有一个更大的一个提升啊,其实我们这里面有很多很多的这样的一个啊课程,是吧?提升,比如说啊可以先来一个啊如果说你觉得你能力O的话,你可以直接上就业班啊。

可以直接上就业班。那么呃就业班这一块呢可能呃它的等级跟难度是比较高的,我们需要笔试跟面试啊,才能够进入这样的一个就业班来进行学习啊学习啊,而且啊它的就业是有保障的啊是有保障。

啊,但是前期呢啊我们可以比如说先通过什么呢?这个啊基本的我们的成长计划啊来学习一波啊,学习一波了以后呢啊如果说你觉得呃还不够呃这样的一个啊特别的比如说达到就业的这样的一个程度,是吧?

你可以啊往这个集训营啊,或者是就业班啊来进行样靠拢啊。

W。是。🎼OK啊,这是我们的呃第四部分啊,大家啊去啊7月里面啊来看一下我们现在的一个内容。除了我们原有的课程以外,那么还有什么呢?还有比如说我们的题库啊,我们的题库是非常强大啊,题库非常强大。

那么这里面你点开我们的一个面试题库啊,这里面一共有4000多道题,那比如说我们机器学习就有330多道那这些都是来自于大厂的啊,这样的一个面试啊或者是笔试,是吧?我们把它啊进行汇总再录是吧?

然后进我们这样的一个题库这里面是吧?在这里面我们可以点击练习是吧?那么点击练习了以后,在这里面啊,其实就有相对应的有选择题啊,有简答题啊,在这里面你写完了以后选择完了以后是吧?

可以呢点击我们的提交试卷啊,会有一个相对应的一个得分啊,相对的得分。而且呢比如说你答错了啊,也同样会提供相对。

定的一个解析啊,相当于呢错误的一个解析,提供一个正确的答案。

那么除了这个题库以外,还有我们的在线编程这一块啊,在线编程这一块。那么在线编程啊可能更多的啊类似于什么我们的lining code是吧?这里面的一些逻辑的一些问题啊,罗辑的一些问题。然后还有什么竞赛。

那么竞赛这一块呢啊,这是呃我们自有平台的一些竞赛啊,比如说这里面还是非常活跃的啊,比如说这个呃。手写体识别是吧?100多支队伍来参加是吧?包括这个我们的一个呃文本情感的一个分类比赛是吧?啊。

有80多支队伍参加啊等等啊,大家呢有兴趣呢可以啊也可以参与到啊我们这样的一个竞赛里面来啊。OK啊,还有比如说啊这里面呃还有一些比如说社区啊啊可以大家可以在这里面去看一些。比如说历来一些啊学长呀、学姐啊。

他们的一个学习呀、工作呀的一个经验啊,包括在这里面可以看到大家的一个啊比如说有的一些问题啊,可以在这里面也可以来进行我们的一个啊查看。呃,OK啊,那么呃那我们今天的分享呢啊就。讲完了啊。

那么啊看一下大家有没有什么样的一个问题。啊。呃,在哪能找到这个啊?哎,不太清楚你要找到是啥。就是说现在哈我们能看到的这样的一个机器学习的一个发展啊,或者是空间啊,其实比我们看到的这样的一个风险呢呃。

或者是泡沫啊,其实更大啊。所以说呃我相信在未来的这个行业啊,我们找准自己的一个定位啊,把自己啊想要做的一个事情呢,我们把它给做好啊。

所以说呢我们还是呃非常期待啊在人工智能呃还在持续发展的这样的一个时代啊,然后呢我们一起努力。然后呢呃希望能够做的更好啊。思维导图那个是吧?思维导图那个我发一个链接给你们。哎。Okay。

🤧OK啊大家可以呃。仔细的去呃看一下我们这个思维导图啊,这个思维导图做的还是啊非常详细啊还是非常详细的。🤧嗯。呃,数据结构没有看过,可以边学算法,看数据形,这个是可以的啊可以的。其实在学习的时候呢。

其实啊我建议哈就是说你不需要什么东西都需要去搞清楚,搞明白啊,这个你的时间跟精力呢也是不允许的啊。那么呃其实我建议哈就是说先挑重点部分啊,先把重点的部分呢呃先给它掌握了以后。

然后后面比如说我们呃主线串起来了以后,我们再往这个主线里面再去呃,比如说填充一些支线啊,做一些内容的补充。Yeah。OK小伙伴们有问题可以在右侧的这样的一个聊天对话框啊来进行这样的一个提问啊。

然后啊我会为大家进行这样的一个解答。OK如果同学们没有问题啊,那么我们今天的这样的一个公开课啊,就到这里就结束了啊,非常感谢各位小伙伴的一个参与啊,再见。

人工智能—Python AI公开课(七月在线出品) - P2:三节课上手Python第二节 - 七月在线-julyedu - BV17W411K7G8

呃,能听到了是吧?我看到了呃新叶荣是吧,都是老同学了。我记得上一次好像就有你是吧?😊,嗯,小五啊ZZZ飞得更高哈,大家好,那么咱们就哎小五也打出来了,非常好啊。那么呃咱们现在呢就提前开始吧。

嗯开始一分钟,然后开始咱们今天的公开课。

今天是咱们7月在线AI公开课三节课上手python的第二节啊,那么上周的时候呢,大家是在周末的时间啊牺牲了周末的时间。然后咱们在上午的10点到11点钟的时候,给大家讲了些什么东西呢?

我给大家来进行一个复习哈,那么首先上节课呢咱们讲了4个很重要的一个点,啊,第一个点呢就是python的一个基础啊,python的一个基础。python的什么基础呢?就是一些python的啊。

我这地方可能写错了啊,应该是python的一个简介哈简介。那么python它的一些特点,它的一些相应的这些东西啊都有。那么给大家做了一个介绍介绍。第二个呢是关于underconda这个环境。

这个环境非常的重要。包括呃本周我都看到很多同学都在问老师,我这个环境怎么装啊,这个出现了各种各样的问题,哎,都是在这一点上,对吧?那么这是一个门槛,这是一个硬件呃这是一个咱们环境的门槛,对吧?

装完了这个under康以后呢?其实。

我上周已经已经把这个东西都给大家是吧?好,那么装完了undercon以后呢,我们来开始啊去使用notebook。大家看一看,今天我们的这个就不再是PPT了,对吧?

还记得上周我们啊上课的时候还是1个PPT的形式哈,还是1个PPT的形式啊,有人在的啊,有人在,大家有问题可以随时在咱们的留留言板上去留言。那么呃有后来同学再说一下。

就是这今天的课程呢呃计划差不多是30到40分钟,不会讲太久,毕竟是周五的晚上,大家很也很累了哈。

啊,也很累了啊,没有小伙子那么调皮啊。那我们继续啊。那么我们看看第呃第三个我们讲notebooknotebook呢其实它是一个呃我们可以像一个网页编辑器一样去编辑pyython的。大家看到这个地方呢。

就是说今天我给大家讲课的,这个就已经不再适用PPT了,而且是用notebook。那么是个notebook,它不光是可以写python代码,它也可以去写一些什么呀。

他用markdown格式,大家看到这个地方没有啊?markdown格式啊,markdown什么意思啊?一种简化的标记语言啊,简化的标记语言,它可以去把我们的唉这个文本用一些特殊的格式显示非常好看啊。

那么我们可以把它作为一个教案去使用啊,教材去使用,我们也可以在这个markdown上去用啊,这都是在note book下面的。那么呃包括怎么启动note book怎么去运行pyython啊。

那么这是我们啊做了一天实验。

啊,我又看到了新同学哈啊新同学上周的时候就跟他做了很多的交流,看到你们很真的很开心。😊。

嗯。我们继续来看啊,那么第三点的notebook的启动。那么启动的时候呢,我当时我的启动方式呢还是这样来启动的。就是说我使用了jupy的notebook是吧?那么有些同学可能不太方便。

那么你就在哪儿找啊,在underconda里面的这个地方,大家看到了没有?

啊,这个地方呃能看到哈,就是你点击这个也是一样可以的啊,没有问题啊,没有问题一样的,都是启动的啊,都是启动的。好,notebook启动了以后,notebook怎么去用呢?

notebook里面的cell我大致的跟大家去说过啊,包括我们新建一个c。你比如说我想在这个企业在线之前啊,AI工作上面,我建一个,我们就按一个A啊,就出来了一个cel,这个cell是什么格式呢?

是code格式,什么叫code,咱写python代码,就是code格式啊,就是一个code格式是吧?好,那么我们继续看我们继续看啊。

我们的这个啊我们的这个呃我们的这个notebook,我们把它删掉,看怎么删啊?两下D就可以删掉。那么这些的帮助代码,我上周我已经跟大家去聊过哈,都在这个地方啊,按一下什么呢?

ESC之后按一下H我们所有的keyboard sur全都出来了,是吧?我们自己可以去对照的去使用这个不着急,你用多了以后,自然就会熟悉啊。好,那么讲完了这个notebook启动以后呢。

我们也讲了python的基础操作。呃,因为那天的时间呃也是比较紧啊。python的基础操作里面我也给大家大致的去讲了python的一些基础的类型,包括了我们的字符型数字型。呃。

还有那呃我们的字符串型数字型列表型元组字字典。

啊,集合也都跟大家都讲过是吧?但是呃真正要去练习的话,还是要大家花很多的时间去做的啊。那么不可能包括今天也是一样,我不可能在40分钟的时间里面,我讲完你就懂,不可能还是要大家去练习。好。

那么我们大致的复习完了我们上周课的啊上周的这个课程以后呢,我们来开始我们今天的公开课的一个目标。本节课呢是咱们三节课中的第二节。那么本节课的目标呢是一个承前启后啊,承前启后。什么叫承前呢?

就是说我们要会用到我们上周课里面所讲到的几乎的所有的知识啊,所有的知识。然后呢我们也会干嘛呀?稍等一下啊,我们也会干嘛。

我们也会去对我们这节课也会学习新的来让我们下一节课的这个n排和padas的数据分析这一块,大家能够会去使用啊,能够会去使用。好,那么这节课呢,一个目标呢是第一个大目标。我这里特意给大家分了两大块啊。

哪两大块呢?第一大块是了解函数,就是关于函数的是这样一块,中间画了一个分割线是吧?关于面向对象的是下面这一块是吧?哎,那么了解函数的意义,掌握函数的创建及使用。第二个呢是了解函数中的参数的一些使用。

包括了不定常参数。那么这是什么意思呢?一会儿我带大家一块去做做啊代码,大家就能明白啊。那么呃第二个呢大的目标呢是理解面向对象的基本思想,理解类和对象的关系,了解类的结构和成员。然后呢我们的目标是什么呢?

你能根据我给你的需求创建一些包含相应成员的类。也就是说你真正具有写。类代码的能力啊类代码的能力哈啊代码的能力。好,那么我们来开始我们今天的这个课程哈,这个目标已经给大家说的很清楚了。今天没有太多。

就两样,一个是函数,一个是面向对象啊,你能把这两样能弄懂。ok今天你又有收获了,对吗?好,那么我们继续看啊,那么我们来看看函数的意义啊,什么是函数呢?函数是本质上是个什么东西呢?

其实呢我们可以从这两点去理解函数啊。第一个啊我们想一想。函数呢其实它在我们的生活中也是非常常见的,它其实是一种抽象,一种抽象。什么叫抽象?就是说哎我们去对我们的输入进行变换以后去输出这句话是什么意思呢?

假设我现在去创建一个叫做加法的函数。比如说我现在给他的两个数字,一个是一,第二个也是一,那么它一定会输出给我一个什么呀?一个2,对吗?是不是我对它进行了一个。是不是我给了他一些东西?然后呢。

它经过了一些处理,变成了我想要的东西,对吗?对吧?那么呃那如果说我要说做一些减法加法或者乘法除法,这些都可以。比如说我想给一个字符串给你,然后呢,你把这个字符串里所有的A的字母,你给我换成什么呢?

换成B可不可以可以,那么怎么去做呢?我们就用函数去做函数去做。那么我们为什么用函数去做呢?就是因为函数本身它是一种抽象,针对什么的呢?我们之前上节课我在大家用notebook去写过一些东西啊。

你比如说我们就写一些我们简单的什么呀,我们就写一些一行代码,写一行一行一行写。然后呢,逐行它依次去运行,对吗?哎,那那么这种的运行方式呢,我们啊我们通常呢都管它叫做什么呀?叫做过程化。什么叫过程化。

就像我们啊去做一些代做的,哎,看不见是吗?

呃,有同学看不见,大家能看见吗?我看有同学说看不见呃,因为我一直在notebook上,应该是在note book上的东西。我把特意调的很大哈特意调的很大。那么呃。

啥也看不见。哎,假如你能看见吗?呃,能看见哈啊,好好好,那不好意思啊,可能是各同学个别同学的问题,我们继续啊。好,那么我们再来看啊,为我们的一个函数啊,对于输入进进行一些变换或输出。

那么刚才我大致说了一下我们的加法减法乘法除法,那么一会儿我们就来做一下,你就明白哈,那么这些都是非常简单的,那么字符串,那么和一些复杂的和一些复杂的函数,包括我们一会儿要做的这个函数。

它都是这样的一种特性,就什么呢?就是说它自身是能够完成一些功能的,对吧?它完成这些功能,首先是吧?它需要我们去输入一些东西,或者是我们根本不需要去输入东西,它也能返回给我东西,明白我的意思吗?

即便是我们什么都不给它,它也能返回给一些东西,这样才有用。如果它什么东西都不返回,就意着什么?它没有用处,对吗?哎,它的一些基本的它最根本的东西就没有了,对吧?

我们再来看第二个叫过程化。刚才也说了,就是我们写一行代码。从第一行第二行第三行第四行第五行运行完了以后,假设我这我这行代码有100行,对吧?有100行,我从第一行运行到100行以后就怎么样了,结束了。

就像我们的健身清单一样,对吧?哎,我早上起来啊,吃什么,中午吃什么,晚上吃什么,周而复始。我们就是说哎运行完了它就结束了。那么什么是结构化呢?结构化呢?其实就是对我们的过程化进行那种封装啊。

这种话什么意思呢?就是说哎我们可以把我们写的代码封装到一个叫做函数的里面,也就是我们今天要讲的这个东西啊,它就把它进行了一个打包,那么打包以后会有什么优点呢?大家想一想,打包以后会有什么优点?

就是说我以后每次再用它的时候,我还需要去再去把那些。能够实能够实现这些功能的代码,再去实现一遍吗?再去写一下吗?不需要了,对吗?不需要了。那么这个时候呢。

我们只需要去调用函数名和传入一些参数就可以来实现了。那么这样的话,我们的代码量会极大的减少整个的啊这个代这个是工程上面也会有极大的这种效率的提升啊,极大效率的提升。那么这是函数的意义啊。

那么如果只是讲这些东西呢,大家可能不太能够听的呃。

如果你是呃刚刚净净哈,可能听的不是很明白,但没关系,我们一会儿来去讲,我们一会来去做一个实验哈。那么好,那么现在呢我们来去创建什么呢?创建呃函数的创建和结构。那么我们讲了这么多基础概念。

我们首先来去讲一讲我们函数的一个创建啊,什么是函数的创建呢?我们来看一下啊,在python里面有一个关键字叫做DEF。也就是deeffinine英文啊。

deeffin英文的浅写啊DEF它是就是定义函数的关键字。这个关键字还记得我们的上呃上节说的吗?哎,你不能去干嘛呀?你不能把这个关键字干什么去当做标示符。你比如说DEF等于一一定报错,明白我意思吗?

你看看到这儿了没有?哎,我这个好像就是一直是这个这个状态,这个状态这个状态是吧?哎,一直状这个状态。这今天呃我记得我记得这个咱们同学里面也会有很多同学遇到了这个星号,我再说一下。

遇到星号可能是你代码写的真的是可能是有问题啊,有问题。那么你重启一下可ner或者重启一下你的这个呃重新加载一下咱们的这个notebook就会好很多啊,就会好。好,那么我们再来看我们的DEF稍等一下啊。

调整一下我的这个函数啊。正在去重启啊正在去重启。嗯,唉本地稍微有点慢,稍等一下啊。

呃,我本地可能有点慢,我先看一下呃,我讲到这儿有什么问题没有?同学们有问题的话就在框框里面,我们最好是有一个互动,最好是有一个互动啊,最好是一个互动。

好,我们来看一下。

呃,这个时候可能就会出现之前同学说的这个notebook死掉的问题,怎么办啊?不要去想太多,知道吗?千万不要想太多,直接重启呗。

你的网络是正常的啊,稍等一下啊,这个notebook重启的比较慢,大家稍等一下,在大家电脑上应该也是一样啊。

嗯,这个时候我们的就没有了啊就没有了。

就。

嗯。嗯。😊,稍等一下啊。咦,那么如果notebook启动不下来的话,可能是有点点问题啊。那我们就直接用命令行跟大家去讲一样的啊一样的。

呃,我们来继续唉行,这是我的那个教材来到的薄合里呢,稍等一下啊。呃,我们来开我们来开始讲我们的这个函数啊。

唉,今天这人没突破怎么回事啊?哎,启动了。

哎,好慢啊,今天行,启动。好,那么我们把它打开啊。好哎,终于启动下来,就我电脑可能太慢了,能太慢。好,我们继续啊。好,那么我们来看一看我们的这个函数啊。那么函数我们首先定义函数。

我们刚才说了怎么定义函数啊,DEF函数是吧?我们使用DEF函数,后面跟着一个叫函数的名字,比如说我们要定义一个A叫my叫什么?这个是什么意思?函数名是吧?函数名这后边这个括号是一定要加的,一定要加的。

知道吗?这是代表着什么呀?代表这是一个函数它接受参数啊,接受参数,还记得我说呃在昨天的不是在上上节课的这个括号呃,这个冒号吗?它是代表什么呀?分割我们的函数头和函数体的。

还记得我们用回车之后会发生什么吗?发生这个对吧?哎,它的一个自动缩进是不是四个空格是python的标准是吧?python标准的缩进4个空格啊。好,那么。我们现在给他传递进来两个参数叫哎我这我sorry。

我这个不是这个菲布纳奇的练习啊,一会儿我就给大大家做菲布纳奇的练习啊,大家就明白了。嗯。好,那么我们来看啊,那么这个时候呢我们来去做什么呢?我们叫做。return一个记住,请记住这个关键词。

return returnturn大家都知道英文的什么意思,返回是吧?返回一个A,加上一个B。好,那么这个函数就已经怎么样了,定义成功了。那么这个时候我们就可以去使用这个最最最最简单的函数啊。

myA的几啊,四和7,我们来看看是什么结果啊,我们来看看什么结果。大家看到这个地方有一个叫做out out叫做11,大家看到了吗?啊叫做11就代表什么呀?哎,四和7相加。你看第一个参数是4对吗?

第二个参数是7四和7相加,我返回到11是吗?哎,是不是很容易理解啊,很容易理解呃,nopiter的使用不需要联网同学不需要联网啊。啊,你在哪怕你电脑里没有网都可以啊,我这个刚才是我的电脑太慢啊。

电脑太慢好,那么我们再来看这个地方啊,叫做啊my四和7是吧?好,那么现在呢我要去做,我们看看叫做参数啊,给大家讲什么叫参数,参数就是这个叫做行参,就是说我这个函数,我接受几个参数,明白我意思吗?

大家看一看,如果我给它一个参数一个参数啊。

我看看行不行啊,我看看能不能运行,大家看看是不是报错了呀,他报错的时候说什么呀?叫做哎,我缺少了一个哎,叫做什么呢?叫做定位的一个参数。B,哪个是B啊,就这个东西就是因为你说了,你在定义的时候说。

哎我接受两个参数啊,但是你在调用的时候,你只给人家一个,人家肯定要会怎么样报错。那好,我再给他两个正常了,对吧?那我给他三个行不行?你看他也会报错,什么意思啊?他说my eight的这个函数怎么样啊。

只有两个位置参数。但是呢三个给人家了,你给人家直接收两个,你给人家三个,他就报错,他就不干活,对不对?你。再返回两个哎,就对了是吧?12。对吧。那么这个参数四和八叫做时参,A和B叫做型参。啊。

形材啊形材。好,那么我们再来看啊,叫做函数体。什么叫函数体啊?函数题啊,其实就是我们可以这样去写啊,C等于A加上B。然后我们return C,那么这个就是一个函数题。

就是包含了return和包含了我们的这个哎我们中间要进行的一些过程的一些东西。你比如说我我可不可以,我我可以这样去做啊。A的哎我的多少多少次方,比如说我四的3次方是多少,我们来看看这个结果。

64你去算肯定是这个哎,4乘4乘4对吧?64那么我们来可以看这样可不可以四取余数。是不是一啊?你看4除以3,最后是不是等于商是一还余余了一个亿,是不是?哎,那么这些东西完全是不是我们自己控制的呀?

那么这种叫做函数体啊,叫做函数体啊,叫做函数体。那么函数体就是真正干活的东西啊,那么什么叫做返回呢?返回就代表什么意思?就是说哎我在这里边干好活了,你让我算啊,你让我算这个A和B的这个余数是多少。

我算出来了。那么你这个结果哎你总得告诉那个调用的人,对吧?我就return一个C,我就用return这种东西去干什么呀?去把我的这个计算的结果去返回啊,去返回。

那么这个return和print我跟同学们去说一下,它有一个区别啊。比如说我现在同时return和print都是C,我们看看什么结果。因为这个地方大家有的时候可能会有点小小晕啊,我们试一下。

我们看到了我们在alt里边是一,然后在一上面也有一个一,这两个一到底哪个一是return,哪个一是print呀。哎,我来给大家去画一个这个图,你就明白了啊。

al是只能有一个结果,明白我意思吗?哎,是红的,看到了吗?哎,是红的。但是这个C呢但是这个print呢可以有好多个结果,看到这个粉的嘛,粉红色的是吧?哎,我们来去做一下啊,我们再print一个什么呢?

A和B,这是不是参数是吧?哎,是不是参数啊,哎传进来的这个参数啊。好,我们再去看看结果啊,大家看看是不是我们的print可以有什么呀?两行,但是alt始终只有一个是吧?

呃,这out的对应的是return啊,我们这个对应关系要一定要搞清楚啊,搞清楚哈。那么这就是我们最最最最简单的一个函数了啊,最最最简单的一个函数。那么呃那么同学说老师我就不返回行不行?啊。

你当然可以不返回啊,没人会没人会说啊,你你说我就不返回。行,但是你即便是不写return。我们来看一看,我们用一个叫做type的来看一看啊,我们的my eight,我的写了一个41个3。

我们来看看它返回的这个是一个什么呀?叫做non type。什么意思啊?就代表着你即使不返回,它也会返回一个对象,是什么对象叫做n对象啊,我在在这里写一下啊,叫做n对象啊。你说老师我真的没返回啊。

对你即便是没返回没写return,它也会返回一个叫做NONE记住这个第一N要大写哎NONE的一个对象啊NNE的一个对象。那么它的类型是什么类型啊?我们用type去看叫nontype啊啊。

这有它的一个返回和无返回啊。好,那么我们继续啊我们继续啊。好,那么这就是最最最最简单的一个函数。那么如果之前你有一些开发有过开发经验,那么这些都可以说非常的easy啊,非常的easy啊。

我看同学有没有什么问题啊。呃,刚看上视频,这个python是三的吗?是的同学啊,我们可以看到这个地方,你要确定你的版本,可以看到啊这个右上角这或者是什么呢?

你去点击一下newnew notebookbook里边,这个地方也可以有版本啊,这个地方也可以有版本啊。那么这个地方也有都可以看得到啊,那么这个呃这些环境配置,咱们第一节课就讲过的啊。

第一节课讲过的康达那个公开课已经在咱们切在线的这个官网上了,你也可以去看一下啊,看一下,包括链接都已经发上去,可以很快的搞定啊。那么好,那么函数的像高级部分啊,我今天呃我们的时间所限不再不再去讲。

比如说什么是偏函数,什么是译名函数,什么是高阶函数,什么是作用域,什么是B包,什么是装饰器。那么这些属于它的一些高级的部分不去讲啊,不去讲。但是呢如果你啊研究。

很有兴趣,我可以去你可以去在在这个地方,我来用网址给您打一下啊。9纳1点com里面的社区啊,社区里面的python啊,里面这个地方呢是我这个班里面的同学提交的作业啊,提交的作业。

那么你可以呢再去呃我们的呃函数这个应该是在第二呃第三课你去找所有第三课的作业。呃,第三课作业里面就有你看如何去定义函数接受三个数字的输入,这些东西都是呃在我的这个课程里面,我给同学留的作业。

那么你呢也可以去干什么呀?哎,这个是前面上面是这个我的要求,下面是同学交完作业,人家给我的这个代码,我也会在底下给同学去批注啊。那么呃呃你可以就是参照我们同学的这些东西去啊反复的去练习啊。

反复的去练习哈。那么呃我先不说这个了,我们先继续回到我们的这个嗯。回到我们的今天的这个课程里啊,回到我们今天课程里。好,那么我们来讲一讲菲布纳奇的一个实现啊。什么叫菲布纳奇数列?

菲沃纳奇数列其实就是一个特别简单,听说过是吧?我相信同学们可能都听说过菲布纳奇数列啊,你比如说我现在去有1个01哎,123。一个。😊,8。13。21大家看到我的这个数列有什么特点了没有?

我这是刚刚拿手工打的特有什么特点没有?

有了特点我们就可以去做啊。啊,好,回头看一下。对你可以回头看一下哈。那么我们来看看有什么特点。我们可以看到任何一个位置上的啊,我们可以说任何一个位置上的,除了前三个啊,除了前三呃,除了前两个啊。

除了前两个任何一个位置上的数字都等于前两个数字的什么呀?

哎,前两个数字的和。哎,你比如说我这个三是等于一和2加,我这个十3是等于5和8加,我这21是等于8和13去加,对吗?哎,那么这种叫叫叫做非布纳奇数列是吧?那么好。

那么我们来去实现一下我们的呃非布纳奇数列,我们就用函数的形式来实现啊?我们用函数我们就是什么呢?为什么要用函数去实现我们的非布纳计数列呢?其实呢就是因为我们的非布纳奇数列就可以干嘛呀?稍等一下啊。

我们可以用函数来。DF我们的FIB这个地方呢。我们可以定1个NUM还记得这是什么呢?一个型参是吧?一个型参,我们在形参里面就可以定义我们的这个菲莫纳奇数列的长度是吧?长度。首先呢我们先定义一个L一等于。

零和一这是我们的初始,对吧?你看刚才我们的非布产计数列是不是就初始成这个东西,对吗?哎,初始成这个东西啊。好,那么我们继续再去看什么呀?我们来看我们的这个。啊,LL1是吧?好。

那么我们来去看我们的循环多少次是吧?我们来去看啊,还记得我们上节课讲的循环吗?for I in range是吧?我们的NUM对吗?哎,我们让它循环多少次是吧?好,那么我们再来去看L一什么呀?点end。

啊,这个append是个什么东西呢?就是说因为我上节课并没有跟同学讲过,哎,这是列表里的一个什么呀一个方法,或者说我们的列表对象的一个方法,或者说一个函数。

它是将我们一个东西把我们的一个东西塞到我们这个列表的后边,就相当于我现在。我现在要去干嘛呀?我把这两个的和加到我的这个后边,是不是还是一呀?但是我再循环的时候,再把最后两个和加起来,是不是就是二了。

同学们对吗?哎,没关系,我们来去做一下就知道了哈。好,怎么去实现呢?我们嗯在第一节课讲过我们的有一个我给大家留的作业,还记得吗?回文是吧?什么是回文还记得吗?哎,回文的访问怎么访问。

我们我们使用我们的切片访问,对吧?切片访问怎么访问的呀?切片访问是我们的。或者说我们索引访问也可以哈,索引访问也可以啊,LE的。倒数第二个元素到最后一个元素是吧?哎,LELLE这个列表的什么呀?哎。

负的哎,我们来去看看啊。好,现在呢。最后呢我们return1个LE。好,我们现在去调用一下,我们看看会不会报错啊。稍点。你们来看看出现什么了。哎,我们看看唉,是怎么写的成这样了呀,有问题了是吗?

是不是有问题了呀?我们看看哪里出错了啊,哪里出错了啊。好,我们把我们的这个地方先去干什嘛呀?我们先不return啊,我们先不re,我们先把它注释掉,还记得怎么注释吗?这样注释是吧?好。

我们先去print一下我们的L一的。-2。对吧L一的-2是吧?好,那么我们为什么刚才是那样呢?是因为我没有对它进行一个sum,是不是?哎,我得把sum是一个也是一个函数啊,之前我们个同学说过。

但是同学自己应该有这种学习的能力,是吧?sup什么呢?我把这个东西给它进行了一个相加,变成了一个三是吧,变成了一个3是吧?好,那么我们现在再去试一下啊,return我LE。大家看到了什么没有。

是不是我们的变成了刚才我手写的东西了。哎,你算一算啊,零和一相加是不是等于1一和1相加等于22和3相加等于5和83。那么为什么是我写的是5,为什么它是这个呢?是因为我们的原来的长度就是这个是吧?

那您说如果要是说。如果要是说我的这个可以再短一些呢。我真正说我输入几个,它最终就出来几个,我们就可以把这个长度给它减减去它啊,减去这个长度,减去这个长度。比如说在这个地方。

我们就可以在这个地方我们来去输入一个8。我们来看最终输入出来的。01234567啊,我们选1啊,sorry啊。哎,减一就可以了,是8个是8个。好,那么我们再来输入一个什么呀?40可不可以可以。看。

非常之巨大是吧?非常之巨大啊,是非常之灵活,它完全是可以干嘛?根据我们输入的这个参数,对吗?它返回我们所需要的一个结果。返回需要的一个结果啊。

那么这就是我们实现用一个定义在pyython里用定义了一个函数,叫Ffib的一个函数,它接收一个参数啊,它内部去实现是不是很简单?同学们啊,好,那么我就留一个小作业啊,就是说给大家在函数上的一个小作业。

就是创建一个函数,接收一个大于零的数字,要求返回所有该于小于这个数字的素数。什么叫素数啊?同学们哎,就是只能被。一呃只能被它自己整除的这个数叫做素数。你比如说77除以2能整除吗?

除以3除以5除以6都不能整除,13也是是吧,13也是19是吧,这都是素数。你比如说现在我给你一个。93,那么我就请你从什么呢?啊,你从从一开始,比如说你从一开始找啊,一2三啊,5是吧?七啊。

这些东西你去找啊,你把所有小于这个哎93的这些素数都找出来。用刚才我们定义函数的形式来找到啊。好,我看看同学们有没有问题啊。

啊,对对对,一样的一样的,前两竖和哈,前两竖的一个和哈,前两竖的一个和。好,那么我们来去看呃呃其实这个函数只是给大家讲的一个非常非常进阶的一个呃非常非常一个呃基础入门的一个东西啊。

就是说怎么去定义它的参数,它的函数题,它有没有返回如何去调用啊,怎么去调用,这就等于它的调用啊,就就等于它的调用啊。好,那么我们函数的部分就讲到这儿。因为我们的公开课毕竟时间的限制哈。好。

那么我们来开始我们第二个部分啊。好,那么这个地方呢叫做不定常参数,我们同会大致说一下,大致说一下,那么还记得我们刚才说的这个。

我们还定义了这个DFM。A的嘛对吧?哎,如果这个时候呢,我现在同学说老师我想输入一个三个的,5个的、8个的,两个的,我是不是得写好多个,不用啊,不用啊,这样就可以啊,这样就可以。我们return一个。

我们直接去写一个特别简单的特别简单的一个就可以了。好,那么现在呢我们来调用一个myA啊。357。我们来看看是不是出现了失误是吧?好,那么同学说老师说我再输入多一点。我给他输入多多多多多多啊。

这这个地方是不错的啊。比较多了都好,这么多行不行?行,没问题,这样你愿意输多少,输多少啊,你愿意输多少输多少,你愿意输一个行不行?行,没问题。啊,你愿意不输行不行?我们来看看行不行。也是一样,为什么?

因为这个时候啊,这就是关于我们的这个不定常参数啊,不定长的参数。那么这个具体的详情的部分呢,我建议你可以参考这个作业。这个作业在我们的这个我们同学交的这个作业里面,给同学留的啊,可以接收位置参数啊。

不临常的位置参数,不临常的关键词参数啊啊,那么可以呃就是我推荐你去那儿去看一看啊,看一看。好,那么呃讲完了我们的这个函数以后呢,我们来开始进行我们的呃这节课的第二个目标,叫做理解面向对象的基本思想啊。

那么呃函数我再说一下函数啊,你必须要回去做,你必须自己去做啊,动手才行啊。而且我们今天讲的很很基础,很基础。你要想了解更多的,你就看我刚才留的那些作业,它包括了一名的高阶的综域的B包的装饰企业全有啊。

你可以看一下那个作业啊,有问题你可以在群里面艾特我哈。好,那么我们就来看第二个叫做我们的面向对象啊,面向对象啊,面向对象的基本思想,理解类对象的关系,了解类的结构和成员,根据需求。

创建包含新应类成员的这个类哈。好,那么我们继续看啊。那么在开始之前呢,我们来先讲一讲我们的python里面的叫做一切接对象。同学说老师什么叫一切接对象,就是说如果你就linux,你肯定听说过一句话。

在linux里是一切接什么,一切接文件是吧?你比如说你的配置,你的服务。这些全是以文件形式,包括你的磁盘驱动力的内存,全都是以文件形式性存在的。那么在python里呢,其实全部是以对象形式来出现。

那么这个对象什么概念呢?我们来去看一下啊。还记得刚才我创建了那个FIB函数嘛,对吧?我们来去看看啊。我直接不加括号去输入它。其实这个时候呢,它就是一个什么呀?FIB啊FIB我们来它就是一个函数对象。

我们来去type一下它啊,type一下它啊。大家看到了是不是一个叫做function哎function好,那么我们再来去看一看我们的呃。我们来t一个我们的这个行,我们刚刚建的一个什么呢。

我们来去对我们这样吧。我们给它调用一个结果是吧?它是一个list,哎呃同学说老师这是怎么回事儿?哎,其实是这样的啊,当你去。不加调用的时候,它是一个函数对象。当你去这样加的,它是一个返回的一个结果。

它我请问刚才我们做的,它返回的这个结果是什么呀?我们调用一下啊,我们来看一下就知道了。它返回的结果是一个。什么。哎一个列表,所以啊所以啊。它它type就是一个list,明白了吗?哎,那么同学说老师。

我这样。这样写一下啊。这是一个set。什么在的集合是吧?集合,那说学老师,我这样去写行不行?哎,这就是一个字典啊,这就是一个字典。哎,那么我们最常用的这些东西都有。那么袁说老师,那我的这个叫做。

这是一个什么叫猫就猫就是个什么东西啊?模块还记得我这一节课说的模块吗?唉,还记得我提前说的模块,唉,就是这些东西都是对象。你包括我们要讲的哎,我们的面向对象,它都是对象,python里一切绝对象啊。

那么我们除了可以用tap去看它的对象以外呢,我们还有什么呀?我们还有一个ID啊,ID什么叫ID啊,就是看我们这个对象的地址。你比如说我现在去创建了一个A等于一啊。IDB。

这是它的一个唯一的一个就跟身份证号似的,明白我的意思吗?就跟他身份证号似的。哎,我这个A所指向的这个数字整形,一它的身份证号是多少呢?是1381851296。明白我意思吗?哎。

那么同学有说我还想看它的内存,那么有个memmome view你可以自己去百度一下,我就不再多说了啊。那么我们再来看还有个DIRDR是个什么东西呢?我们学过那个dos或者是其他的都知道。

就是一个列呃列目录是吧?directy列目录啊,我们DR什么呢?比如说我们的MO呃DURLTIES这就是我们一直讲的内置电池的那个模块哈,我们来看一看哎,看到没有有这么多的东西啊。

其实这个这于我在这里看大家能清楚一些啊。

Yeah。

哎,这样看大家能够看出来啊,就是说我们刚才用了一些东西啊,你比如说我们的ID看到没有?就是在这个地方,就是在这个模块下面的。这也就是说如果将来我们去呃学习一个新比较新的库啊,比较新的苦。

比如说现在我要import一个什么呢?我们下节课要讲的n派是吧?哎,啊稍一点慢,大家稍微等一等啊。那比如说这个n派了啊,已经漏进来了是吧?好,那么现在这个n派底下有什么东西啊,我不知道怎么办啊。

你DAR一下,你看是不是n派里边的东西全都出来了,这么多东西是不是哎,这么多东西你别害怕啊别害怕,这种东西这都你不可能全用得到啊,用到哪学到哪就可以了啊,用到哪学到哪就可以了。好,我们继续啊,我们继续。

那么呃包括了type IDD啊,当然还有些其他的东西。那么你就在这个DR ins里边,你找一找它的内pyython内置电池非常的非常的棒啊,非常的棒啊,非常的棒,提供很多功能哈。

那么讲完了是一接接对象以后,我们来讲一讲面向对象OOP啊OOP基本概你面向过程和面向对象啊,面向刚才我们讲过面向过程是,我们把代码完全写进来以后,我们从头到尾去执行。那么再有了我们刚才函数以后呢。

我们是不是把我们的代码封装到函数里了。你比如说现在你比如说现在我我就说的是现在啊,那么我想生成一个非沫大计数列,请问我还需要再这样的去写吗?从头到尾11点点去生成嘛,再写个循环。

然后再比如说放I in多少呢?音。how high in range比如说我这个5是吧,或者是50,然后呢,我这个什么什么什么在写刚才一样的啊。毛马的。麻烦。

那么我可以直接这样去就能够得到我想要的非常快,是不是?哎,这种呢是不是就是一种封装,对吧?一种对于代码的一种封装和抽象,对吧?那么我们的面向对象呢,其实是在这个我们的对于函数对于我们代码封装的基础之上。

把我们的函数也封装进了我们的一个什么呢?一个叫做类的一个对象里啊,类的一个对象里啊。类的一个对象里啊。那么我们来看看它的一个核心思想啊,类是从近似的对象中抽象出来的类。这个地方如果你要是晕很正常。

第一次听晕很正常,那么我就说一说我们最简单的东西啊,就是什么呀?就是说我们。去菜市场。哎,去菜市场见到了很多卖的各种的青菜是吧?哎,我当说青菜的时候,请问你会想到什么?你会想到你会想到西红柿吗?啊。

这个不太会想到是吧?哎,你可能会想到小白菜呀那各种什么呃油麦菜呀,对吧?这种叶子的菜是吧?但是我当我说到哎我们可能会弄一些这种肉制品,肉类的时候,你可能会想到猪肉啊、羊排啊这些东西,对吗?

那么这个类呢其实就是一些从类似的对象里面抽象出来的一种概念啊,抽象,你比如说我说刚才说我们去菜市场看到,比如说我想买点肉类的食品是吧?哎,我们比较爱吃肉,那么你可能会买牛肉,可能会买牛排。

可能会买羊排牛肉是吧?哎,各种各样的啊猪肉是吧?哎肘子是吧?各种各样的,但是他们都是哪个类下面都是肉类些制品下面对吗?啊,好,那么啊这是一个近似的一些东西里面,咱们抽象出来的一个东西,抽象出来的一个类。

哎,好,那么我们再来看对象是什么东西。就是说我们先有了,哎,我们我们从这个类中去干什么呀?去实例化一个对象。这句话是怎么去理解的?其实就是呃用一个最好理解的方案方式呢。

就是说比如说我们现在干尬楼稍等一下,我看同学们有没有问题啊。

啊,看不到视频啊,看不到视频的话,我这边可能是正常的,要不然你调一下你自己的网络呢。呃,同学们应该反应应该还正常啊。如果没有的话,应该会提问哈。好,我继续啊。

就是说啊对象呢其实就是从我们类中实力画出来的啊,比如说刚才还是说那个例子啊,我们就来去讲,我现在有一张图纸,这个图纸是专门生产什么呀,生产桌子的。

一个给木工师傅生产桌子板凳的一张图纸,然后木工木工师傅就拿着我这张图纸呢,就可以叮叮当当开始生产出来很多很多的什么呀?桌子板凳,那么它是不是一个实实实实在在的东西啊?那么像我们的这个啊这种图纸。

或者是说我说的这种肉类食品是不是相对于来讲比较抽象,对吧?相对于相对于我们的具体的阳排,具体的桌子来讲是不是抽象的呀?但是我们的这个阳排桌子这些东西都是实实在在的东西。那么这两个呢那关系呢。

就如果你如果第一次接触可能会晕,但没有关系的啊,不用去纠结太多啊,不用去纠结太多。嗯,好,那么我们再来去看我们的这个稍等一下啊,瞧一下。嗯,稍等一下,我这边电脑有点乱。好,那么我们再来去看啊。

叫做啊面向对象的三大特性以及极他高性高级的这个部分啊。那么这个呢其实我嗯在今天这节课真的是没有太多时间跟大家去分享了啊。那么封装的来讲呢,我只能再讲到封装,什么是封装啊。

其实就是说把我们的数据和我们的方法,封装在一封装进了一个叫做类的一个东西。封装进的一个类的一个东西啊。那么一会儿呢我们会完成一个例子给大家去做,大家就明白了啊。那什么叫做继成和多肽。

那么如果你也想去了解更多,还是刚才我说的那个网址啊,应该是这是第四课了啊,可以说今天咱们的这个课是非常的紧的啊,非常的紧的。因为这节课呢通常是要花很长时间,我跟同学们去分享啊。

你包括这一节课我们课睡龙非常好的一个同学啊,非常好的一个同学,晚上做作业做到两点多,然后艾特我真的特别让人感动的一个同学啊,然后呢,比如说我他做的作业里面就是说哎你按照要求里面的。这个去创建这些东西啊。

去创建这些东西啊,你再来看我们的这个要求啊,稍等一下啊。好,那么就是他他的作业里面就会包含了像继承和多肽以及魔法函数私有成员这些东西了。但是我们今天可能真的是时间所限啊,没有了,我们把这个把这删掉。好。

那么我们今天呢只完成这样的一个东西,叫做完成一个学生类的设计啊啊,叫做什么呢?查看总学生人数啊,就是我现在要求你给创建一个学生类啊。就是说学全部学生的姓名啊,毕业分数的标准是1000分啊。

已经毕业了多少学员啊,实现考试的方法,成绩分数如果大于60,就是说我创建一个方法,我就是每次去考试是吧?哎,你如果考试成功了,我算你通过哎,分数纳入学生的总分,你看比如说我通过了。

那么你就得把我这个分数记记住啊,对不对?你如果不通过,你就不记住分数,那么我累计过了多少1000分,我就能怎么样毕业了,对吗?那么第三个叫查分,就是我看我这个学生是不是已经毕业。

或者是还差多少分才能够毕业。第四个呢是查询已经毕业的学生的数量功能。第四还有呢就是说实现查询所有的学生的数量和姓名的功。好,那么现在呢我就带大家从代码一步步的去往下做。那么最后也会留一个作业给大家啊。

留个作业给大家。好,那么首先呢呃类的创建呢其实是跟我们的函数很像,只不过它是用了一个叫做class的关键字啊,我们就要做student啊。也是一样啊也是一样。好,那么我们在这个地方呢叫做student。

total这是什么意思啊?这个种啊,我一会儿来再来再来告诉你这个地方是它的一个呃叫法叫什么啊?它是属于类成员啊,类成员。这个地方什么意思啊?我来跟同学说一下这个地方什么意思啊?

就是我们这个一共有多少个学生,我用我用了这个标识符去存储这个信息啊。比如说我们学学,比如说我们其实在线一共来了72个学生,77个学生,那么存在哪儿就存在这个里面啊,存在这个里面。好,那么我们再来去看。

sdent点什么呀?点list等于这个这是代表什么意思啊?就是说我学生都叫什么名字,一个一个一个一个的,我全都知道,明白我意思吗?哎,比如说叫张三逗号,李四逗号。哎,好,那么现在呢我们再来去写一个叫做。

这条有什么意思啊?就是我这个学生是否毕业了啊,是否毕业了。好,那么我们这地方再加上一个我们自己的。等于1000分,这是一个定义是吧?好,那么现在呢我们来开始定义它的一个叫做初始化函数啊。

这个self是什么呢?一会儿再来说啊。我们看到这个函数是不是很熟悉啊?DEF对吧?这个self先是说什么,我们先不管它啊,我们是不是里面有三个参数是吧?一个是姓名、年龄和gender。

是不是我们的性别啊哎性别哈,我们的这个。这三个啊这三个参数啊,这叫行参是吧?好,那么现在呢我们来去看啊,叫self点什么呀?name等于name。这啥意思啊?我怎么看晕了呀?老师。

我一会儿告诉你就明白了啊。啊,这叫做实力啊叫做实力啊叫做实力。那么我们再来去看啊。什么叫实力啊?就是说每个人的名字。请问是属于他自己的,还是属于所有人的,是不是属于他自己的,每个人的性别和年龄。

是不是都是每一个人自己。专用专专用专属的这么一些属性啊,大家想一想是不是你比如说我的名叫david,我今年多大多大,我是从哪来的?这些东西是不是跟每个人自身是紧密相关的?对不对?哎,这些东西信息也好。

方法也好啊。哎,信息也好,方法也好,sor sorry啊啊,信息也好,方法也好,都是跟我这个个人是紧密相关的啊,紧密相关的啊。我们再来看啊,叫做self点什么的。So。等于0啊,这代表什么呀?

我个人的分数默认是多少是0。刚才我说为什么要初始化,就像你新买了一个苹果的手机一样,或者说你从手机啊去新手机的一样,它要有一个初始化的过程啊,初始化的过程啊。好,那么我们再来去看叫做student。

第二。我们可以用这个这个这个是怎么出来的呢?你用这个table键就可以了啊,TAB键就出来了啊,它就会把你这所有东西都会列出来啊。加等于1。这句话什么意思啊?我我再来告诉你啊。pa断又看见了是吧?

那pa断又看见了啊。好,那么前面的这三个啊前面的这三个都是说我有一个新同学进来了,我把这个新同学给他设置自身的。但是这个新同学进来了以后,是不是我们所有的同学的数量加了一个呀。是不是这个新同学进来之后。

我们所有同学的姓名的这个列表要有往往里加一个呀。那么这个地方你就会明白哦,有些东西是公用的,有些东西是私有的啊,有些东西是公用的,是类类这个层面的,有些东西是对象这个层面的。好,那么我们再来去看啊。好。

因为时间时间关系,我一会儿就不把这个整个完整去实现了。我把代码最后发到呃咱们的群里,或者是咱们的这个啊就发到咱们群里吧。好,那么我只实现一个一个部分的一些功能啊,DFex啊。

我们去做self点 score。这是定义了一个什么呀?定义了一个self。大家看到只要带self的,看到了没有?这个是参数是self,这个是我们的类变量,我们的变量前面是self,对吧?

只要是deself的,全部都是对象级别的。我也就是说我个人级别明白我意思吗?我个人级别的唉,我个人级别的啊个人级别。好,我们来去看啊。哎。如果我的分数小于60,我会怎么样来return。sorry是吧。

我就写个sorry啊。呃时间关系也不写不写多了啊。else这个判断语句我应该跟大家去说过啊,大家应该自己去练习一下啊,否则的话就代表什么代表我大于60,大于60代表什么意思啊?代表着我的分数。

我自有自己的这个分数。嗯,加等于这个。就是说我之前是多少分啊,零分儿。对吧我入学的时候是零分。

武看同学没有问题啊嗯。上午看到self啊,我我刚才说过了,self就只要带self就是个人对象啊,就是呃对象级别的对象层面的啊。好,上午看到有一个人说self内容加了一个比较好啊,是这样的啊。

这个地方我没有讲到啊,这个地方是加了一个叫做私有变量,哎,前面有一个哎,前面有一个下划线呢,叫做私有变量,这个为什么叫私有变呢?就是为了防止是什么呢?防止有一些你想封装的信息,哎。

想封装的信息可以被别人看到,一会儿我们就可以看到一会儿这个凤梨罐头,一会儿我就呃去演示一下,我们这个不加不加你这种就会出问题啊,不加你这种就会出问题啊,别着急哈。

好self点 score看一下还没有问题啊,应该没有了哈。self点s是吧?哎,就相当于什么呢?哎,我刚入学的时候我是零分。那么我第一次考试考了80分,我第二次考试考了100分,请问我有多少分。

我是不是应该有180分啊,对吧?这180分是不是都是跟我相关。比如说我。

张三,你叫李四,那咱俩的分数我天天好好学习,你天天不学习,那咱俩的分数能一样吗?你每次都考不过,都考3040,你一直是零分,我每次都考9100,我每次往上加,最后我怎么样毕业,你没毕业。

那这两个属性是什么?那么这两个是不是完全两个独立的对象啊,互相不影响,对不对?互相不能影响是吧?哎,不能影响。好,我们继续啊,我们继续。嗯。好,我们再来看啊。我们再来去做一个啊,叫做什么呢?

我们先完成了对我们的分数的这么一个呃判断啊。如果你考了低估60分了,我就显示sorry,如果你高于60分,对吧?我就把你这个分数加起来,同时我们还要再去检查一件什么事情呢?就如果我们的这个。

分数怎么样了呢?大鱼。点什么呢?sco叫做哎sor啊,应该叫papa score啊。哎,就是说我们规定的这个1000分我们就会怎么样呢?会做件什么事情呢?我们就会把我们的。student点什么呀?

我们的这个。已经毕业的人数怎么样?加等于一就是说你的分数大于1000了,我就认为你怎么样了,你毕业了,请问你毕业了,你张三毕业了,李四毕业了,王五毕业了,这是几个人,是不是三个人?

这三个人是这个毕业的这三个数字是属于这三个人呢,还是属于整体的?类这个层面的大家可以看到啊,我用了sildent点sdent什么?class的名字唉,这是属于我们的类这个层面类这个层面。好。

我们在这个地方我们再去啊。好,那么现在呢我们就去完成一个最最简单的啊,像其他时间的关系啊,我再不不往下再讲了,我们就直接来去实现啊,叫做seent啊。好。

我们来去定义一个叫做david等于STUDENT啊。你这初始化啊,我们来看看初始化是哪个,是不是尹秀啊,注意啊,尹秀左右两个是双下划线啊,双下划线,它有三个参数,姓名、年龄和性别是吧?我们来去写啊。

姓名是david。我们来看看年龄,比如说我是33岁啊,我们的呃还有一个叫什么呀?一个叫做性别是吧?我是。唉,我是mail是吧?是没有好。没有报错是吧?好,那么现在呢我们我们运行了哈。

我再点一下这个运行吧。对,没有报错,证明我们写的没有问题是吧?好,那么现在呢我来去干什么呢?还记得我们的exam吗?我们是不是实现了一个。方法啊叫做考试是吧,我考了59分。他说什么呀?

我把这个情况式往下移压,他说sorry是吧,他是不是说sorry啊,对吧?说sorry,那好,我考了1个60分。然后呢,我这一次我再考60分。前班同学们,我现在有多少分,是不是我的总分应该是120分啊?

好,那么现在呢我们就设计一个查分的。Check。我查谁的分儿,同学们,我是不是应该查我自己的分啊?好,我们直接就returnex点谁呀?我们的sco。是不是我们来看看david。嗯。嗯。

因为刚才我这个地方重新运行了哈,那么这个地方啊,sorry啊,那么它就不是120了。因为我是因为这个notebook的方式是什么呢?呃,运行方式跟别的它不太一样啊。好,那么我们来去叫做check。

是不是60分啊?好,我们把这个che放在底下啊。我第二次考了多少分?100分是吧。请问我现在考了多少分,朋学们?哎,160分啊,刚才说运行不太一样,就是它会从头到尾重新运行一遍啊。

那比如说现在呢我再去考虑40啊。我考了多少分,又考了100分是吧?260分。那么我为了快速过,我考了800分。对吧考了800分,我们来看看。我们再去check一下。1860分是吧,1860分好。好。

那么我们来现在来去看一个什么问题呢?我们来去看我们的现在有多少个学呃学生。有多少个啊?有多少个毕业的学生啊,我们来去把这个功能写出来,我们再去做这个事情。你就能明白我为什么要实现这些功能了啊。

check这个是吧。这个这个东西,这就是代表什么意思啊?我去。返回我有多少。那么这个层面你比如说你毕业了。你当时毕业的时候,咱学校可能有60个人是吧?哎,你然后呢后边又来了很多很多人。

这些东西的人毕业跟你已经没有关系了。那么这是一个类层面的,我们用一个装饰器叫做class method啊,class method啊,我们加上一个叫CLS的一个东西。记住。

只要带CLS的全都是类这个层面的啊,类这个层面啊。好,我们直接就return什么呀?STUDENT点什么呀?我们的。我们的什么数啊,已经毕业的数量是吧?毕业的数量好,那我们直接就1000分啊。

我直接因为它又重新运行了一遍啊,完全初始化了啊。好,我们再来去看啊,叫做student,这个时候就怎么去调用啊。是不是有一个人了?为什么有一个人呢?是不是因为我david的已经毕业了呀?如果我没有毕业。

我重新再运行一遍,我只考了60分。我们再来去看他。是不是零啊?哎,这个我基本上就把这整个的。啊,这些东西给大家就是大概致说了一下。那么像呃我查询有没有什么这个刚才说了,有没有有哪些人呢。

你比如说我再实现简单的实现一下,给大家带一下啊。check比如说check student,就是说我想看看现在入学的都有哪些同学呀,对不对?我想看一看,对不对?我们来看一看啊。list啊。

我们直接返回这个变量就可以了啊,直接返回这个变量就可以了。好,那么现在除了david,我们还有一个谁呀?还有一个叫做jack是吧?jack啊。这个是23是吧,它也是一个fele是吧?你的这个。

名能重叠啊,重叠了就覆盖了啊。好,那么这个时候我们来去看。成功了是吧,这样再来一些啊。这个是不是代表着我们的没没有人毕业的是吧?我们来看看啊,叫做check谁呀。

请问现在david和jack是不是都是我们企业在线的学员啊,对吧?好,我们来去调研一下,是不是出来了呀?唉,现在有两个是吧,两个啊两个。David和 check。davi那么这个是两个分别从两种方法。

我来跟同们再说一下啊,那么也会有其他的方法,比如说我们的静态方法也有啊,静态方法也有,但是这是两个最重要的默认的全部都是什么呀?只要加self的都是类方法啊,这些都是类方法。那么这都是在我这个层面。

你明白我意思吗?我单位的考了多少分啊,我那个现在有多少分,明白我意思吗?哎,那么这个带着class这个层面呢都是什么呀?都是咱们这个学生这个类这个层面,一共多少个学生进来啊,对不对?哎。

一共现在咱们学生的姓名是哪些,一共毕业了多少啊,都是这个层面的都会加什么呀classminclassman。好,那么基本上因为时间关系一个小时的时间基本上只能跟大家去讲这么多,其实这个进度已经很快了。

如果呃我们同学可能是比较零基础的哈,或者基础比较不好,已经很快了。呃,但是我还是建议大家去呃参加我们的这个课程,这也是由我来负责的一个课程的,我给大家看一下啊嗯。

这课程里面的python呃呃基础入门升级版的这个课程,还是建议大家参加一下。因为这个课程里面是我和林老师一块去讲,因为这个课程里面的这个呃时间来讲是相对来讲比较充裕,而且留了很多的实战项目啊。

给大家去做,而且是一步一步的去走的,一步一步去走的。那么。包括了这后面的作业,如果你真的没有时间,那么参加,那么呃今天又有同学来去啊,有同学来去交个作业啊,交个作业。那么如果你要是没有时间来去参加课程。

那么也请你一定要把这些作业都做一做。这些东西如果你不会,你再去看答案。如果你会的话,尽量都做一做啊,尽量都自己做一做。好,那么我看一看同学还有没有什么问题啊。

啊。😊,发露了是吧,发露。好,那么我们再来看一看啊,同学有问题。那么如果同学们今天没有问题的话呢,我们今天的课程呢可能就要到这儿了。那么今天呢我们再来回顾一下啊,回顾一下我们今天课程讲了些什么东西啊。

基本上我们先复习了,不再多过多说,我们主要讲今天呢我们的目标。第一个就是函数对吧?你得学会什么是函数,函数干嘛用的,是吧?我们怎么去创建它,呃,怎么去使用它,以及它这些函数里边都有些什么东西是吧?

你比如说我们函数呃定义它的函数体返回参数,这个函数名这些东西,你得知道你自己去得去练,用notebook是吧?哎,老师那我是不是也也包错了呀,是吧?

都一样的都一样的是吧?都一样的,有问题再重启就可以是吧?好,第二个讲到了我们的面向对象的基本思想是吧?哎,如果你不太了解这一块,那么呃这一块也的确是比较抽象。实话实说啊,如果你是初学的话,的确比较抽象。

那么你就多从老师给你的这个例子里边你去做,就包括这个地方,你自己去多做那么几遍,比光听要好态度啊好态度。那么给大家留的这个类的这个作业呢,就是这个地方,我来给大家看一下啊,因为时间时间着急。

我就没来得及写啊。啊,就这个地方就这个作业就是说设计以下的一个公司类啊,我把这个放到咱的这个这个里啊。

对对,没错的啊,零下30度说的非常好啊。嗯哎就粘不过去啊,超过超过这个字数了。那我就不发了。同学们,我发个链接吧,那同学们自己看一下吧,好吗?这个字数它不让发啊,啊,呃,是这样的啊。

self相当于指向自身的那个指针啊,指向自身的那个指针啊,零下30度一看就是之前可能去用过C和C加加是吧?嗯,非常好非常好。哎,没关系没关系。那么这个地方风梨罐头,我们的时间刚才没来得及啊。

我再给你大致再给你去演示一下啊,你看为什么要加上那个东西呢?你比如说现在啊。

我们来看,如果现在。我是不是可以直接就把david的分数打印出来了呀?那你说我学习成绩要不好,我会希望人看我分数吗?不希望是吧?我希望把我的分数这个东西隐藏起来,是不是?哎。

我希望把我这个分数这个东西隐藏起来,怎么隐藏啊,我就把这个地方变成这样,对吧?呃,以及在这个的时候呢,我们就去每次调用的时候,前面都这样去用一下。包括这样。哎,我看看啊,应该都是只要带self的。

如果你要换,全部都要换啊,我们再来去试一下。唉,不可以了是吧?哎,不可以了,证明了我们把它变成了一个私有的啊私有的完成我们数据的这种封装的安全性啊,安全性。好呃,对对,解释了刚才的问题。

应该说的就是这个self点name这个问题是吧?好,那同学们如果没有问题的话,那么我们下周日上午10点我们继续再见啊。那么下周日我们要开始讲n派和pandas了numbpandas也会有一些实战的东西。

我尽量会希望以实战的项目去跟大家去沟通啊,这样大家要学的效果好一些。好,那么今天就到这里啊,谢谢大家。