用户警告:X 没有有效的特征名称,但 DecisionTreeClassifier 配备了特征名称

问题描述 投票:0回答:2

我正在通过“Mosh 编程”频道学习机器学习。 在这种情况下我得到了所需的输出。

output=array(['HipHop', 'Acoustic', 'Classical'], dtype=object)

但是有这样的警告,我找不到哪个部分是错误的。

C:\Users\User\anaconda3\lib\site-packages\sklearn\base.py:450: UserWarning: X does not have valid feature names, but DecisionTreeClassifier was fitted with feature names
  warnings.warn(

你知道我该如何纠正这个问题吗?

代码:

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
music_data=pd.read_csv('C:\\Users\\User\\Desktop\\machine learning tutorial\\Python Tutorial Supplementary Materials\\music.csv')
y=music_data['genre']
X=music_data.drop(columns=['genre'])

model = DecisionTreeClassifier()
model.fit(X,y)
predictions=model.predict([[22,1],[26,0],[39,1]])
predictions
python scikit-learn decision-tree
2个回答
0
投票

第 5 行之后,“model = DecisionTreeClassifier”之前添加两行:

X = X.values
y = y.values

更深入的解决方案和解释可以在这里找到: 用户警告:X 没有有效的特征名称,但 LogisticRegression 已安装了特征名称


0
投票

我也在关注Mosh教程并遇到了和你一样的问题。 通过修改第 8 行解决了这个问题:

model.fit(X, y)

model.fit(X.values, y)

问题就解决了。 显然它与数据源中的标头有关,但我不能 100% 确定。只要知道它确实解决了问题即可。

© www.soinside.com 2019 - 2024. All rights reserved.