我已将分类变量编码为数值。正如我们所知,为了向 SVM 或 KNN 等线性算法提供值,我们会缩放具有较大变化的列的值。
我有三个标签编码列,其中一个具有 1-3 的唯一值,另一个具有 1-150,另一个具有 0,1,-1,其中 -1 表示缺失值。MinMaxScaler 将如何影响这里?或者不需要缩放这些列?如果没有,我怎样才能避免这些特定的列?通常我们缩放整个数据框。
PS我正在使用LinearSVC算法。
我已将分类变量编码为数值。正如我们所知,为了向 SVM 或 KNN 等线性算法提供值,我们会缩放具有较大变化的列的值。
我有三个标签编码列,其中一个具有 1-3 的唯一值,另一个具有 1-150,另一个具有 0,1,-1,其中 -1 表示缺失值。MinMaxScaler 将如何影响这里?或者不需要缩放这些列?如果没有,我怎样才能避免这些特定的列?通常我们缩放整个数据框。
PS我正在使用LinearSVC算法。
听起来您应该使用 OneHotEncoder 而不是 LabelEncoder,因为您正在尝试对非序数数据(例如缺失值)进行编码。此外,一个热编码值不会受到 MinMaxScaler 的影响,所以应该没问题。
MinMaxScaling 是否有意义取决于类别。如果您的类别是有序的,例如 [1,2,3] 是 [低、中、高],那么使用带有 MinMaxScaler 的 LabelEncoder 仍然有意义。
但是,如果您有非序数分类值,例如 [-1,0,1] 表示 [MISSING, DOG, CAT],那么最好使用 OneHotEncoder 而不是使用 LabelEncoder 强制序数。否则,您将使用的算法将假设 MISSING-DOG 的距离比 MISSING-CAT 长,这是没有意义的。