机器学习 - 特征工程知识点总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/apollo_miracle/article/details/88820219
* 人工智能:50年代:机械自动化生产

  * 机器学习:80年代:邮件分类
  * 深度学习:最近十年:图像识别

* 机器学习定义:

  * 数据
  * 自动分析获得规律
  * 对未知数据进行预测

* 为什么需要机器学习

  * 提高生产效率

* 机器学习应用场景

  * 用在挖掘、预测领域

  * 用在图像领域

  * 用在自然语言处理领域(语音)

* 特征工程

  * 意义:会直接影响机器学习的效果
  * 作用:筛选、处理选择一些合适的特征
  * 特征抽取
    特征预处理
    特征降维

* 数据集的组成:

  * 特征值:事物的一些特征(特点)
  * 目标值:最终要预测的结果

* 特征抽取

  * 将任意数据(如文本或图像,类别特征)转换为可用于机器学习的数字特征
  * sklearn.feature_extraction
  * 字段数据特征抽取
    * 目的:对特征当中有类别的信息做处理———>one-hot编码
    * dictvectorizer:默认返回sparse矩阵,sparse=False
    * DictVectorizer(sparse=False)
    * ['city=上海', 'city=北京', 'city=深圳', 'temperature']
    * [[  0.   1.   0. 100.]
       [  1.   0.   0.  60.]
       [  0.   0.   1.  30.]]
  * 文本特征抽取
    * get_feature_names() 返回值:单词列表
    * CountVectorizer(stop_words):
      * 单词列表:将所有文章的单词统计到一个列表当中(重复的词只当做一次),默认会过滤掉单个字母
      * 对于单个字母,对文章主题没有影响。单词可以有影响
      * 对每篇文章在词的列表:['dislike', 'is', 'life', 'like', 'long', 'python', 'short', 'too'], 统计出现额次数
      * 对于中文来讲:也不统计单个汉字,只能以符号隔开每个词语
      * stop_words:停止词
        * 这些词不能放映文章主题,词语性质比较中性
        * 因为、所以等等
    * **为了处理这种同一个词在很多篇文章当中出现的次数都比较多**
    * Tf-idf文本特征提取:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度
      * tf * idf
      * tf:词频(term frequency,tf)指的是某一个给定的词语在该文件中出现的频率
      * idf 由总文件数目除以包含该词语之文件的数目,再将得到的商取以10为底的对数得到
      * 5/100=0.05  * lg(1千万/1万)= 3 = 0.15
      * 对每篇文章的重要性排序,找到每篇前N个重要的词

* 特征预处理:基本的出局处理-缺失值处理(pandas)

  * 数值型数据:一些**转换函数将特征数据转换**成更加适合算法模型的特征数据过程
  * 特征预处理:sklearn.preprocessing
  * 原因:无量纲化: **特征的单位或者大小相差较大**,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,**使得一些算法无法学习到其它的特征**
  * 无量纲化最终结果:**使不同规格的数据转换到同一规格**
  * 

  * 归一化
    * 通过对原始数据进行变换把数据映射到(默认为[0,1])之间
    * sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )
    * 归一化容易受到异常数据影响,每个特征的最大值和最小值容易变化
  * **标准化**
    * 平均值、标准差
    * 对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变
      对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。
    * 作用:每列特征数据都聚集在均值0, 标准差为1范围

* 特征降维

  * 维度:特征的数量
  * **降低特征数量, 得到一些不相关的特征**
  * 相关特征(correlated feature):湿度与降雨量
  * 
  * 特征选择
    * Filter(过滤式):主要**探究特征本身特点**、**特征与特征**和目标值之间关联
      * 方差选择法:低方差特征过滤
        * 方差很小:所有样本的某个特征值基本上一样
        * 方差很大:所有样本的某个特征值的差异性比较大
        * 不太好选择这个方差的值,作为明显一些特征处理
      * 相关系数:皮尔逊相关系数(衡量两个特征之间的相关性)
        * 系数的值:[-1, 1]
        * |r|<0.4为低度相关;0.4≤|r|<0.7为显著性相关;0.7≤|r|<1为高度线性相关
        * from scipy.stats import pearsonr
        * 相关的特征必须做一些相应的处理(删掉其中一些,合成一个新的)
  * 主成分分析
    * 高维数据转化为低维数据的过程,在此过程中**可能会舍弃原有数据、创造新的变量(特征)**
    * 场景:
      * 特征数量非常大的时候(上百个特征):PCA去压缩,相关的、冗余的信息,防止高维度特征的计算量大
      * 创造新的变量(新的特征):revenue与指标total_expense压缩成一个特征
        * 'revenue', 'total_expense'这两个指标合成到一个    新的指标(特征)
  * 用户跟物品类别降维:
    * 合并表,使得user_id与aisle在一张表当中  pd.merge
    * 进行交叉表变换 pd.crosstab
    * 进行降维   PCA
  * 特征降维(选择、主成分分析):
    * **1、删除一些无用特征**
    * **2、找到特征之间相关的(删除,合成)**ß
    * 3、寻找特征与 目标值关系比较大

* 机器学习算法分类:

  * 监督学习:有特征值有目标值,有标准答案对比 
    * 两种数据类型(离散型、连续型)
    * 分类:目标值是离散型, 最基础的是二分类问题
    * 回归:目标值是连续型

  * 无监督学习:只有特征值,没有目标值
    * 聚类:K-means

猜你喜欢

转载自blog.csdn.net/apollo_miracle/article/details/88820219
今日推荐