我是python和sklearn的新手。我有一个庞大数据集的熊猫数据框。我希望它用于sklearn后勤预测。
我尝试了以下
data_np = data.astype(np.int32).values
但不行。我想利用数据集中的不同功能,例如' Pclass'," Age",' Sex'等...
我想要转换整个数据,以及单列说数据[" Age"]以获取numpy格式。任何帮助。
答案 0 :(得分:4)
像'Sex'和'Embarked'这样的分类变量需要进行一次热编码才能在LogisticRegression
模型中使用它们。使用pandas,您可以使用get_dummies(data['Sex'])
。
这里有一个完整的教程,专门针对同一数据集讨论了这个问题:
答案 1 :(得分:3)
这是一个常见问题。主要原因是缺乏对numpy的熟悉。
要将数据['Sex']的功能转换为颠簸阵列,请使用以下代码。
from sklearn.preprocessing import LabelEncoder
enc = LabelEncoder()
label_encoder = enc.fit(p_train['Sex'])
print "Categorical classes:", label_encoder.classes_
integer_classes = label_encoder.transform(label_encoder.classes_)
print "Integer classes:", integer_classes
x_train = label_encoder.transform(p_train['Sex'])
x_test = label_encoder.transform(p_test['Sex'])
x_train = x_train[:,np.newaxis]
x_test = x_test[:,np.newaxis]
在这里,我们基本上将“男性”和“女性”分类数据转换为0和1的整数类。这是必需品sclera期望一切都是浮动的。 np.newaxis用于将x_train的形状从(n_features,)转换为(n_features,1)。否则,在拟合模型时,您将遇到另一个不兼容形状的错误。
答案 2 :(得分:2)