【问题标题】:Python feature selectionPython 特征选择
【发布时间】:2019-05-15 08:02:36
【问题描述】:

我在 Python 中执行特征选择时出错。我是 python 新手。 问题:

from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
array = df.values
X = array[:,0:49]
Y = array[:,48]
# feature extraction
model = LogisticRegression()
rfe = RFE(model, 20)
fit = rfe.fit(X, Y)
print("Num Features: %d") % fit.n_features_
print("Selected Features: %s") % fit.support_
print("Feature Ranking: %s") % fit.ranking_

当我运行这段代码时,它显示一个错误

ValueError: could not convert the string to float: 'High Prone'

我在 df 中的目标变量是“高倾向”和“不太容易”。 我已经完成了因式分解,但它不起作用。

【问题讨论】:

  • 你能把你的数据框粘贴到这里吗?
  • 看起来您的数据框具有“NaN”值,这导致了此问题。
  • 我没有 NaN 值。以及如何粘贴我的数据框
  • 给我们一个玩具样本,看看你的数据框是什么样子的

标签: python-3.x machine-learning feature-selection


【解决方案1】:

您可能需要sklearn.preprocessing.LabelEncoder 将目标变量编码为数值。

from sklearn import preprocessing
le = preprocessing.LabelEncoder()
y_encoded = le.fit_transform(y)
fit = rte.fit(X, y_encoded)

【讨论】:

  • 我已经使用了您的代码,但它还没有工作。我已经将它粘贴在 Y 数组行之后。
  • 执行y_encoded = le.fit_transform(y) 并使用y_encoded 而不是y 来适应。
  • 用这个来更新你的帖子是个好主意,不要在 cmets 中放入代码和口头说明...
猜你喜欢
  • 1970-01-01
  • 2020-11-15
  • 2017-12-10
  • 2013-02-21
  • 2017-06-03
  • 2012-03-28
  • 2016-07-27
相关资源
最近更新 更多