标签编码和独热编码中的for循环

我的数据集包含分类变量,因此我使用了标签编码和独热编码,我的代码如下

我可以使用循环来确保我的代码包含更少的行数吗?

from sklearn.preprocessing import LabelEncoder, OneHotEncoderlabelencoder_X_0 = LabelEncoder()X[:, 0] = labelencoder_X_0.fit_transform(X[:, 0])labelencoder_X_1 = LabelEncoder()X[:, 1] = labelencoder_X_1.fit_transform(X[:, 1])labelencoder_X_2 = LabelEncoder()X[:, 2] = labelencoder_X_2.fit_transform(X[:, 2])labelencoder_X_3 = LabelEncoder()X[:, 3] = labelencoder_X_3.fit_transform(X[:, 3])labelencoder_X_4 = LabelEncoder()X[:, 4] = labelencoder_X_4.fit_transform(X[:, 4])labelencoder_X_5 = LabelEncoder()X[:, 5] = labelencoder_X_5.fit_transform(X[:, 5])labelencoder_X_6 = LabelEncoder()X[:, 6] = labelencoder_X_6.fit_transform(X[:, 6])labelencoder_X_7 = LabelEncoder()X[:, 7] = labelencoder_X_7.fit_transform(X[:, 7])labelencoder_X_8 = LabelEncoder()X[:, 8] = labelencoder_X_8.fit_transform(X[:, 8])labelencoder_X_13 = LabelEncoder()X[:, 13] = labelencoder_X_13.fit_transform(X[:, 13])labelencoder_X_14 = LabelEncoder()X[:, 14] = labelencoder_X_14.fit_transform(X[:, 14])labelencoder_X_15 = LabelEncoder()X[:, 15] = labelencoder_X_15.fit_transform(X[:, 15])labelencoder_y_16 = LabelEncoder()y[:, ] = labelencoder_y_16.fit_transform(y[:, ])onehotencoder = OneHotEncoder(categorical_features = [1])X = onehotencoder.fit_transform(X).toarray()X = X[:, 1:]onehotencoder = OneHotEncoder(categorical_features = [14])X = onehotencoder.fit_transform(X).toarray()X = X[:, 1:]onehotencoder = OneHotEncoder(categorical_features = [27])X = onehotencoder.fit_transform(X).toarray()X = X[:, 1:]onehotencoder = OneHotEncoder(categorical_features = [29])X = onehotencoder.fit_transform(X).toarray()X = X[:, 1:]onehotencoder = OneHotEncoder(categorical_features = [38])X = onehotencoder.fit_transform(X).toarray()X = X[:, 1:]onehotencoder = OneHotEncoder(categorical_features = [40])X = onehotencoder.fit_transform(X).toarray()X = X[:, 1:]

我如何使用for循环来优化代码行数?请帮助我!


回答:

当然可以!我建议使用字典来存储你的编码器

label_encoders = {}categorical_columns = [0, 1, 2, 3]  # 如果你使用的是pandas,我建议使用列名。如果使用的是numpy,则使用range(n)for column in categorical_columns:    label_encoders[column] = LabelEncoder()    X[column] = label_encoders[column].fit_transform(X[column])  # 如果使用的是numpy而不是pandas,请使用X[:, column]

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注