需要用到pandas这个包,调用请提前下载
这个就是用独热编码来替换离散值特征。
例如,“MSZoning”包含值“RL”和“Rm”我们将创建两个新的指示器特征“MSZoning_RL”和“MSZoning_RM”,其值为0或1。根据独热编码,如果“MSZoning”的原始值为“RL”,则:“MSZoning_RL”为1,“MSZoning_RM”为0。
首先假如一个数据集有六个样本,每个样本两种特征,数据保存在‘111.csv’中,其中feature1是文字特征,分别为“bak” “bif” “nig”,feature2是数字特征
直接上代码,演示其使用方法及作用
import pandas as pd
all_features = pd.read_csv('111.csv')
all_features = pd.get_dummies(all_features)
print(all_features)
从输出中可见,get_dummies函数直接将feature1的特征拆分成了3个特征,分别为feature1_bak、 feature1_bif、 feature1_nig,并将其对应项的特征值设为1,没有的设为0
函数中还有一个参数是dummy_na,其作用是:是否将“na”(缺失值)视为有效的特征值,并为其创建指示符特征。
dummy_na = false,就是不将“na”视为有效特征值,等于true就是将“na”视为一个特征值,并为其建立指示符特征。
以222.csv为例
all_features1 = pd.read_csv('222.csv')
all_features1 = pd.get_dummies(all_features, dummy_na=False)
print(all_features)
输出:并没有将nan作为一个特征值来看待,直接将其忽略
all_features1 = pd.get_dummies(all_features1, dummy_na=True)
print(all_features1)
输出: 将nan当作一种特征值,并为其建立feature1_nan特征