Python数据挖掘与机器学习技术入门实战

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 什么是数据挖掘?什么是机器学习?又如何进行Python数据预处理?本文将带领大家一同了解数据挖掘和机器学习技术,通过淘宝商品案例进行数据预处理实战,通过鸢尾花案例介绍各种分类算法。
数十款阿里云产品限时折扣中,赶紧点击这里,领劵开始云上实践吧! 

本次直播视频精彩回顾,戳这里!
直播涉及到的PPT,戳这里!

课程主讲简介:
韦玮,企业家,资深IT领域专家/讲师/作家,畅销书《精通Python网络爬虫》作者,阿里云社区技术专家。

以下内容根据主讲嘉宾视频分享以及PPT整理而成。

本次课程包含了五个知识点:
1.数据挖掘与机器学习技术简介  
2.Python数据预处理实战  
3.常见分类算法介绍  
4.对鸢尾花进行分类案例实战  
5.分类算法的选择思路与技巧

一、数据挖掘与机器学习技术简介
什么是数据挖掘?数据挖掘指的是对现有的一些数据进行相应的处理和分析,最终得到数据与数据之间深层次关系的一种技术。例如在对超市货品进行摆放时,牛奶到底是和面包摆放在一起销量更高,还是和其他商品摆在一起销量更高。数据挖掘技术就可以用于解决这类问题。具体来说,超市的货品摆放问题可以划分为关联分析类场景。
在日常生活中,数据挖掘技术应用的非常广泛。例如对于商户而言,常常需要对其客户的等级(svip、vip、普通客户等)进行划分,这时候可以将一部分客户数据作为训练数据,另一部分客户数据作为测试数据。然后将训练数据输入到模型中进行训练,在训练完成后,输入另一部分数据进行测试,最终实现客户等级的自动划分。其他类似的应用例子还有验证码识别、水果品质自动筛选等。
那么机器学习技术又是什么呢?一言以蔽之,凡是让机器通过我们所建立的模型和算法对数据之间的关系或者规则进行学习,最后供我们利用的技术都是机器学习技术。其实机器学习技术是一个交叉的学科,它可以大致分为两类:传统的机器学习技术与深度学习技术,其中深度学习技术包含了神经网络相关技术。在本次课程中,着重讲解的是传统的机器学习技术及各种算法。
由于机器学习技术和数据挖掘技术都是对数据之间的规律进行探索,所以人们通常将两者放在一起提及。而这两种技术在现实生活中也有着非常广阔的应用场景,其中经典的几类应用场景如下图所示:
dde8548a7adb0ec1e292c7a9859fb85863bbc869
1、分类:对客户等级进行划分、验证码识别、水果品质自动筛选等
机器学习和数据挖掘技术可以用于解决分类问题,如对客户等级进行划分、验证码识别、水果品质自动筛选等。
以验证码识别为例,现需要设计一种方案,用以识别由0到9的手写体数字组成的验证码。有一种解决思路是,先将一些出现的0到9的手写体数字划分为训练集,然后人工的对这个训练集进行划分,即将各个手写体映射到其对应的数字类别下面,在建立了这些映射关系之后,就可以通过分类算法建立相应的模型。这时候如果出现了一个新的数字手写体,该模型可以对该手写体代表的数字进行预测,即它到底属于哪个数字类别。例如该模型预测某手写体属于数字1的这个类别,就可以将该手写体自动识别为数字1。所以验证码识别问题实质上就是一个分类问题。
水果品质的自动筛选问题也是一个分类问题。水果的大小、颜色等特征也可以映射到对应的甜度类别下面,例如1这个类别可以代表甜,0这个类别代表不甜。在获得一些训练集的数据之后,同样可以通过分类算法建立模型,这时候如果出现一个新的水果,就可以通过它的大小、颜色等特征来自动的判断它到底是甜的还是不甜的。这样就实现了水果品质的自动筛选。
2、回归:对连续型数据进行预测、趋势预测等
除了分类之外,数据挖掘技术和机器学习技术还有一个非常经典的场景——回归。在前文提到的分类的场景,其类别的数量都有一定的限制。比如数字验证码识别场景中,包含了0到9的数字类别;再比如字母验证码识别场景中,包含了a到z的有限的类别。无论是数字类别还是字母类别,其类别数量都是有限的。
现在假设存在一些数据,在对其进行映射后,最好的结果没有落在某个0、1或者2的点上,而是连续的落在1.2、1.3、1.4...上面。而分类算法就无法解决这类问题,这时候就可以采用回归分析算法进行解决。在实际的应用中,回归分析算法可以实现对连续型数据进行预测和趋势预测等。
3、聚类:客户价值预测、商圈预测等
什么是聚类?在上文中提过,要想解决分类问题,必须要有历史数据(即人为建立的正确的训练数据)。倘若没有历史数据,而需要直接将某对象的特征划分到其对应的类别,分类算法和回归算法无法解决这个问题。这种时候有一种解决办法——聚类,聚类方法直接根据对象特征划分出对应的类别,它是不需要经过训练的,所以它是一种非监督的学习方法。
在什么时候能用到聚类?假如数据库中有一群客户的特征数据,现在需要根据这些客户的特征直接划分出客户的级别(如SVIP客户、VIP客户),这时候就可以使用聚类的模型去解决。另外在预测商圈的时候,也可以使用聚类的算法。
4、关联分析:超市货品摆放、个性化推荐等
关联分析是指对物品之间的关联性进行分析。例如,某超市内存放有大量的货品,现在需要分析出这些货品之间的关联性,如面包商品与牛奶商品之间的关联性的强弱程度,这时候可以采用关联分析算法,借助于用户的购买记录等信息,直接分析出这些商品之间的关联性。在了解了这些商品的关联性之后,就可以将之应用于超市的商品摆放,通过将关联性强的商品放在相近的位置上,可以有效提升该超市的商品销量。
此外,关联分析还可以用于个性化推荐技术。比如,借助于用户的浏览记录,分析各个网页之间存在的关联性,在用户浏览网页时,可以向其推送强关联的网页。例如,在分析了浏览记录数据后,发现网页A与网页C之间有很强的关联关系,那么在某个用户浏览网页A时,可以向他推送网页C,这样就实现了个性化推荐。
5、自然语言处理:文本相似度技术、聊天机器人等
除了上述的应用场景之外,数据挖掘和机器学习技术也可以用于自然语言处理和语音处理等等。例如对文本相似度的计算和聊天机器人。

