📜  如何在Python中将分类特征转换为数值特征?

📅  最后修改于: 2022-05-13 01:54:28.748000             🧑  作者: Mango

如何在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_ 属性。

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"]))

输出: