python - 我应该将目标类转换为浮点数还是整数?
问题描述
在sklearn
中,我应该将target class
as 转换为integer or float
吗?它会有所作为吗?
我问是因为我正在训练 a并在这个Neural Network
问题中读到,将一个类转换为浮点数可能会导致问题。
然后根据this question我认为答案是Integer
,但我想知道是否是这种情况以及为什么。
解决方案
在 Scikit-learn 中,将目标类强制转换为 float 或 int 类型(甚至是字符串,请参阅:Is numeric encoding required for the target variable in classification?)是无所谓的,它们都是允许的。您只需要注意分类目标将保持与输入相同的类型,因此如果您的输入是浮点类型,您将获得预测的浮点向量(参见:https ://scikit-learn.org/stable /tutorial/basic/tutorial.html#type-casting)。
在此示例中,您将直接验证如何KNeighborsClassifier
生成相同的类预测(但具有不同的数据类型,具体取决于目标类输入类型):
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
data = load_iris()
(X_train, X_test,
y_train, y_test) = train_test_split(data.data,
data.target,
test_size=0.33,
random_state=42)
neigh = KNeighborsClassifier(n_neighbors=3)
neigh.fit(X_train, y_train.astype(int))
int_preds = neigh.predict(X_test)
neigh.fit(X_train, y_train.astype(float))
float_preds = neigh.predict(X_test)
print(int_preds.dtype, float_preds.dtype)
print("Same classes:", (int_preds == float_preds).all())
推荐阅读
- javascript - Javascript:保存 getUserMedia() 图像
- reactjs - 使用 Redux 的 Material UI AutoSuggest
- c# - ChromeDriver 超时 - 我该如何解决?
- dialogflow-es - 检测序数复数
- django - 带有 vuejs 和 django restframework 和 restauth 的 django-webpack-loader 的身份验证问题
- python - 从网页上的不同链接获取信息,并使用 Python 中的 pandas、bs4 将它们写入 .xls 文件
- c++11 - 如何初始化不可移动和不可复制的类成员 - boost::optional
- python - iPhone 上的 Django YouTube API 上传失败
- css - 如何在网页上显示带框的数字字符
- api - 仅搜索 Vimeo 评论