二、Python数据预处理实战
在进行数据挖掘与机器学习之前,首先要做的一步是对已有数据进行预处理。倘若连初始数据都是不正确的,那么就无法保证最后的结果的正确性。只有对数据进行预处理,保证其准确性,才能保证最后结果的正确性。
数据预处理指的是对数据进行初步处理,把脏数据(即影响结果准确率的数据)处理掉,否则很容易影响最终的结果。常见的数据预处理方法如下图所示:
436ff0b8e25fe48f3ae864783cd1ed44711840c5
1、缺失值处理
缺失值是指在一组数据中,某行数据缺失的某个特征值。解决缺失值有两种方法,一是将该缺失值所在的这行数据删除掉,二是将这个缺失值补充一个正确的值。
2、异常值处理
异常值产生的原因往往是数据在采集时发生了错误,如在采集数字68时发生了错误,误将其采集成680。在处理异常值之前,自然需要先发现这些异常值数据,往往可以借助画图的方法来发现这些异常值数据。在对异常值数据处理完成之后,原始数据才会趋于正确,才能保证最终结果的准确性。
3、数据集成
相较于上文的缺失值处理和异常值处理,数据集成是一种较为简单的数据预处理方式。那么数据集成是什么?假设存在两组结构一样的数据A和数据B,且两组数据都已加载进入内存,这时候如果用户想将这两组数据合并为一组数据,可以直接使用Pandas对其进行合并,而这个合并的过程实际上就是数据的集成。

