一、Python中Matplotlib库的学习与使用

1.Matplotlib库介绍

Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式跨平台的交互式环境生成出版质量级别的图形。通过Matplotlib,只需几行代码,便可以生成绘图、直方图、功率谱、条形图、错误图和散点图等。

Matplotlib中的pyplot包封装了很多画图的函数。Matplotlib. pyplot包含一系列类似MATLAB中绘图函数的相关函数。每个Matplotlib. pyplot中的函数会对当前的图像进行一些修改,例如:产生新的图像,在图像中产生新的绘图区域,在绘图区域中画线,给绘图加上标记等。Matplotlib. Pyplot会自动记住当前的图像和绘图区域,因此这些函数会直接作用在当前的图像上。

2. Matplotlib的使用

(1)对数曲线

Python数据分析与挖掘实战学习01

其中的plot(x, y, ‘xxx’, label=, linewidth=)函数中的x,y属于位置参数,分别代表点的横坐标和纵坐标,第三个参数表示点和线的样式,label参数用来设置图列,需要调用plt或子图的legend方法,linewidth用来设置线的粗细。

在初次编写完程序后,发现如下图所示的坐标原点并没有重合,查阅相关资料后,发现是没有设置x轴和y轴的范围,即plt.xlim(0.0, 3.0)和plt.ylim(-5, 2),或者使用plt.axis([0.0, 3.0, -5, 2])来调整原点。

Python数据分析与挖掘实战学习01

(2)直方图与正态分布

其中NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。简单来说,NumPy就是一个运行速度非常快的数学库,主要用于数组计算,包含线性代数、傅立叶变换和随机数生产等功能。

Python数据分析与挖掘实战学习01

Python数据分析与挖掘实战学习01

函数numpy.random.uniform(low, high, size)的功能是从一个均匀分布[low,high)中随机采样,size代表输出样本数目。函数plt.hist(x, bins=None, density=None,……*kwargs),其中参数x表示完成直方图所需的数据,参数bins代表直方图的条形数,facecolor表示直方图的颜色,参数alpha表示其透明度。此程序也就验证了中心极限定理。

二、初识机器学习

1.机器学习的定义

机器学习的专业定义是对于某给定的任务T,在合理的性能度量方案P的前提下,某计算机程序可以自主学习任务T的经验E;随着提供合适、优质、大量的经验E,该程序对于任务T的性能逐步提高。

从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。

2.机器学习的一般流程

(1)数据收集

所有的机器学习算法在应用场景、优势劣势、对数据要求、运行速度上都各有优劣,但有一点不变的是这些算法均是数据贪婪的,也就是说任何一个算法,都可以通过增加数据量来达到更好的效果,因此第一步数据采集也是最基础、最终的一步。数据采集的方式主要有爬虫、API或者是数据库。

(2)数据清洗

更多是针对类似爬虫这种方式获取的数据,这种数据通常没有一个非常固定规范的格式,数据非常不稳定,因此需要进行前期的清洗工作,工作量巨大。清洗方向主要包括:检查数据的合理性、有效性以及检查工具,爬虫工具是否有bug等。

(3)数据预处理

即便数据都在手上,但是因为人为、软件、业务导致的异常数据还是比较多的,比如性别数据的缺失、年龄数据的异常(负数或者超大的数),而大多数模型对数据都有基本要求,比如不能缺失,而异常数据对模型是有影响的,因此通常都需要进行预处理。预处理问题类型主要包括缺失处理和异常处理。其中缺失处理包括bug导致的缺失以及正常业务情况导致的缺失。异常处理包括绝对异常、统计异常以及上下文异常。

(4)特征工程

特征工程决定了机器学习的上限,模型只是逼近这个上限。其基本步骤主要是特征构建和特征选择。

(5)数据建模

    数据建模阶段的主要任务包括建立训练集和测试数据集,通常将数据集的80%作为训练数据集,选择合适的机器学习算法,导入算法、创建模型并且训练模型。

三、Java方法参数中的值传递和引用传递

1.值传递

基本数据类型在传递参数时是值传递的,引用类型传递参数时是引用传递。这两种类型都是将外面的参数变量拷贝一份到局部变量中,基本类型为值拷贝,引用类型就是将引用地址拷贝一份。如下图所示的java代码中,方法参数flg被初始化为外部变量a的拷贝,值为false。参数num被初始化为外部变量b的拷贝,值为5。执行方法逻辑,方法中的局部变量flg被改变为true,局部变量flg被改变为10。当方法参数为基本类型时,是将外部变量值拷贝到局部变量中而进行逻辑处理的,故方法是不能修改原基本变量的。

Python数据分析与挖掘实战学习01

2.引用传递

数组作为参数是引用传递,在doIt方法中可以修改数组的值。对于引用类型的方法参数,会将外部变量的引用地址,复制一份到方法的局部变量中,两个地址指向同一个对象。所以如果通过操作副本引用的值,修改了引用地址的对象,此时方法以外的引用此地址对象也会被修改。

Python数据分析与挖掘实战学习01

 

相关文章: