Artificial Intelligence机器学习实战人工智能/模式识别/机器学习精华专题

机器学习(19)——特征工程

2018-04-15  本文已影响413人  飘涯

前言:特征工程是机器学习的重点,他直接影响着模型的好坏。

数据收集

在进行机器学习之前,收集数据的过程中,我们主要按照以下规则找出我们所需 要的数据:

  1. 业务的实现需要哪些数据? 基于对业务规则的理解,尽可能多的找出对因变量有影响的所有自变量数据。
  2. 数据可用性评估 在获取数据的过程中,首先需要考虑的是这个数据获取的成本; 获取得到的数据,在使用之前,需要考虑一下这个数据是否覆盖了所有情况以及这个数 据的可信度情况。

数据清洗

数据不平衡

image.png

特征转换

特征转换主要指将原始数据中的字段数据进行转换操作,从而得到适合进行算法 模型构建的输入数据(数值型数据),在这个过程中主要包括但不限于以下几种数 据的处理:
文本数据转换为数值型数据
缺省值填充
定性特征属性哑编码
定量特征属性二值化
特征标准化与归一化

#-*- conding:utf-8 -*-
'''
亚编码,先把特征转为数字,再进行亚编码处理
'''
import numpy as np
import matplotlib as mpl
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import OneHotEncoder
path = "car.data"
data = pd.read_csv(path, header=None)
#查看数据
for i in range(7):
    print(np.unique(data[i]))
#将字符串转化为数字,用pd.Categorical
# pd.Categorical(data)
x=data.apply(lambda x:pd.Categorical(x).codes)
print(x.head(5))
#进行亚编码操作,toarray()方法转化为数组
en=OneHotEncoder()
x = en.fit_transform(x)
print(x.toarray())
print(en.n_values_)
#在进行转化
df=pd.DataFrame(x.toarray())
print(df.head(5))

增维

降维

以后再说

特征选择

当做完特征转换后,实际上可能会存在很多的特征属性,比如:多项式扩展转换、文本 数据转换等等,但是太多的特征属性的存在可能会导致模型构建效率降低,同时模型的 效果有可能会变的不好,那么这个时候就需要从这些特征属性中选择出影响最大的特征 属性作为最后构建模型的特征属性列表。
在选择模型的过程中,通常从两方面来选择特征:
特征是否发散:如果一个特征不发散,比如方差解决于0,也就是说这样的特征对于样本的 区分没有什么作用。
特征与目标的相关性:如果与目标相关性比较高,应当优先选择。
特征选择的方法主要有以下三种:


我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan
上一篇下一篇

猜你喜欢

热点阅读