接下来以淘宝商品数据为例,介绍一下上文预处理的实战。
在进行数据预处理之前,首先需要从MySQL数据库中导入淘宝商品数据。在开启MySQL数据库之后,对其中的taob表进行查询,得到了如下的输出:
8f57367789cde5152b9e99e0d983a5c7305eda50
可以看到,taob表中有四个字段。其中title字段用于存储淘宝商品的名称;link字段存储淘宝商品的链接;price存储淘宝商品的价格;comment存储淘宝商品的评论数(一定程度上代表商品的销量)。
那么接下来如何将这些数据导入进来?首先通过pymysql连接数据库(如果出现乱码,则对pymysql的源码进行修改),连接成功后,将taob中的数据全部检索出来,然后借助pandas中的read_sql()方法便可以将数据导入到内存中。read_sql()方法有两个参数,第一个参数是sql语句,第二个参数是MySQL数据库的连接信息。具体代码如下图:
738a005772ab125af4fb1d4f2f65f263608ca5e3
1、缺失值处理实战
对缺失值进行处理可以采用数据清洗的方式。以上面的淘宝商品数据为例,某件商品的评论数可能为0,但是它的价格却不可能为0。然而实际上在数据库内存在一些price值为0的数据,之所以会出现这种情况,是因为对部分数据的价格属性没有爬到。
那么如何才能判断出这些数据出现了缺失值呢?可以通过以下的方法来进行判别:首先对于之前的taob表调用data.describe()方法,会出现如下图所示的结果:
d2f7e6ad17cfcbe9a4340be9fbc6cbd4de32fa6c
如何看懂这个统计结果?第一步要注意观察price和comment字段的count数据,如果两者不相等,说明一定有信息缺失;如果两者相等,则暂时无法看出是否有缺失情况。例如price的count为9616.0000,而comment的count为9615.0000,说明评论数据至少缺失了一条。
其他各个字段的含义分别为:mean代表平均数;std代表标准差;min代表最小值;max代表最大值。
那么如何对这些缺失数据进行处理?一种方法是删掉这些数据,还有一种方法是在缺失值处插入一个新值。第二种方法中的值可以是平均数或者中位数,而具体使用平均数还是中位数需要根据实际情况来决定。例如年龄这个数据(1到100岁),这类平稳、变化的级差不大的数据,一般插入平均数,而变化的间隔比较大的数据,一般插入中位数。
处理价格的缺失值的具体操作如下:
2124e5de276fc55c1dc1e204e108584fce2cbbac
2、异常值处理实战
跟缺失值的处理过程类似,想要处理异常值,首先要发现异常值。而异常值的发现往往是通过画散点图的方法,因为相似的数据会在散点图中集中分布到一块区域,而异常的数据会分布到远离这块区域的地方。根据这个性质,可以很方便的找到数据中的异常值。具体操作如下图:
0e00c260fb01bee42a90b73f772c30d23763fadb
首先需要从数据中抽出价格数据和评论数据。通常的做法可以借助循环去抽取,但是这种方法太复杂,有一种简单的方法是这个数据框进行转置,这时候原先的列数据就变成了现在的行数据,可以很方便的获取价格数据和评论数据。接下来通过plot()方法绘制散点图,plot()方法第一个参数代表横坐标,第二个参数代表纵坐标,第三个参数代表图的类型,”o”代表散点图。最后通过show()方法将其展现出来,这样就可以直观的观测到离群点。这些离群点对数据的分析没有帮助,在实际操作中往往需要将这些离群点代表的数据删除或者转成正常的值。下图是绘制的散点图:
dcfca00eee767d353a6916d9f0e490906c29b16a
根据上图所示,将评论大于100000,价格大于1000的数据都处理掉,就可以达到处理异常值的效果。而具体的两种处理方法的实现过程如下:
第一种是改值法,将其改为中位数、平均数或者其他的值。具体操作如下图所示:
f6abc46b0abf13efcb1afe36a9d695e7a9a3e483
第二种是删除处理法,即直接删除这些异常数据,也是推荐使用的一种方法。具体操作如下图所示:
e8def0d744350b46563616c4a0029e299137de6d
3、分布分析
分布分析是指对数据的分布状态进行分析,即观察其是线性分布还是正态分布。一般采用画直方图的方式来进行分布分析。直方图的绘制有以下几个步骤:计算极差、计算组距和绘制直方图。具体的操作如下图所示:
2361d09e5b83663533cf17293d155ab5d1593d9e
其中,借助arrange()方法来制定样式,arrange()方法第一个参数代表最小值,第二个参数代表最大值,第三个参数代表组距,接下来使用hist()方法来绘制直方图。
taob表中的淘宝商品价格直方图如下图所示,大致上符合正态分布:
950bf9efa25e09e59edb4f05cf63149c2fd96a31
taob表中的淘宝商品评论直方图如下图所示,大致上是递减的曲线:
f57480fa7f2d4f4a367b47bd651fa4b640c455ea
4、词云图的绘制
有的时候常常需要根据一段文本信息来进行词云图的绘制,绘制的具体操作如下图:
5630ec715a6425b5331a7027732f4520a3ea63e7
实现的大致流程是:先使用cut()对文档进行切词,在切词完成之后,将这些词语整理为固定格式,然后根据所需的词云图的展现形式读取相应的图片(下图中的词云图是猫的形状),接着使用wc.WordCloud()进行词云图的转换,最后通过imshow()展现出相应的词云图。例如根据老九门.txt文档绘制的词云图效果如下图所示:
c355cc1310628af0ea745d42628bde0e2dfcd51f

