教你学Python24带你开启机器学习

2023/4/27 来源:不详

北京中科白癜风医学研究院 http://www.csjkc.com/

先简单带大家看一些学习机器学习需要哪些东西,大概有什么用,做什么的,具体的内容后面我会一一具体的来和大家说,

所谓“机器学习”就是利用计算机将纷繁复杂的数据处理成有用的信息,这样就可以发掘出数据带来的意义以及隐藏在数据背后的规律。现如今,“机器学习”和“大数据”可以说是IT行业中最热点的两个词汇,而无论是“机器学习”还是“大数据”最终要解决的问题本质上是一样的,用最为直白的话来说就是用现有的数据去预测将来的状况。

按照问题的“输入”和“输出”,我们可以将用计算机解决的问题分为四大类:

输入的信息是精确的,要求输出最优解。

输入的信息是精确的,无法找到最优解。

输入的信息是模糊的,要求输出最优解。

输入的信息是模糊的,无法找到最优解。

在上面的四大类问题中,第1类问题是计算机最擅长解决的,这类问题其实就是“数值计算”和“逻辑推理”方面的问题,而传统意义上的人工智能也就是利用逻辑推理来解决问题(如早期的“人机对弈”)。一直以来,我们都习惯于将计算机称为“电脑”,而基于“冯诺依曼”体系结构的“电脑”实际上只是实现了“人脑”理性思维这部分的功能,而且在这一点上“电脑”通常是优于“人脑”的,而“人脑”在处理输入模糊信息时表现出来的强大的处理能力,在今天看来也不是“电脑”可以完全企及的。所以我们研究人工智能也好,研究机器学习也好,是希望输入模糊信息时,计算机能够给出满意的甚至是最优的答案。

至此,我们可以给“机器学习”下一个定义:机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身性能的学科。机器学习目前已经广泛的应用到生产生活的各个领域,以下列举了一些经典的场景:

搜索引擎:根据搜索和使用习惯,优化下一次搜索的结果。

电商网站:自动推荐你可能感兴趣的商品。

贷款申请:通过你最近的金融活动信息进行综合评定。

图像识别:自动识别图片中有没有不和谐的内容。

机器学习可以分为监督学习和非监督学习。监督学习是从给定的训练数据集中学习得到一个函数,当新的数据到来时,可以根据这个函数预测结果,监督学习的训练集包括输入和输出,也可以说是特征和目标。监督学习的目标是由人来标注的,而非监督学习的数据没有类别信息,训练集也没有人为标注结果,通过无监督学习可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息。

实现机器学习的一般步骤:

数据收集

数据准备

数据分析

训练算法

测试算法

应用算法

为什么机器学习,使用Python,不是java,go,c++?

Python脚本语言,学习成本低有丰富的数学库可以直接使用

人工智能(ArtificialIntelligence,AI)时代,简单易学,同时拥有着丰富模块库的Python成为时代的宠儿,活跃在人工智能的各个领域。我们可以借助Python库执行基本的机器学习任务。常用的Python科学库如下:

矩阵函数操作库(Numpy)

科学计算包(Scipy)

Python绘图库(Matplotlib)

数据分析包(Pandas)

机器学习函数库(Scikit-learn)

统计建模工具包(StatsModels)

深度学习框架(TensorFlow)

下面我们对这些常用算法库,进行讲解和举例

