【零基础学习机器学习】数据的特征工程 (介绍及代码)

目录

1.特征工程是什么

2.特征工程的意义

3.scikit-learn库的介绍

4.数据的特征抽取

1、特征抽取实例演示

2、sklearn特征抽取API

3、字典特征抽取

4、文本特征抽取

5.数据的特征预处理

归一化

标准化

缺失值处理

6.数据的降维

方式一:特征选择

方式二:主成分分析

sklearn主成分分析API

PCA(主成分分析)是什么


1.特征工程是什么

特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的预测准确性。

2.特征工程的意义

直接影响预测结果

3.scikit-learn库的介绍

创建一个基于python3的虚拟环境
mkvirtualenv -p /usr/bin/python3.6 ml3
在虚拟环境中运行以下命令
pip3 install Scikit-learn
通过导入命令查看是否可以使用
import sklearn
注:安装scikit-learn需要Numpy,pandas等库

4.数据的特征抽取

1、特征抽取实例演示

得出结论: 特征抽取对文本等数据进行特征值化

注:特征值化是为了计算机更好的理解数据

2、sklearn特征抽取API

sklearn.feature_extraction

3、字典特征抽取

把字典中一些类别数据,分别进行转换成特征

作用:对字典数据进行特征值化

类: sklearn.feature_extraction.DictVectorlzer

演示:

说明:

sparse矩阵:scipy库(对numpy库进行封装的一个库)的默认数据格式就是sparse矩阵。

其存在的目的:节约内存,方便读取处理

以上sparse矩阵对应的ndarray数组是:

one-hot编码概念:

把数据处理成0,1的矩阵形式,如下:

在机器学习中的意义:把类别数据转换成数值型,方便分析。

4、文本特征抽取

作用:对文本数据进行特征值化

两种方式:1.统计每个词在每篇文章出现的次数 2.在第一种的方式上,另外评估词的重要程度

类:sklearn.feature_extraction.text.CountVectorizer

类:sklearn.feature_extraction.text.TfidfVectorizer   (分类机器学习算法的重要依据)


第一种方式演示:

注意:利用toarray()进行sparse矩阵转换array数组

对于中文文本,需要把中文进行分词处理。如下:

第二种方式演示:

5.数据的特征预处理

1、特征处理的方法

    特征处理是什么: 通过特定的统计方法(数学方法)将数据转换成算法要求的数据

    

数据类型数据处理方法
数值型数据标准缩放1、归一化
2、标准化
3、缺失值
类别型数据one-hot编码
时间类型时间的切分

2、sklearn特征预处理API

sklearn.preprocessing:所有的预处理方法都在这个模块

归一化

sklearn归一化API:sklearn.preprocessing.MinMaxScaler

归一化的场景:当一些特征同等重要的时候,进行归一化

归一化的目的:使某个特征不会对结果造成更大影响

标准化

场景:使某个异常特征值不会对结果造成更大影响

特点:通过对原始数据进行变换,把数据变换到均值为0,标准差为1(下图有误)

总结:在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据的场景

sklearn特征化API:sklearn.preprocessing.StandardScaler

演示:

缺失值处理

另外缺失值可以用pandas进行处理(dropna、fillna方法),前提是缺失值的类型必须是np.nan(nan是浮点类型)

在pandas中处理有:replace("?", np.nan)

删除如果每列或行数据缺失达到一定的比例,建议放弃整行或者整列
插补可以通过缺失值每行或每列的平均值、中位数来填充(一般按照每列,按照特征)

sklearn缺失值API:sklearn.preprocessing.Imputer

演示:

6.数据的降维

数据的降维:指减少特征的数量

降维的方式:

1、特征选择

2、主成分分析

方式一:特征选择

1、特征选择是什么

特征选择:单纯地从提取到的所有特征中选择部分特征作为训练集特征。

主要方法(三大武器):Filter(过滤式):VarianceThreshold      -- Variance:方差  

 ---- 通过方差大小,看出所有样本的这个特征的数据情况(比如方差为0,证明这一特征的数值是一样的,对预测数据没有意义)

                                       Embedded(嵌入式):正则化、决策树

                                       Wrapper(包裹式)  一般不用

特征选择原因:

    冗余:部分特征的相关度高,容易消耗计算性能

    噪声:部分特征对预测结果有影响

2、sklearn特征选择API

sklearn.feature_selection.VarianceThreshold

演示:

3、其他特征选择方法

神经网络(后面讲)

方式二:主成分分析

sklearn主成分分析API

sklearn.decomposition

PCA(主成分分析)是什么

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

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

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

PCA应用场景:当特征数量达到上百的时候,要考虑简化数据(减少特征)-- 数据会改变,特征数量会减少

                         高维度数据容易出现的问题:特征之间通常是相关的

注意:参数n_components的取值有两种:

1.小数:取值范围是0~1,代表数据进行PCA主成分分析之后,保存了%比的信息量,一般我们会把信息保留在90%~95%

2.整数:减少到的特征数量。我们可能拿不准到底保留到多少个特征数量,一般不用整数表示。

演示:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值