三、常见分类算法介绍
常见的分类算法有很多,如下图所示:
9a432abcfa97fb9d9ca88e4d15724c93b8cb50f0
其中KNN算法和贝叶斯算法都是较为重要的算法,除此之外还有其他的一些算法,如决策树算法、逻辑回归算法和SVM算法。Adaboost算法主要是用于弱分类算法改造成强分类算法。

四、对鸢尾花进行分类案例实战
假如现有一些鸢尾花的数据,这些数据包含了鸢尾花的一些特征,如花瓣长度、花瓣宽度、花萼长度和花萼宽度这四个特征。有了这些历史数据之后,可以利用这些数据进行分类模型的训练,在模型训练完成后,当新出现一朵不知类型的鸢尾花时,便可以借助已训练的模型判断出这朵鸢尾花的类型。这个案例有着不同的实现方法,但是借助哪种分类算法进行实现会更好呢?
1、KNN算法
(1)、KNN算法简介
首先考虑这样一个问题,在上文的淘宝商品中,有三类商品,分别是零食、名牌包包和电器,它们都有两个特征:price和comment。按照价格来排序,名牌包包最贵,电器次之,零食最便宜;按照评论数来排序,零食评论数最多,电器次之,名牌包包最少。然后以price为x轴、comment为y轴建立直角坐标系,将这三类商品的分布绘制在坐标系中,如下图所示:
099e68b50a9de949910bb7859285307301fb4e97
显然可以发现,这三类商品都集中分布在不同的区域。如果现在出现了一个已知其特征的新商品,用?表示这个新商品。根据其特征,该商品在坐标系映射的位置如图所示,问该商品最有可能是这三类商品中的哪种?
这类问题可以采用KNN算法进行解决,该算法的实现思路是,分别计算未知商品到其他各个商品的欧几里得距离之和,然后进行排序,距离之和越小,说明该未知商品与这类商品越相似。例如在经过计算之后,得出该未知商品与电器类的商品的欧几里得距离之和最小,那么就可以认为该商品属于电器类商品。
(2)、实现方式
上述过程的具体实现如下:
484cad69884943d0267bd9ae921c1bb305f11c1f
当然也可以直接调包,这样更加简洁和方便,缺点在于使用的人无法理解它的原理:
24f38786fdf799385374d1c858c8f78b39df6388
(3)、使用KNN算法解决鸢尾花的分类问题
首先加载鸢尾花数据。具体有两种加载方案,一种是直接从鸢尾花数据集中读取,在设置好路径之后,通过read_csv()方法进行读取,分离数据集的特征和结果,具体操作如下:
5fb1dbca17ac13aa33b1b63cb2aba14d19e2af1b
还有一种加载方法是借助sklearn来实现加载。sklearn的datasets中自带有鸢尾花的数据集,通过使用datasets的load_iris()方法就可以将数据加载出来,随后同样获取特征和类别,然后进行训练数据和测试数据的分离(一般做交叉验证),具体是使用train_test_split()方法进行分离,该方法第三个参数代表测试比例,第四个参数是随机种子,具体操作如下:
2b82b97616b0f3b67a5c2d0079f5dd517130ded7
在加载完成之后,就可以调用上文中提到的KNN算法进行分类了。

