20190830数据处理方法总结

一、常用方法有:

        1、对数化处理

                1.1 应用场景有:

                      ①、金融行业计算增长率(公式log(当期)-log(对比期),因ln(x)≈x-1)、

                      ②、分组画直方图数值相差特别大的时(用np.log方法,比如 df[待处理列名].map(lambda x:np.log(x) if x>0 else np.nan)

        2、规范化处理

                   2.1 公式:

                                ① 最小-最大规范化(即归一化,或离差标准化):(当前值-最小值)/(最大值-最小值) 或 (最大值-当前值)/(最大值-最小值),如:(data-data.min())/(data.max() -data.min())。一般数据分布比较均匀选择此方法,可以使用kde图观察。

                                ② 零-均值规范化(即标准化,或归零化,或标准差标准化):(当前值-平均值)/标准差,如:(data-data.mean())/data.std()。一般数据服从正态分布选择此方法,可以使用kde图观察。

                   2.2 说明:

                                ① 为了消除指标之间的量纲和取值范围差异的影响,需要进行标准化(归一化)处理,将数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析。

                                ② 这两种方式都是x的线性变换,本身不会改变数据的分布

                   2.3 标准化处理场景:

                          1、需要使用梯度下降算法时

                          2、涉及求距离的算法,如KNN、聚类、支持向量机、神经网络等

        3、小数定标标准化

                   3.1 公式:

                              将属性A的原始值x使用decimal scaling标准化到x'的计算方法是: x'=x/(10^j) 其中,j是满足条件的最小整数。j是对以10为底的x的绝对值最大的对数向上取整(np.ceil()),如:j=np.ceil(np.log10(data.abs().max())) → 新数据=原数据/10**j

                   3.2 说明:

                                ① 消除单位影响

                                ② 通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。          

              4、离散化处理

                   4.1 定义:

                        通俗讲,是把连续型数据分段转换为分类数据分析,python中使用pd.cut()方法和pd.qcut()方法

                  4.2 等宽法处理:

                         ①、pd.cut()方法:pd.cut(data, k, labels = range(k))#等宽离散化,各个类比依次命名为0,1,2,3 或 pd.cut(data1.年龄, [0,45, 59, 74, 89,120],labels=["青年", "中年", "老年前期","老年","长寿老人"])(这种方法labels的元素个数必须比年龄的分组元素个数少一个)

                          ②、pd.qcut()用分位数进行分箱:pd.qcut(data1["年龄"],4,labels=[1,2,3,4])

你可能感兴趣的:(20190830数据处理方法总结)