zoukankan      html  css  js  c++  java
  • 数据预处理(归一化,标准化,特征选取,特征降维)

    #数据标准化
    #StandardScaler (基于特征矩阵的列,将属性值转换至服从正态分布)
    #标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,将样本的特征值转换到同一量纲下
    #常用与基于正态分布的算法,比如回归
    #数据归一化
    #MinMaxScaler (区间缩放,基于最大最小值,将数据转换到0,1区间上的)
    #提升模型收敛速度,提升模型精度
    #常见用于神经网络
    #Normalizer (基于矩阵的行,将样本向量转换为单位向量)
    #其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准
    #常见用于文本分类和聚类、logistic回归中也会使用,有效防止过拟合
    ss = MinMaxScaler ()
    #用标准化方法对数据进行处理并转换
    x_train = ss.fit_transform(x_train)
    x_test = ss.transform(x_test)
    print ("原始数据各个特征属性的调整最小值:",ss.min_)
    print ("原始数据各个特征属性的缩放数据值:",ss.scale_)
     
    #特征选择:从已有的特征中选择出影响目标值最大的特征属性
    #常用方法:{ 分类:F统计量、卡方系数,互信息mutual_info_classif
            #{ 连续:皮尔逊相关系数 F统计量 互信息mutual_info_classif
    #SelectKBest(卡方系数)
    ch2 = SelectKBest(chi2,k=3)#在当前的案例中,使用SelectKBest这个方法从4个原始的特征属性,选择出来3个
    #K默认为10
    #如果指定了,那么就会返回你所想要的特征的个数
    x_train = ch2.fit_transform(x_train, y_train)#训练并转换
    x_test = ch2.transform(x_test)#转换
    select_name_index = ch2.get_support(indices=True)
    print ("对类别判断影响最大的三个特征属性分布是:",ch2.get_support(indices=False))
    print(select_name_index)
     
    #降维:对于数据而言,如果特征属性比较多,在构建过程中,会比较复杂,这个时候考虑将多维(高维)映射到低维的数据
    #常用的方法:
    #PCA:主成分分析(无监督)
    #LDA:线性判别分析(有监督)类内方差最小,人脸识别,通常先做一次pca
    pca = PCA(n_components=2)#构建一个pca对象,设置最终维度是2维
    # #这里是为了后面画图方便,所以将数据维度设置了2维,一般用默认不设置参数就可以
    x_train = pca.fit_transform(x_train)#训练并转换
    x_test = pca.transform(x_test)#转换
     
    #模型的构建
    model = DecisionTreeClassifier(criterion='entropy',random_state=0, min_samples_split=10)#另外也可选gini
    #模型训练
    model.fit(x_train, y_train)
    #模型预测
    y_test_hat = model.predict(x_test)
     
  • 相关阅读:
    网站开发综合技术 一 JavaScript简介 二JavaScript语法
    网站开发综合技术 第二部分 CSS样式表
    网站开发综合技术 第一部分HTML 1.3.2表单
    网站开发综合技术 HTML
    C#基础 结构体 枚举类型
    C#基础 out传值
    C#基础 函数部分
    C#基础 特殊集合
    ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第一篇:准备工作
    ASP.Net中页面传值的几种方式
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/11377901.html
Copyright © 2011-2022 走看看