2、贝叶斯算法
(1)、贝叶斯算法的介绍
首先介绍朴素贝叶斯公式:P(B|A)=P(A|B)P(B)/P(A)。假如现在有一些课程的数据,如下表所示,价格和课时数是课程的特征,销量是课程的结果,若出现了一门新课,其价格高且课时多,根据已有的数据预测新课的销量。
价格(A)
课时数(B)
销量(C)










显然这个问题属于分类问题。先对表格进行处理,将特征一与特征二转化成数字,即0代表低,1代表中,2代表高。在进行数字化之后,[[t1,t2],[t1,t2],[t1,t2]]------[[0,2],[2,1],[0,0]],然后对这个二维列表进行转置(便于后续统计),得到[[t1,t1,t1],[t2,t2,t2]]-------[[0,2,0],[2,1,0]]。其中[0,2,0]代表着各个课程价格,[2,1,0]代表各个课程的课时数。
而原问题可以等价于求在价格高、课时多的情况下,新课程销量分别为高、中、低的概率。即P(C|AB)=P(AB|C)P(C)/P(AB)=P(A|C)P(B|C)P(C)/P(AB)=》P(A|C)P(B|C)P(C),其中C有三种情况:c0=高,c1=中,c2=低。而最终需要比较P(c0|AB)、P(c1|AB)和P(c2|AB)这三者的大小,又
P(c0|AB)=P(A|C0)P(B|C0)P(C0)=2/4*2/4*4/7=1/7
P(c1|AB)=P(A|C1)P(B|C1)P(C1)=0=0
P(c2|AB)=P(A|C2)P(B|C2)P(C2)=0=0
显然P(c0|AB)最大,即可预测这门新课的销量为高。
(2)、实现方式
跟KNN算法一样,贝叶斯算法也有两种实现方式,一种是详细的实现:
00153383a8741d54a75c57847f02f24e6656877b
fece99cf50c4714c11b50e48f600375b6648efa3
另一种是集成的实现方式:
19487874f716dd35305e9bfd3b7699cee9c59d43

3、决策树算法
决策树算法是基于信息熵的理论去实现的,该算法的计算流程分为以下几个步骤:
(1)先计算总信息熵
(2)计算各个特征的信息熵
(3)计算E以及信息增益,E=总信息熵-信息增益,信息增益=总信息熵-E
(4)E如果越小,信息增益越大,不确定因素越小
决策树是指对于多特征的数据,对于第一个特征,是否考虑这个特征(0代表不考虑,1代表考虑)会形成一颗二叉树,然后对第二个特征也这么考虑...直到所有特征都考虑完,最终形成一颗决策树。如下图就是一颗决策树:
39e1ad5af1f8938fb78f6c5321feda271e4122d5
决策树算法实现过程为:首先取出数据的类别,然后对数据转化描述的方式(例如将“是”转化成1,“否”转化成0),借助于sklearn中的DecisionTreeClassifier建立决策树,使用fit()方法进行数据训练,训练完成后直接使用predict()即可得到预测结果,最后使用export_graphviz进行决策树的可视化。具体实现过程如下图所示:
7402539238d647a596f335c6e8e3d9d3a7a393b2

4、逻辑回归算法
逻辑回归算法是借助于线性回归的原理来实现的。假如存在一个线性回归函数:y=a1x1+a2x2+a3x3+…+anxn+b,其中x1到xn代表的是各个特征,虽然可以用这条直线去拟合它,但是由于y范围太大,导致其鲁棒性太差。若想实现分类,需要缩小y的范围到一定的空间内,如[0,1]。这时候通过换元法可以实现y范围的缩小:
令y=ln(p/(1-p))
那么:e^y=e^(ln(p/(1-p)))
=> e^y=p/(1-p)
=>e^y*(1-p)=p  =>  e^y-p*e^y=p
=> e^y=p(1+e^y)
=> p=e^y/(1+e^y)
=> p属于[0,1]
这样y就降低了范围,从而实现了精准分类,进而实现逻辑回归。
逻辑回归算法对应的实现过程如下图所示:
f33de3705c83dfbf049da46046b1a7da483fc95c

