扩展:数据清洗
检测与处理重复值
pandas提供了一个名为drop_duplicates的去重方法。该方法只对DataFrame或者Series类型有效。这种方法不会改变数据原始排列,并且兼具代码简洁和运行稳定的特点。该方法不仅支持单一特征的数据去重,还能够依据DataFrame的其中一个或者几个特征进行去重操作。
参数名说明subset接收string或sequence。表示进行去重的列。默认为None,表示全部列。keep接收特定string。表示重复时保留第几个数据。first:保留第一个。last:保留最后一个。false:只要有重复都不保留。默认为first。inplace接收boolean。表示是否在原表上进行操作。默认为False。
示例:
检测与处理缺失值
数据中的某个或某些特征的值是不完整的,这些值称为缺失值。
pandas提供了识别缺失值的方法isnull以及识别非缺失值的方法notnull,这两种方法在使用时返回的都是布尔值True和False。
结合sum函数和isnull、notnull函数,可以检测数据中缺失值的分布以及数据中一共含有多少缺失值。isnull和notnull之间结果正好相反,因此使用其中任意一个都可以判断出数据中缺失值的位置。
1)删除法
删除法分为删除观测记录和删除特征两种,pandas中提供了简便的删除缺失值的方法dropnaÿ wps的电脑版下载的入口是多少0c;该方法既可以删除观测记录,亦可以删除特征。
参数名说明axis接收0或1。表示轴向,0为删除记录(行),1为删除特征(列)。默认为0。how接收特定string。表示删除的形式。any表示只要有缺失值存在就执行删除操作。all表示当且仅当全部为缺失值时执行删除操作。默认为any。subset接收类array数据。表示进行去重的列∕行。默认为None,表示所有列/行。inplace接收boolean。表示是否在原表上进行操作。默认为False。
示例:
2)替换法
替换法是指用一个特定的值替换缺失值。
特征可分为离散型和连续型,两者出现缺失值时的处理方法也是不同的。
缺失值所在特征为连续型时,通常利用其均值、中位数和众数等描述其集中趋势的统计量来代替缺失值。缺失值所在特征为离散型时,则经常选择使用众数来替换缺失值。
插补方法方法描述均值/中位数/众数插补根据属性值的类型用该属性取值的平均数/中位数/众数进行插补使用固定值将缺失的属性值用一个常量替换。最近临插补在记录中找到与缺失样本最接近的样本的该属性值插补回归方法对带有缺失值的变量,根据已有数据和与其有关的其他变量(因变量)的数据建立拟合模型来预测缺失的属性值插值法插值法是利用已知点建立合适的插值函数f(x),未知值由对应点x求出的函数值f(x)近似代替
pandas库中提供了缺失值替换的方法名为fillna,其基本语法如下:
常用参数及其说明如下:
参数名说明value接收scalar,dict,Series或者DataFrame。表示用来替换缺失值的值。无默认。method接收特定string。backfill或bfill表示使用下一个非缺失值填补缺失值。pad或ffill表示使用上一个非缺失值填补缺失值。默认为None。axis接收0或1。表示轴向。默认为1。inplace接收boolean。表示是否在原表上进行操作。默认为False。limit接收int。表示填补缺失值个数上限,超过则不进行填补。默认为None。
案例:
3)插值法
删除法简单易行,但是会引起数据结构变动,样本减少;替换法使用难度较低,但是会影响数据的标准差,导致信息量变动。在面对数据缺失问题时,除了这两种方法之外,还有一种常用的方法—插值法。
scipy提供了插值算法可以通过一组散点得到一个符合一定规律插值器函数。这样当我们给插值器函数更多未知x,插值函数将会返回相应的y用于填补缺失值。
需求:统计各小区彩民买彩票的情况:
彩民数量彩票购买量30100注40120注50135注60155注45-65170注电脑版的WPS office下载网址在哪里
scipy提供的插值方法如下:
案例:
检测与处理异常值
简单统计量分析
先对变量做一个描述性统计,找出哪些数据是不合理的,最常用的统计量是求最大值和最小值,判断变量是否在这个区间。
3σ原则
3σ原则又称为拉依达法则。该法则就是先假设一组检测数据只含有随机误差,对原始数据进行计算处理得到标准差,然后按一定的概率确定一个区间,认为误差超过这个区间的就属于异常值。
这种判别处理方法仅适用于对正态或近似正态分布的样本数据进行处理。如果不符合正态分布,可以用远离平均值的多少倍标准差来表示。
箱线图分析
箱线图提供了识别异常值的一个标准,即异常值通常被定义为小于QL-1.5IQR或大于QU+1.5IQR的值。
QL称为下四分位数,表示全部观察值中有四分之一的数据取值比它小。
QU称为上四分位数,表示全部观察值中有四分之一的数据取值比它大。
IQR称为四分位数间距,是上四分位数QU与下四分位数QL之差,其间包含了全部观察值的一半。
异常值的处理方法:
异常值处理方法方法描述删除含有异常值的记录直接删除含有异常值的记录视为缺失值将异常值视为缺失值,按照缺失值方法处理。平均值修正用前后两个观测值的均值进行修正。不处理直接在含有异常值的数据集上进行数据建模官方wps office 下载的网址。
矩阵是numpy.matrix类型的对象,该类继承自numpy.ndarray,任何针对多维数组的操作,对矩阵同样有效,但是作为子类矩阵又结合其自身的特点,做了必要的扩充,比如:乘法计算、求逆等。
1.wps官网最新的下载的网站在哪 矩阵对象的创建
示例:创建matrix
2. wps office 官方的下载的地址在哪矩阵的乘法运算
3. 矩阵的逆矩阵
若两个矩阵A、B满足:AB = E (E为单位矩阵),则称B为A的逆矩阵。
单位矩阵
在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,这种矩阵被称为单位矩阵。它是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1,除此以外全都为0,记为或 ,通常用I或E来表示。根据单位矩阵的特点,任何矩阵与单位矩阵相乘都等于本身,而且单位矩阵因此独特性有广泛用途。以下是一个单位矩阵示例:
逆矩阵示例:
注意:在计算过程中,可能出现如下错误,说明该矩阵不可逆。
4. ndarray提供的矩阵API
ndarray提供了方法让多维数组替代矩阵的运算:
执行结果:官网wps office免费版的下载网址(wps下载电脑版最新怎么下载)
5. 矩阵应用
案例:解线性方程组
假设一帮孩子和家长出去旅游,去程坐的是bus,小孩票价为3元,家长票价为3.2元,共花了118.4;回程坐的是Train,小孩票价为3.5元,家长票价为3.6元,共花了135.2。分别求小孩和家长的人数。使用矩阵求解。表达成方程为:
表示成矩阵相乘:
案例:斐波那契数列
1 1 2 3 5 8 13 21 34 …
代码
1. 线性模型
如下直线方程属于线性方程:
图像可表示为:

