Day Two——填充缺失值、归一化数据、PCA降维分析

Day Two——填充缺失值、归一化数据、PCA降维分析

完整代码及数据地址

第一部分数据catering_sale.xls

第二部分数据normalization_data.xls

第三部分数据discretization_data.xls

第四部分数据electricity_data.xls

第五部分数据leleccum.mat

第六部分数据principal_component.xls

第一部分——拉格朗日填值

对应函数programmer_1

步骤

  1. 读取数据

  2. 将异常数据(筛选数据)重新赋值为Nan

  3. 找到空值索引isnull

  4. 对于每个空值调用ployinterp_column函数, 函数返回scipy.interpolate.lagrange填充值

  5. 导出excel表to_excel

说明

在选取数据的时候最好使用.loc方法,如果用复合条件筛选df[condition][condition]。会有下面两个影响。

  1. 使用.loc官方推荐方法,查询速度会更快

  2. 使用复合条件筛选,可能会产生一些不可名状的错误。

某些情况下,如果直接使用复合条件进行赋值,会有个SetWarning

SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

赋值的时候,有时候可以考虑把第一个条件改为[[conition]],这样输出为DataFrame,之后再用索引进行赋值,也不会报waning。

还有一种方法就是用copy()方法,将原来的数据进行提取

以上具体说明查阅pandas文档

第二部分——数据规范化

对应函数programmer_2

步骤

  1. 读取数据

  2. 最小-最大规范化(归一化)

    XXminXmaxXmin X − X m i n X m a x − − X m i n

  3. 零-均值规范化

    XXmeanXstd X − X m e a n X s t d

  4. 小数定标规范化

    X10[lg|X|max] X 10 [ lg ⁡ | X | m a x ]

P.S.np.ceil: 向上取整、np.log10: 以10为底取对数

第三部分——分别用三种聚类方法可视化

对应函数programmer_3

步骤:

  1. 读取数据,提取需要聚类的数据部分

  2. 第一种方法,使用pandas直接指定聚类数(多少簇),使用pd.cut进行分类。

  3. 第二种方法,使用等频率离散化方法,重新指定分类标准。提取五个分位点0、25%、50%、75%、1的数据,再使用pd.cut进行分类。

  4. 第三种方法,使用sklearn.cluster.KMeans方法,提取聚类中心进行排序,之后再得出边界点,再使用pd.cut进行分类。

  5. 可视化

说明:

pd.cut(x, bins, precision=3):
对函数这几个参数进行介绍,xSeries数据,precision是聚类数。着重介绍bins

分两种情况:

  1. 整型,表示定义了x范围内的等宽的bins数,可以拓展x(包含x的最大值最小值)

  2. 序列(数组),运行每类宽度不等,不能扩展x(可能不包含最大值最小值)

官方文档

使用reshape时报了一个warning。解决方法就是跟警告说明一样,在原来基础上使用.values.shape

FutureWarning: reshape is deprecated and will raise in a subsequent release. Please use .values.reshape(...) instead

图形如下:

![pic3_1.png](
https://raw.githubusercontent.com/wnma3mz/python_ds_dm_note/master/chapter4/img/3_1.png)

![pic3_2.png](
https://raw.githubusercontent.com/wnma3mz/python_ds_dm_note/master/chapter4/img/3_2.png)

![pic3_3.png](
https://raw.githubusercontent.com/wnma3mz/python_ds_dm_note/master/chapter4/img/3_3.png)

第四部分——pandas计算比率

对应函数programmer_4

步骤:

  1. 提取数据

  2. 根据已有数据,算出新数据。供入电量与供出电量的差值除以供入电量得出线损率。

  3. 保存数据

第五部分——利用小波分析进行特征分析

对应函数programmer_5

小波分析。。。知识盲区,在这里不做介绍

第六部分——使用PCA降维数据

对应函数programmer_6

主成分分析,主要用于高维度数据降维。

部分函数说明

  • components_: 特征空间中的主轴,代表数据中最大方差的方向。

  • explained_variance_ratio_: 每个选定组件解释的变化量。等于x的协方差矩阵的n_components最大特征值。

官网地址

你可能感兴趣的:(大数据,数据分析与挖掘实战)