特征工程(1)特征工程的简介

特征工程入门与实践笔记

特征工程是什么

将数据转换为能更好的表示潜在问题的特征,从而提高机器学习性能

特征工程内容

转换数据的过程

特征工程适用于任何阶段的数据,通常将数据处理成表格形式,数据组织成行(观察值)列(属性)的形式。

特征

特征是对机器学习的过程有意义的数据属性。
无意义的只是普通属性,而有意义的才称之为特征

更好的表示潜在问题

需要使用的数据代表了某领域内的某问题,转换数据的目的是为了更好的表达更大的问题

提高机器学习性能

特征工程不仅需要获得更干净的数据,而且最重要在机器学习流水线中使用这些数据。
特征工程的目的是让我们获取更好的数据,以便学习算法从中挖掘模式,取得更好的效果

数据和机器学习的基础知识

监督学习(预测分析)

监督学习算法专门处理一个值的任务,通常是用数据中的其他属性来预测余下的一个属性

  • 响应(response):希望预测的属性
  • 特征(feature):剩余属性

也可以认为监督学习是一种利用数据结构的算法:利用漂亮的数据提取模式。 通过探索结构进行预测

漂亮的数据:使用特征工程处理的数据

无监督学习

从数据中提取结构,一般对数据的数值矩阵或迭代过程应用数学变换,提取新特征
例如聚类:从一堆数据中对一些相似的值,将其划分成为某一类,成为一个新的特征

机器学习算法和特征工程的评估

  • 特征和属性是有明显的区分的
    • 特征:对机器学习有益的类
    • 属性:表格数据的列(可能存在某些属性对机器学习系统不一定有益,甚至有害)

特征工程的评估步骤

  1. 在应用任何特征工程前,得到机器学习模型的基准性能
  2. 应用一种或多种特征工程
  3. 对于每种特征工程,获取一个性能指标,并与基准性能进行对比
  4. 如果性能的增量大于某个阈值(自己定义),则认为该特征工程有益,并在机器学习上应用
  5. 性能的改变一般按照百分比计算(基准性能从40%上升到76%的准确率,那么改变就是90%)

评估监督学习算法

将监督学习分为两种更具体的类型:分类和回归

分类(预测定性响应)

使用5折交叉验证计算逻辑回归模型的准确率

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
X = some_data_in_tabular_format
y = response_variable
lr = LinearRegression()
scores = cross_val_score(lr, X, y, cv=5, scoring='accuracy')
scores

回归(预测定量 响应)

使用均方误差(MSE)进行评估,使用五折交叉验证

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
X = some_data_in_tabular_format
y = response_variable
lr = LinearRegression()
scores = cross_val_score(lr, X, y, cv=5, scoring='mean_squared_error')
scores
  • 使用这两个线性模型的原因是因为可以更加确定,性能的增长直接和特征工程相关

评估无监督学习算法

因为无监督学习不做出预测,所以无法直接更具模型预测的准确率进行评估。

  • 聚类:将数据按特征行为进行分类
    • 主要使用轮廓系数作为测量指标
attributes = tabular_data
cluster_labels = outputted_labels_from_clustering

from sklearn.metrisc import silhouette_score
silhouette_score(attributes, cluster_labels)

统计检验

相关系数、t检验、卡方检验、以及其他方法评估并量化原始数据和转换后数据的的效果

特征理解

  • 结构化与非结构化数据
  • 数据的四个等级
  • 识别数据的缺失值
  • 探索性数据分析
  • 描述性统计
  • 数据可视化

特征增强:清洗数据

利用对数据的理解修改数据集,使用数据变换增强给定数据,但是并不删除或插入新数据

  • 对非结构化数据进行结构化
    判断数九是否具有机构,数据表格化工具
  • 数据填充-缺失数据填充
    • 删除缺失值
    • 在其他特征上进行机器学习,填充缺失值
    • 填充大量数据之后可以测量缺失值对机器学习算法的影响
  • 数据归一化:
    • 标准化(z分数标准化)
    • 极差法(min-max标准化)
    • L1和L2正则化(将数据投影到不同的空间)

特征选择

属性在何种程度上才能成为真正的特征
哪些列对机器学习没有帮助且有害,如何决定删除数据集中的哪些数据

  • 相关系数
  • 识别并移除多重共线性
  • 卡方检验
  • 方差分析
  • 理解p值
  • 迭代特征选择
  • 用机器学习测量熵和信息增益

特征构建

构建全新的特征,并正确插入数据集
目的:生成新的模式
构建特征来源:

  • 现有特征构建新特征,对现有特征进行转换,将结果向量和原向量放置在一起
  • 从其他系统中引入特征
    例如基于购物行为对顾客群进行聚类,加入人口普查数据
    - 该方法有可能增加这个步骤的维度,但是也经常会创造出一个非常密集、数据丰富的环境

如何通过高度非结构化的数据手动创建特征(文本-图像)

特征转换

自动创建特征,如果数据理解为一个n维空间的向量,考虑创建一个k维(k 其实就是降维算法:PCA主成分分析法或者LDA

特征学习:以AI促AI

用算法自动构建特征,以改善机器学习和AI流水线
尝试对数据进行理解和建模的一种架构,从而发觉数据的模式并创建新数据

  • 神经网络算法
  • RBM 受限玻耳兹曼机
  • Word2Vec算法

小节

  • 特征理解:学习如何事变定量数据和定性数据
  • 特征增强:清洗和填充缺失值,最大化数据集的价值
  • 特征选择:通过统计方法选择一部分特征,以减少噪声
  • 特征构建:构建新的特征,探索特征间的联系
  • 特征转换:提取数据中的盈仓结构,用数据方法转换数据集、增强效果
  • 特征学习:利用深度学习,以全新的视角看待数据,从而揭示新的问题,并解决

你可能感兴趣的:(特征工程,机器学习)