赞
踩
数据结构大部分为:特征值+目标值,但是也有些数据没有目标值。在机器学习中常常使用pandas来进行数据的处理以及基本格式的调节。
一般情况下,能反映出目标所存在的特征的数值为特征值。例如:我们要判断一个人的性别,则特征值为身高、体重、长发短发等。这些特征有些可以反映出一些目标值的主要特点,但是有些特征值则不是很明显,例如长发短发等。所以我们在进行预测时往往需要对特征值进行一下筛选。
目标值是我们所要判断或预测的一些属性,例如上文所提及的性别等。
特征工程是一个将原始数据处理成能够反映出模型潜在问题的特征。通过特征工程可以提高模型的预测效果。对于数据处理,我们常常使用scikit-learn来对特征进行处理。一个模型的好坏,往往取决于特征的处理,说以在机器学习中,这一步是极为重要的。
在sklearn中,我们可以用sklearn.feature_extraction这一api进行特征的抽取
from sklearn.feature_extraction import DictVectorizer def main(): """ 字典的特征抽取 :return: """"" # 实例化 dict = DictVectorizer(sparse=False) # 需要抽取的字典数据 message = [{"name": "小明", "weight": 100}, {"name": "张三", "weight": 60}, {"name": "李四", "weight": 70}] # 调用fit_transform data = dict.fit_transform(message) print(dict.get_feature_names()) print(data)
以上为字典特征抽取的主要代码
输出的结果为:
['name=小明', 'name=张三', 'name=李四', 'weight']
[[ 1. 0. 0. 100.]
[ 0. 1. 0. 60.]
[ 0. 0. 1. 70.]]
对以上的结果做出解释:
数组中的第一行[ 1. 0. 0. 100.]为’name=小明’,‘weight’=100的特征数值的解释,如果name是张三,则用1进行表示,否则为零,但是对于像体重这样的数值形式,则不做转变。第二行是张三的解释以此类推。这种数组的形式为one-hot编码。这形式有利于机器学习的进行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。