数据的特征处理展示

缺失值的处理: pandas dropna fillna resplace 数据当中的格式应该是np.nan格式

一般是删除或填补。

一般是按列去填补。每列的中位数,平均值啥的。

import numpy as np

from sklearn.impute  import  SimpleImputer
def im():
    #缺失值处理
    #缺失值的标记是固定的 NaN nan
    im=SimpleImputer(missing_values=np.nan,strategy='mean')
    data=im.fit_transform([[1, 2], 
                           [np.nan, 3], 
                           [7, 6]])
    print(data)
    
if __name__=='__main__':
    im()    

#归一化

特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间

x'= (x-min)/(max-min)

x''=x'(mx-mi)+mi 调整区间,类似不要0-1 ,变成2-3这样

注:作用于每一列,max为一列的最大值,min为一列的最小值,那么X''

为最终结果,mx,mi分别为指定区间值默认mx为1,mi为0

特征一

90         1

60 ----> 0

75        0.5

from sklearn.preprocessing import MinMaxScaler 

def mm():
     '''
     归一化处理

     '''
     #可指定范围
     mm=MinMaxScaler(feature_range=(2,3))
     data=mm.fit_transform([[90,2,10,40],
                            [60,4,15,45],
                            [75,3,13,46]])

     print(data)

if __name__=='__main__':
    mm()

标准化

'''

(x-mean)/v²

标准化不太容易受异常值的影响,只能说影响不太大

方差为0 意味着所有特征都一样 方差代表稳定性。 方差越大越离散,方差越小越相近

特点:通过对原始数据进行变换把数据变换到均值为0,方差为1范围内 并不是完全的均值为0,方差为1。相近的范围

求的是各特征的均值和方差。

from sklearn.preprocessing import StandardScaler
import numpy as np 
def stand():
    std=StandardScaler()
    data=std.fit_transform([[ 1, -1, 3],
                            [ 2, 4, 2],
                            [ 4, 6, -1]])

    print(data)
    print(std.mean_())
    return None

if __name__=='__main__':
    stand()

#数据的降维 把特征的数量给减少

# 例如 有几百个特征,没必要对全部的特征进行分析

#方法 :特征选择 主成分分析

#冗余 部分特征相关性高,会消耗计算机的性能

#特征选择的三大武器 Fliter(过滤):VarianceThreshold对方差进行过滤   Embedded(嵌入式):正则化、决策树

#Fliter 对方差进行过滤 如果方差为0 证明数据都一样那就没什么价值,方差的大小考虑特征的所有的特征数据情况

'''

[[0, 2, 0, 3],

[0, 1, 4, 3],

[0, 1, 1, 3]]

'''

from sklearn.feature_selection import VarianceThreshold



def var():
    #删除低方差的一些特征
    #特征数量就会减少

    var=VarianceThreshold(threshold=1.0)#类似是一个范围区间
    data=var.fit_transform([[0, 2, 0, 3], 
                            [0, 1, 4, 3], 
                            [0, 1, 1, 3]])
    print(data)
    return None


if __name__=='__main__':
    var()

'''

本质:PCA是一种分析、简化数据集的技术

目的:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。

作用:可以削减回归分析或者聚类分析中特征的数量

一般特征数量达到上百个或上千个时候,首先考虑要不要用pca去降维,减少特征,并不是删除某些特征,里面的数据

会改变,特征数量也会减少。

低纬度表示高纬度 会产生一些信息差异但是 数据会存在一些损失 仍然可代表原来的意思

pca要让信息损失尽可能最小

'''


 

#高纬度问题  :  特征之间容易出现一些相关的数据

'''

特征1   特征50

1        2

2        4

3        6

4        8

5        11

6        13

乘以2之后很相似。

PCA(n_components=None) 小数(百分比0-1) 0.9就是保留90%的信息通常90% - 95% 整数

将数据分解为较低维数空间


 

[[2,8,4,5],

[6,3,0,8],

[5,4,9,1]]

'''

from sklearn.decomposition import PCA

def pca():
    pca=PCA(n_components=0.9)
    data=pca.fit_transform([[2,8,4,5],
                            [6,3,0,8],
                            [5,4,9,1]])
    print(data)
    return None

if __name__=='__main__':
    pca()

'''

得到的结果没有实际的意义 ,只是降维

[[ 1.28620952e-15  3.82970843e+00]

 [ 5.74456265e+00 -1.91485422e+00]

 [-5.74456265e+00 -1.91485422e+00]]

 两个特征。

'''

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值