机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。(本文是个人的笔记,有些内容是引用)
有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。说白了特征工程就是将你自己收集到的数据转化为算法需要的数据形式。下图是一个例子
接下来介绍几种比较常见的特征抽取
字典特征抽取(使用sklearn)
字典数据抽取:把字典中一些类别数据,分别进行转换成特征,对于本来就是数值型的数据比如说温度等直接保留,而对于有类别的数据则要先转化为字典数据,sklearn中采用one-hot编码的方式处理。
下面是one-hot编码的举例:
原字典
{'city':'北京','temperature':100},{'city':'上海','temperature':20},{'city':'杭州','temperature':90}
one-hot编码后的字典:
{'city=北京': 1.0, 'temperature': 100.0}, {'city=上海': 1.0, 'temperature': 20.0}, {'city=杭州': 1.0, 'temperature': 90.0}
经过sklearn处理后转化成的数组: