#Python3组数据挖掘实战总结 6、7章#

数据挖掘实战

特征工程

数据处理

Data vs Feature

  • 列:特征

从原始数据中提取特征供算法和模型使用

  • 特征越好,灵活性越强
  • 特征越好,模型越简单
  • 特征越好,性能越出色

特征工程:

  • 数据处理
  • 统一量纲:标准化,归一化
  • 虚拟变量
  • 缺失值填充
  • 特征选择
  • 维度压缩

0-1标准化

线性变化,$\frac{x-min}{max-min}$

Z标准化

均值和标准差进行数据的标准化,$\frac{x-\overline{x}}{\Sigma_i(x_i-\overline{x})^2}$

Normalizer归一化

单位范数,$\frac{x}{\Sigma_i(x_i)^2}$

虚拟变量

哑变量转换,get_dummies

缺失值

原因

  • 无法获取
  • 遗漏
  • 处理错误

解决办法

  • 数据补齐
  • 删除缺失行
  • 不处理

特征选择

  • 是否发散

即看变量是否有区分度,通过方差选择。[选择方差大于阈值]

  • 是否相关

考察特征值与目标值的相关系数

  • 递归特征消除法

进行多轮训练,保留指定的特征数

  • 模型选择法 (有待深入了解原理)

建好的模型对象传入选择器,根据建好的模型,自动选择最好的特征值

维度压缩

  • 主成分分析 Principal Components Analysis

PCA API

from sklearn.decomposition import PCA

聚类

  • 聚类分析:无监督学习,无分类目标变量

按照个体特征进行分类,同一类别的个体之间具有较高的相似度

指标

  • Q型聚类,样本、聚类

距离:欧氏距离,欧式平方距离,马氏距离etc

  • R型聚类,指标、变量

相似系数:皮尔逊相关系数、夹角余弦、指数相似系数etc

常用方法

  • K-Means
  • DBSCAN密度
  • 层次聚类

K-Means

利用均值把数据分成K类

  • K类
  • Means均值

目标:把N个样本点划分到K类中,是的每个点都属于它最近的质心对应的类

sklearn.cluster.Kmeans(n_clusters=8)
fit(data)
preict(data)#课程中未介绍,后续加深了解

DBSCAN密度

Density-Based Spatial Clustering of Application with Noise

  • 密度
  • 领域(指相邻的点?)
  • 核心点
  • 边界点
  • 噪声点
model=sklearn.cluster.DBSCAN(eps, min_samples)
model.fit_predict(data)

层次聚类

Hierarchical Clustering
树聚类,层次架构反复聚合

linkage = scipy.cluster.hierarchy.linkage(data,method='single')
# single/complete/centroid
scipy.cluster.hierarchy.dendrogram(linkage)
scipy.cluster.hierarchy.fcluster(linkage,n,criterion='maxclust')

你可能感兴趣的:(#Python3组数据挖掘实战总结 6、7章#)