gpt4 book ai didi

machine-learning - scikit learn 中序数数据和分类数据作为标签的区别

转载 作者:行者123 更新时间:2023-11-30 09:39:17 28 4
gpt4 key购买 nike

我知道作为功能 ordinal data could be assigned arbitrary numbers and OneHotEncoding could be done for categorical data 。但我有点困惑,当这两类数据是要预测的特征时,应该如何处理它们。例如,在 scikitlearn 的 iris 数据集中:

iris = datasets.load_iris()
X = iris.data
y = iris.target

虽然 y 代表三种类型的花,这是一个分类数据(如果我没记错的话?!),它被编码为 0,1,2 的序数值(type=int32)。我的数据集还包括 3 个独立的类别(“生病”、“携带者”、“健康”),scikitlearn 接受它们作为字符串,无需任何类型的编码。

我想知道保留它们是否正确,因为它们将由 scikitlearn 使用,或者需要对 iris 数据集进行类似的编码?

最佳答案

您不需要对标签进行编码。 scikitlearn 会处理它。用于构建分类器的同一个表:

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
X, y = load_iris(return_X_y=True)
clf = LogisticRegression(random_state=0).fit(X, y)
clf.predict(X[:2, :])
clf.predict_proba(X[:2, :])
clf.score(X, y)

我只是制作一个较小的表格并将标签从整数更改为字符串:

X1 = X[:5]
y1 = y[:5]
y1 = ['a', 'a', 'a','b', 'a']
clf = LogisticRegression(random_state=0).fit(X1, y1)
clf.predict(X1[:2, :])
clf.predict_proba(X1[:2, :])
clf.score(X1, y1)

一切都好。

关于machine-learning - scikit learn 中序数数据和分类数据作为标签的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59974434/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com