在实际应用,输入和输出可以用线性模型进行拟合,称之为线性模型或线性问题(如房屋面积与总价、成年人的身高与体重)。表示成图像如下图所示:
官方wps office 的下载的网站(wps下载电脑版要钱吗安卓版)
线性拟合
线性拟合就是试图找到一个最优的线性方程,可以最好的匹配当前样本(到所有样本的距离之和最短,误差最小)。若已知样本只有一个自变量与一个因变量,则线性方程可表示为:
线性拟合就是根据一组x, y的值,来寻求最佳k,b的值,这个过程也可称为线性回归。
有一组散点描述时间序列下的股价:
我们希望所有点都可以被线性方程表示,姑且把所有样本带入方程可得:
这一组方程表示为矩阵相乘格式:
样本过多,每两组方程即可求得一组k与b的值。$ A B x np.linalg.lstsq(A, B) $可以通过最小二乘法求出所有结果中拟合误差最小的k与b的值。
案例:利用线型拟合画出股价的趋势线

绘制趋势线(趋势可以表示为最高价、最低价、收盘价的均值):
执行结果:
控制台输出:
课后作业
绘制顶部压力线(趋势线+(最高价 – 最低价))
绘制底部支撑线(趋势线-(最高价 – 最低价))
线性模型的应用场景
2. 多项式模型
在有些数据分布中,使用一条曲线比直线能更好拟合数据,这就需要用到多项式拟合。如下图所示分布:

多项式的一般形式:
多项式拟合的目的是为了找到一组 ,使得拟合方程尽可能的与实际样本数据相符合。
假设拟合得到的多项式如下:
则拟合函数与真实结果的差方如下:
那么多项式拟合的过程即为求取一组, 使得loss的值最小。在程序中,多项式可以表示为一个数组,格式如下:
表示多项式为:
多项式拟合相关API:
多项式运算相关API:
案例:求多项式 y = 4×3 + 3×2 – 1000x + 1曲线驻点的坐标。
执行结果:

案例:使用多项式函数拟合两只股票bhp、vale的差价函数:
执行结果:
[外链图片转存失败,源wps电脑版下载网址怎么找(wps官网最新下载为什么没有中文版本)站可能有防盗链机制,建议将图片保存下来直接上传(img-xy6pjJQy-1593500363955)(C:/Users/xuming/Desktop/code/images/%E8%82%A1%E7%A5%A8%E5%B7%AE%E5%87%BD%E6%95%B0%E5%A4%9A%E9%A1%B9%E5%BC%8F%E6%8B%9F%E5%90%88.png)]
多项式拟合的注意事项:
多项式拟合不能在数据样本之外的范围做预测多项式拟合时容易造成过拟合(函数和样本拟合度太高,样本以外的数据则拟合度很低)
3. 基于函数矢量化的股票回测模型
函数的矢量化指通过一个只能处理标量数据的函数得到一个可以处理矢量数据的函数,从而可以对大量数据进行矢量化计算。
numpy提供了vectorize函数,可以把处理标量的函数矢量化,返回的函数可以直接处理ndarray数组。
执行结果:
numpy还提供了frompyfuc函数,也可以完成与vectorize相同的功能:
案例:定义一种投资策略,传入某日期,基于均线理论返回是否应该按收盘价购买,并通过历史数据判断这种策略是否值得实施。
数据清洗
检测与处理重复值
检测与处理缺失值
插值法
矩阵
矩阵乘法
逆矩阵
解方程组
斐波那契数列
数学建模


多项式模型

