是否有一种简单的方法来标记编码,然后使用列转换器进行热编码?

时间:2019-09-04 17:18:18

标签: python scikit-learn

我正在使用sklearn https://scikit-learn.org/stable/modules/generated/sklearn.compose.ColumnTransformer.html的柱式变压器

我认为这是管理不同缩放器的好工具。使生活更加轻松。但是,我不确定是否有一种方法可以进行分类值,因为我需要首先使用标签编码器,然后再对整数进行热编码。有什么对我有用的吗?我宁愿将所有缩放比例都放在一个列转换器中。它更容易管理。

2 个答案:

答案 0 :(得分:1)

sklearn.preprocessing.OneHotEncoder可以处理分类值,而无需将其预处理为import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; public class CreateExcel { public static void main(String[] args) { //Blank workbook XSSFWorkbook workbook = new XSSFWorkbook(); } } s:

int

输出:

from sklearn.preprocessing import OneHotEncoder

df = pd.DataFrame({'col1': ['a', 'b', 'c']})
ohe = OneHotEncoder(sparse=False)
ohe.fit_transform(df['col1'].values.reshape(-1, 1))

答案 1 :(得分:0)

一种选择是使用pd.get_dummies(...)中的pandas

In [10]: df = pd.DataFrame({'a': ['A', 'B', 'C']*3})

In [11]: df
Out[11]:
   a
0  A
1  B
2  C
3  A
4  B
5  C
6  A
7  B
8  C

In [12]: pd.concat([df, pd.get_dummies(df['a'], prefix='a')], axis=1)
Out[12]:
   a  a_A  a_B  a_C
0  A    1    0    0
1  B    0    1    0
2  C    0    0    1
3  A    1    0    0
4  B    0    1    0
5  C    0    0    1
6  A    1    0    0
7  B    0    1    0
8  C    0    0    1