数据特征工程简单入门

什么是数据类型

  • 离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所有这些数据全部都是整数,而且不能再细分,也不能进一步提高他们的精确度。
  • 连续型数据:变量可以在某个范围内取任一数,即变量的取值可以是连续的,如,长度、时间、质量值等,这类整数通常是非整数,含有小数部分。

只要记住一点,离散型是区间内不可分,连续型是区间内可分

特征工程是什么

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

  • 直接影响模型的预测结果

sklearn特征抽取API

sklearn.feature_extraction
sklearn.feature_extraction.DictVectorizer 对字典数据进行特征抽取

DictVectorizer.fit_transform(X)       
	X:字典或者包含字典的迭代器
	返回值:返回sparse矩阵
DictVectorizer.inverse_transform(X)
	X:array数组或者sparse矩阵
	返回值:转换之前数据格式
DictVectorizer.get_feature_names()
	返回类别名称
DictVectorizer.transform(X)
	按照原先的标准转换

from sklearn.feature_extraction import DictVectorizer

data = DictVectorizer(sparse=True)  # 实例化类
    dic = data.fit_transform([{'city': '北京', 'temperature': 100},
                              {'city': '上海', 'temperature': 60},
                              {'city': '深圳', 'temperature': 30}]
                             )  # 返回值是sparse矩阵
print(data.get_feature_names())  # 返回需要转换的数据
# ['city=上海', 'city=北京', 'city=深圳', 'temperature']

print(data.inverse_transform(dic))  # 返回转换之前的数据格式
# [{'city=北京': 1.0, 'temperature': 100.0}, {'city=上海': 1.0, 'temperature': 60.0}, {'city=深圳': 1.0, 'temperature': 30.0}]

print(dic)
"""(0, 1)	1.0
   (0, 3)	100.0
   (1, 0)	1.0
   (1, 3)	60.0
   (2, 2)	1.0
   (2, 3)	30.0
"""

以下为最后结果出现的推导

['city=上海', 'city=北京', 'city=深圳', 'temperature'] #是需要转换的数据

[{'city=北京': 1.0, 'temperature': 100.0}, {'city=上海': 1.0, 'temperature': 60.0}, {'city=深圳': 1.0, 'temperature': 30.0}]
# 是之前的数据
会形成一个相当于二维表的DataFrame数据结构


第一条数据是{‘city=北京’: 1.0, ‘temperature’: 100.0}
第二条数据是{‘city=上海’: 1.0, ‘temperature’: 60.0}
第三条数据是{‘city=深圳’: 1.0, ‘temperature’: 30.0}

上海 北京 深圳 temperature
0 0 1 0 100
1 1 0 0 60
2 0 0 1 30

最后结果代表的意思就是

   (0, 1)	1.0     # 根据(0,1)坐标查询到北京  
   (0, 3)	100.0	#根据(0,3)坐标查询到北京的temperature为100
   (1, 0)	1.0  # 根据(1,0)查询到上海
   (1, 3)	60.0  # 根据(1,3)查询到温度60
   (2, 2)	1.0   #....
   (2, 3)	30.0

你可能感兴趣的:(机器学习,python)