5-06特征变换代码2

独热编码是在数字编码的基础上进行变换处理,所以第一步要进行labelencoding
(另外理解fix和transform)
知乎
python 的fit() transform()
fit()可以说是调用的通用方法。fit(X),表示用数据X来训练某种模型。 函数返回值一般为调用fit方法的对象本身。fit(X,y=None)为无监督学习算法,fit(X,Y)为监督学习算法
transform()在Fit的基础上,进行标准化,降维,归一化等操作
Fit_transform()fit_transform是fit和transform的组合,既包括了训练又包含了转换。
transform()和fit_transform()二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化,正则化等)
重点
第一步 fit_tranform(X_train):fit_transform(trainData)对部分数据(X_train)先拟合fit,找到该训练部分的整体指标,如均值、方差、最大值最小值,即我们已经找到了转换规则
第二步 tranform(X_test):直接将其运用到测试集上(甚至交叉验证集)对(X_test)进行转换transform,从而实现数据的标准化、归一化,保证train、test处理方式相同

import numpy as np
import pandas as pd
#定类数据(可能有定序数据)数值化方法
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
#第一种就是直接赋值
print(LabelEncoder().fit_transform(np.array(["Down","Up","Down","Up","Up"])))
#第二种就是独热的方法,第一步和第一种方法一样
lb_encoder=LabelEncoder()
lb_tran_f=lb_encoder.fit_transform(np.array(["Red","Yellow","Blue","Green"]))
#第二部操作调用独热的方法(一定要注意形式,需要reshape)
#fix就是我们已经找到了转换规则
oht_encoder = OneHotEncoder().fit(lb_tran_f.reshape(-1,1))
#transform就是运用到我们的测试集上(这里的数据要先经过第一种方法)
#稀疏矩阵是优特殊的存储方式,可以用toarray进行展示
print(oht_encoder.transform(lb_encoder.transform(np.array(["Red","Yellow","Blue","Green"])).reshape(-1,1)).toarray())

结果:

[0 1 0 1 1]
[[0. 0. 1. 0.]
 [0. 0. 0. 1.]
 [1. 0. 0. 0.]
 [0. 1. 0. 0.]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值