引导序数编码技术
在数据科学领域进行建模之前,数据准备是必要的步骤。在数据准备过程中,我们必须执行许多活动。其中一项重要的任务是对分类数据进行编码。众所周知,现实世界中的大多数数据都具有分类字符串值,而大多数机器学习模型仅使用整数值进行操作。但是,某些模型可以使用其他更复杂但仍然可以被模型理解的值。从本质上讲,所有模型都执行可以使用各种工具和方法完成的数学运算。但可怕的事实是,数学完全依赖于数字。总之,大多数模型需要数字而不是单词或其他类型的输入,这些数字可能是浮点数或整数。在本文中,我们将讨论编码和序数编码方法。
什么是编码?
编码是将分类数据转换为整数格式的过程,以便模型可以使用转换后的分类值来生成和改进预测。
实现序数编码
当数据中的变量为序数时,使用序数编码,它将每个标签转换为一个整数值,并在编码数据中描绘标签的顺序。
示例
以下是如何在 Python 中执行此操作的示例。
#Installation !pip install sklearn import pandas as pd import sklearn !pip install category_encoders import category_encoders as ce df=pd.DataFrame({'height':['tall','medium','short','tall','medium',' short','tall','medium','short',]}) # create object of Ordinalencoding encoder= ce.OrdinalEncoder(cols=['height'],return_df=True, mapping=[{'col':'height', 'mapping':{'None':0,'tall':1,'medium':2,'short':3}}]) #Original data print(df) df['transformed'] = encoder.fit_transform(df) print(df)
输出
height 0 tall 1 medium 2 short 3 tall 4 medium 5 short 6 tall 7 medium 8 short height transformed 0 tall 1 1 medium 2 2 short 3 3 tall 1 4 medium 2 5 short 3 6 tall 1 7 medium 2 8 short 3
独热编码
在独热编码中,每个分类变量的每个类别都会收到一个新的变量。每个类别都使用二进制整数(0 或 1)进行映射。当数据为名义数据时,使用这种类型的编码。虚拟变量可以被认为是新生成的二进制特征。热编码后使用的虚拟变量的数量取决于数据中包含多少个类别。以下是如何在 Python 中执行此操作的示例。
示例
!pip install sklearn import pandas as pd import sklearn !pip install category_encoders import category_encoders as ce df=pd.DataFrame({'name':[ 'rahul','jay','aman','devesh','ashok','shubham','amit' ]}) encoder=ce.OneHotEncoder(cols='name',handle_unknown='return_nan',ret urn_df=True,use_cat_names=True) #Original Data print(df) #Fit and transform Data df_encoded = encoder.fit_transform(df) print(df_encoded)
输出
name 0 rahul 1 jay 2 aman 3 devesh 4 ashok 5 shubham 6 amit name_rahul name_jay name_aman name_devesh name_ashok name_shubham \ 0 1.0 0.0 0.0 0.0 0.0 0.0 1 0.0 1.0 0.0 0.0 0.0 0.0 2 0.0 0.0 1.0 0.0 0.0 0.0 3 0.0 0.0 0.0 1.0 0.0 0.0 4 0.0 0.0 0.0 0.0 1.0 0.0 5 0.0 0.0 0.0 0.0 0.0 1.0 6 0.0 0.0 0.0 0.0 0.0 0.0 name_amit 0 0.0 1 0.0 2 0.0 3 0.0 4 0.0 5 0.0 6 1.0
结论
总之,我们可以说编码在机器学习中起着重要作用。大多数情况下,现实世界的挑战要求我们仅选择一种编码技术,以便模型能够正常工作。使用各种编码器可以改变模型的输出。在这篇文章中,我们已经看到了各种编码技术以及如何使用 category encoders 包和 Python 来应用它们。
广告