5、SVM算法
SVM算法是一种精准分类的算法,但是其可解释性并不强。它可以将低维空间线性不可分的问题,变为高位空间上的线性可分。SVM算法的使用十分简单,直接导入SVC,然后训练模型,并进行预测。具体操作如下:
44e2e4ae8604ea24060e5f80581be857191cccc1
尽管实现非常简单,然而该算法的关键却在于如何选择核函数。核函数可分为以下几类,各个核函数也适用于不同的情况:
(1)、线性核函数
(2)、多项式核函数
(3)、径向基核函数
(4)、Sigmoid核函数
对于不是特别复杂的数据,可以采用线性核函数或者多项式核函数。对于复杂的数据,则采用径向基核函数。采用各个核函数绘制的图像如下图所示:
f74e30a484123d39d0a6e86dd198e035381c8328

5、Adaboost算法
假如有一个单层决策树的算法,它是一种弱分类算法(准确率很低的算法)。如果想对这个弱分类器进行加强,可以使用boost的思想去实现,比如使用Adaboost算法,即进行多次的迭代,每次都赋予不同的权重,同时进行错误率的计算并调整权重,最终形成一个综合的结果。
Adaboost算法一般不单独使用,而是组合使用,来加强那些弱分类的算法。

五、分类算法的选择思路与技巧
首先看是二分类还是多分类问题,如果是二分类问题,一般这些算法都可以使用;如果是多分类问题,则可以使用KNN和贝叶斯算法。其次看是否要求高可解释性,如果要求高可解释性,则不能使用SVM算法。再看训练样本数量、再看训练样本数量,如果训练样本的数量太大,则不适合使用KNN算法。最后看是否需要进行弱-强算法改造,如果需要则使用Adaboost算法,否则不使用Adaboost算法。如果不确定,可以选择部分数据进行验证,并进行模型评价(耗时和准确率)。
综上所述,可以总结出各个分类算法的优缺点为:
KNN:多分类,惰性调用,不宜训练数据过大
贝叶斯:多分类,计算量较大,特征间不能相关
决策树算法:二分类,可解释性非常好
逻辑回归算法:二分类,特征之间是否具有关联无所谓
SVM算法:二分类,效果比较不错,但可解释性欠缺
Adaboost算法:适用于对弱分类算法进行加强


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9天前
|
机器学习/深度学习 自然语言处理 语音技术
探索机器学习中的自然语言处理技术
【10月更文挑战第38天】在本文中,我们将深入探讨自然语言处理(NLP)技术及其在机器学习领域的应用。通过浅显易懂的语言和生动的比喻,我们将揭示NLP技术的奥秘,包括其工作原理、主要任务以及面临的挑战。此外,我们还将分享一些实用的代码示例,帮助您更好地理解和掌握这一技术。无论您是初学者还是有经验的开发者,相信您都能从本文中获得宝贵的知识和启示。
19 3
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
思通数科AI平台在尽职调查中的技术解析与应用
思通数科AI多模态能力平台结合OCR、NLP和深度学习技术,为IPO尽职调查、融资等重要交易环节提供智能化解决方案。平台自动识别、提取并分类海量文档,实现高效数据核验与合规性检查,显著提升审查速度和精准度,同时保障敏感信息管理和数据安全。
74 11
|
8天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
28 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
11天前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习:从理论到Python代码实践
【10月更文挑战第36天】本文将深入浅出地介绍机器学习的基本概念、主要算法及其在Python中的实现。我们将通过实际案例,展示如何使用scikit-learn库进行数据预处理、模型选择和参数调优。无论你是初学者还是有一定基础的开发者,都能从中获得启发和实践指导。
25 2
|
12天前
|
机器学习/深度学习 数据采集 搜索推荐
利用Python和机器学习构建电影推荐系统
利用Python和机器学习构建电影推荐系统
30 1
|
12天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
36 1
|
19天前
|
机器学习/深度学习 TensorFlow API
机器学习实战:TensorFlow在图像识别中的应用探索
【10月更文挑战第28天】随着深度学习技术的发展,图像识别取得了显著进步。TensorFlow作为Google开源的机器学习框架,凭借其强大的功能和灵活的API,在图像识别任务中广泛应用。本文通过实战案例,探讨TensorFlow在图像识别中的优势与挑战,展示如何使用TensorFlow构建和训练卷积神经网络(CNN),并评估模型的性能。尽管面临学习曲线和资源消耗等挑战,TensorFlow仍展现出广阔的应用前景。
47 5
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
32 2
|
19天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
24 3
下一篇
无影云桌面