数据预处理_编码

一、one-hot

二、 label标签编码

“”"
Created on Sun Dec 25 11:57:07 2022

@author: niuzhen
“”"
#一、one——hot编码 ,将特征向量中的特征进行编码,并得到索引值
import numpy as np
from sklearn import preprocessing
data=np.array([[1,1,2],[0,2,3],[1,0,1],[0,1,0]])
print(“初始数组为:\n”,data)
#编码
encoder=preprocessing.OneHotEncoder()
encoder.fit(data)

#转换数组[1,2,3]
encoded_vector=encoder.transform([[1,2,3]]).toarray()
print(“[1,2,3]转换后的数组为:\n”,encoded_vector)

#二、标签编码
#创建对象
label_encoder=preprocessing.LabelEncoder()
input_classes=[‘audi’,‘ford’,‘bmw’,“toyota”,“changcheng”,“changan”]
label_encoder.fit(input_classes)
print(“class mapping:\n”)
for i,item in enumerate(label_encoder.classes_):
print(item,“–>”,i)

#测试
print(“测试:\n”)
labels=[‘ford’,‘audi’]
encoded_lables=label_encoder.transform(labels)
print(“labels={},转换后为:{}”.format(labels,encoded_lables))

encoded_lables2=[2,1,0,3,1,4]
decoded_lables=label_encoder.inverse_transform(encoded_lables2)
print(“需要解码数组为:{}\n;解码后的数据为:{}”.format(encoded_lables2,decoded_lables))

运行结果

runfile(‘D:/BaiduNetdiskDownload/python 机器学习经典实例第二版/未命名3.py’, wdir=‘D:/BaiduNetdiskDownload/python 机器学习经典实例第二版’)
初始数组为:
[[1 1 2]
[0 2 3]
[1 0 1]
[0 1 0]]
[1,2,3]转换后的数组为:
[[0. 1. 0. 0. 1. 0. 0. 0. 1.]]
class mapping:

audi --> 0
bmw --> 1
changan --> 2
changcheng --> 3
ford --> 4
toyota --> 5
测试:

labels=[‘ford’, ‘audi’],转换后为:[4 0]
需要解码数组为:[2, 1, 0, 3, 1, 4]
;解码后的数据为:[‘changan’ ‘bmw’ ‘audi’ ‘changcheng’ ‘bmw’ ‘ford’]

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