sklearn.linear_模型.RandomizedLogisticRegression:处理类别值

2024-05-13 20:53:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用RandomizedLogisticRegression为我的数据集选择变量。但问题是,我的数据集中的一个特征是性别。所以它的值是“F”或“M”,而不是数值。因此,我得到以下错误:

Traceback (most recent call last):
  File "main.py", line 84, in Customer_Acquisition_Binary_Logistics
    self.randomized_Logistic_regression()
  File "main.py", line 92, in randomized_Logistic_regression randomized_logistic.fit(X,y)
  File "C:\Python27\lib\site-packages\sklearn\linear_model\randomized_l1.py", line 91, in fit
    X = as_float_array(X, copy=False)
  File "C:\Python27\lib\site-packages\sklearn\utils\validation.py", line 112, in as_float_array
    return X.astype(np.float32 if X.dtype == np.int32 else np.float64) ValueError: could not convert string to float: F

如何处理非数值的范畴值?谢谢您。在


Tags: 数据inpymainlibnplinefloat
1条回答
网友
1楼 · 发布于 2024-05-13 20:53:57

您必须将str值编码为数值,为此您可以使用^{}

In [33]:

from sklearn import preprocessing
le = preprocessing.LabelEncoder()
print(le.fit(["paris", "paris", "tokyo", "amsterdam"]))
​
print(list(le.classes_))
​
print(le.transform(["tokyo", "tokyo", "paris"]) )
​
print(list(le.inverse_transform([2, 2, 1])))
​
LabelEncoder()
['amsterdam', 'paris', 'tokyo']
[2 2 1]
['tokyo', 'tokyo', 'paris']

相关问题 更多 >