TensorFlow是一个采用数据流图(dataflowgraphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域

一句话总结:一个中队长,将我们用其他类库写的函数,交给tensorflow来管理,运行tensorflow来有计划的执行模型。

statsmodels是一个Python模块,它提供对许多不同统计模型估计的类和函数,并且可以进行统计测试和统计数据的探索。

Numpy是Python的一种开源的数值计算扩展,一个用python实现的科学计算包。它提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生

约定俗成的导入惯例:

importnumpyasnp

1、python中有集合(list),但是没有数组的概念,Numpy可以帮助我们创建数组

核心代码:

代码通过np.array定义了一个数组[2,0,1,5,8,3],其中min计算最小值,max计算最大值,shape表示数组的形状,因为是一维数组,故6L(6个数字)。

最重要的一个知识点是数组的切片操作,因为在数据分析过程中,通常会对数据集进行80%-20%或70%-30%的训练集和测试集划分,通常采用的方法就是切片。

a[:-2]表示从头开始获取,-2表示后面两个值不取,结果:[]

a[-2:]表示后往前数两个数字,获取数字至结尾,即获取最后两个值[83]

a[:1]表示从头开始获取,获取1个数字,即[2]

2、定义二维数组,二维数组我们也可以理解为x乘y的矩阵

需要注意:

(1)获取二维数组中的某行,如第2行数据[4,5,6,7],采用方法是:c[1][:];

(2)获取二维数组中的某列,如第2列数据[[3][6][9]],c[:,np.newaxis,2]。因为通常在数据可视化中采用获取某列数据作为x或y坐标,同时多维数据也可以采用PCA降低成两维数据,再进行显示。

Pandas是面板数据(PanelData)的简写。它是Python最强大的数据分析和探索工具,因金融数据分析工具而开发,支持类似SQL的数据增删改查,支持时间序列分析,灵活处理缺失数据。

约定俗成的导入惯例:

frompandasimportSeries,DataFrame

importpandasaspd

一维数组Series具备list和dict的特性,可以直接Series[列标签索引或位置索引]访问

二维数组和excel格式相近,所有进行数据分析,数据挖掘的工具最基础的结果:行和列,行表示样本,列表示的是属性

用pandas多层索引,实现excel表格,从此不需要offers

使用pandas进行数据清洗数据分析数据挖掘

有数据情况下:

数据预处理

数据清洗(空数据,异常值)

数据集成(多个数据合并到一起,级联)数据可能存放在多个表中

数据转化

数据规约(属性减少(不重要的属性删除),数据减少去重操作)

sql的功能,增删改查,聚合查询

用pandas进行文件的读取操作csv类型文件呢,文本文件,excel打开,格式化的文件,所以excel可以直接读取成表格

Matplotlib是一个Python的图形框架,类似于MATLAB和R语言。它是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中

约定俗成的导入惯例:

importmatplotlib.pyplotasplt

Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。

约定俗成的导入惯例:

importmatplotlib.pyplotasplt

Scikit-learn是专门面向机器学习的Python开源框架,它实现了各种成熟的算法,并且易于安装与使用。

接下来以鸢尾花数据集为例,学习如何在Scikit-learn中调用数据集。鸢尾花数据集采集的是鸢尾花的测量数据及其所属类别,测量数据包括萼片长度、萼片宽度、花瓣长度、花瓣宽度;类别有3类:IrisSetosa,IrisVersicolour,IrisVirginica,该数据集一般用于监督学习中的多分类问题。

2、数据集划分

在Python机器学习概论中曾经提过,在模型训练时,一般会把数据集划分成训练集、验证集和测试集,其中训练集用来估计模型,验证集用来确定网络结构或控制模型复杂程度的参数,而测试集则用于检验最终选择的最优模型的性能优劣。在Scikit-learn中一般采用一下几种方式进行数据划分:

使用train_test_split()对数据集进行划分

Scikit-learn中使用sklearn.model_selection模块对数据集进行划分,而该模块中的train_test_split()时交叉验证中常用的函数,功能是从样本中随机按比例选取train_data和test_data,详情如下:

train_data所要划分的样本特征集

train_target所要划分的样本结果

test_size样本占比,若为整数则为样本的数量

random_state随机数种子,同时也是该组随机数的编号,在需要重复实验时,能生成相同的随机数。为0、为空或不同时,生成不同的随机数;当种子相同时即使实例不同也会产生相同的随机数

X_train生成的训练集的特征

X_test生成的测试集的特征

Y_train生成的训练集的标签

Y_test生成的测试集的特征

通过一个简单的实例来演示如何使用这个函数将数据集快速打乱,形成训练集和数据集。

喜欢点下

转载请注明:
http://www.3g-city.net/gjycs/4351.html
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 网站首页 版权信息 发布优势 合作伙伴 隐私保护 服务条款 网站地图 网站简介

    温馨提示:本站信息不能作为诊断和医疗依据
    版权所有2014-2024 冀ICP备19027023号-6
    今天是: