数据规约算法
属性规约方法
|
方法描述
|
方法解析
|
---|---|---|
主要成分分析 | 用较少变量取解释原始数据中得大部分变量,即将许多相关型很高得变量转化成彼此相互独立或不相关得变量 | |
决策树概括 | 利用决策树得概括方法对初始数据进行分类概括学习,得到一个初始决策树,全部没有出现再这个决策树上得属性都可认为是无关属性,所以将这些属性从初始集合中删除就能够得到一个较优得属性子集 | 初始属性集: {A1,A2,A3,A4,A5,A6} |
合并属性 | 将一些旧属性合并为新属性 | 初始属性集: {A1,A2,A3,A4,B1,B2,B3,C}数据库 {A1,A2,A3,A4} -→Aapp {B1,B2,B3,B4}-→Bdom ===>规约后属性集:{A, B, C}函数 |
逐步向前选择 | 从一个空属性集开始,每次从原来属性集合中选择一个当前最优得属性添加到当前属性子集中.直到没法选择出最优属性或知足必定阈值约束为止 | 初始属性集: {A1,A2,A3,A4,A5,A6} {}=>{A1}=>{A1,A4} =>规约后属性集:{A, B, C} |
逐步向后删除 | 从一个全属性集开始,每次从当前属性子集真能干选择一个当前最优得属性添加到当前属性子集中.直到没法选择出最差属性为止或知足必定阈值约束为止 | 初始属性值: {A1,A2,A3,A4,A5,A6} {}=>{A1,A3,A4,A5,A6}=>{A1,A4,A5,A6}=>规约后属性集:{A1,A4,A6} |
import pandas as pd from sklearn.decomposition import PCA data = pd.read_csv("principal_component.csv", header=None) pca = PCA() # 实例化PCA这个类 pca.fit(data) # 训练数据 pca.components_ # 返回模型得各个向量特征 pca.explained_variance_ratio_ # 返回各个成分各自得方差百分比 获得相应得特征向量和各个方差得百分比(也称贡献率),其中方差备份逼越大,向量得权重越大,当选中其中得几个主要得成分时,累计贡献量达到97.37%, 说明选取这几个成分已经至关不错了,所以能够从新创建PCA模型,选取n_components=以前选取得成分数,从而计算出成分结 pca = PCA(3) pca.fit(data) low_d = pca.transform(data) # 下降原数据得维度 pd.DataFrame(low_d).to_csv("dimention_reducted.csv") # 保存结果 pca.inverse_transform(low_d) # 必要能够用inverse_trans_form()函数来复原数据
函数名
|
函数功能
|
所属扩展库
|
---|---|---|
interpolate | 一维,高维书插值 | scipy |
unique | 去除数据中得重复元素,获得单值元素列表,它是对象得方法名 | Pandas/Numpy |
isnull | 判断是否为空值 | pandas |
notnull | 判断是否非空值 | pandas |
PCA | 对指标表变量矩阵进行主成分分析 | Scikit-Learn |
random | 生成随机矩阵 | Numpy |
interpolate学习
# -*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding("utf-8") import numpy as np from sklearn.decomposition import PCA D = np.random.rand(10, 4) pca = PCA() # 创建模型 pca.fit(D) # 训练模型 PCA(copy=True, n_components=None, whiten=False) print pca.components_ # 返回模型得各个特征向量 print pca.explained_variance_ratio_ # 返回各个成分各自得方差百分比