如何在Python中将分类特征转换为数值特征?
很难创建不能具有具有分类值的特征的机器学习模型,这样的模型无法函数。分类变量具有字符串类型的值。因此我们必须将字符串值转换为数字。这可以通过基于类别创建新特征并为其设置值来实现。在本文中,我们将了解如何在Python中将分类特征转换为数值特征
逐步实施
第一步:导入必要的包和模块
Python3
# import packages and modules
import numpy as np
import pandas as pd
from sklearn import preprocessing
Python3
# import the CSV file
df = pd.read_csv('cluster_mpg.csv')
print(df.head())
Python3
df.info()
Python3
label_encoder = preprocessing.LabelEncoder()
label_encoder.fit(df["origin"])
Python3
# finding the unique classes
print(list(label_encoder.classes_))
print()
Python3
# values after transforming the categorical column.
print(label_encoder.transform(df["origin"]))
第 2 步:导入 CSV 文件
我们将使用 pandas read_csv() 方法来导入 CSV 文件。要查看和下载使用的 CSV 文件,请单击此处。
Python3
# import the CSV file
df = pd.read_csv('cluster_mpg.csv')
print(df.head())
输出:
第 3 步:获取具有分类值的所有特征
我们使用 df.info() 来查找分类特征。分类特征将 Dtype 作为“对象”。
Python3
df.info()
输出:
在给定的数据库列中,“origin”和“name”是对象类型。
第 4 步:将原始列的字符串值转换为数值
我们将使用 preprocessing.LabelEncoder().fit() 方法拟合“origin”列。
Python3
label_encoder = preprocessing.LabelEncoder()
label_encoder.fit(df["origin"])
第 5 步:从分类特征中获取唯一值
为此,我们将使用 label_encoder.classes_ 属性。
classes_:ndarray of shape (n_classes,)
Holds the label for each class.
Python3
# finding the unique classes
print(list(label_encoder.classes_))
print()
输出
['europe', 'japan', 'usa']
第 6 步:转换分类值
Python3
# values after transforming the categorical column.
print(label_encoder.transform(df["origin"]))
输出: