如何在 Jupyter Notebook 中使用 Python 库调试错误
Posted
技术标签:
【中文标题】如何在 Jupyter Notebook 中使用 Python 库调试错误【英文标题】:How to debug error in Jupyter Notebook Using Python libraries for ML 【发布时间】:2021-07-24 21:51:09 【问题描述】:我正在使用 jupyter notebook 中的 python 库进行建模。我已经完成了预处理阶段并尝试构建我的第一个机器学习模型(ANN;人工神经网络和决策树)。一段时间以来,我一直试图了解如何解决这些错误,而我看到的唯一可能原因是与数据类型有关,但是,我不确定这对我来说是个问题吗? 此外,在尝试构建第一个机器学习模型之前,我所做的最后一步是使用以下代码拆分训练和测试:
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(data, target, test_size=0.3)
ANN 代码:
from sklearn.neural_network import MLPClassifier
mlp = MLPClassifier(hidden_layer_sizes=(5,5), max_iter=3000)
mlp.fit(x_train, y_train)
我收到的错误是对构建 ANN 的代码的响应:
ValueError: Unknown label type: (array([0, 0 etc..
决策树代码:
from sklearn.tree import DecisionTreeClassifier
d = DecisionTreeClassifier(max_depth=3).fit(x_train, y_train)
我收到的错误是对构建决策树的代码的响应:
Unknown label type: 'unknown'
#注意:我所有的数据集都是数字,其中一些是从类别转换而来的。数据和目标的dtype
是object
。 (X) 是我的数据,(y) 是我的目标。我还发布了错误的图像以供参考。如果您需要更多信息,请告诉我。
更新:我将 target/((y) 转换为 dtype integer
而不是 dtype object
。我将这些插入到 train_test_split 下:
y=y.astype('int')
target=target.astype('int')
然而,这并没有什么不同,我仍然得到一个错误。谢谢
【问题讨论】:
【参考方案1】:在我看来,您没有向模型提供正确的数据结构。请参考此链接 https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html#sklearn.neural_network.MLPClassifier.fit 并查看 fit() 函数的文档。您需要确保数组或矩阵的长度与函数期望的长度相匹配,并且数据类型也与文档相匹配。 至于DecisionTree,我相信它也会导致它的格式错误,我找到了这个链接 ValueError: Unknown label type: 'unknown' 解决了同样的问题。
【讨论】:
我之前对另一个数据框使用了代码格式,但它有效,所以这很奇怪。我的数据 (x) 总体上具有dtype object
,并且由float64
和uint8
和一个int64
之间的混合组成,而我的(y) 是dtype object
并且仅由binary (0,1)
组成,所以我'我还不确定如何解决它。谢谢
所以我实际上将我的 x 和 y 都更新为整数而不是 y 并且它起作用了!谢谢!
@user15812289 是的,所以基本上修复是我发送给任何有兴趣的人的第二个链接,没问题,很乐意提供帮助:)以上是关于如何在 Jupyter Notebook 中使用 Python 库调试错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Jupyter Notebook 中显示文件中的图像?
在使用 jupyter notebook 时如何在 pandas 中使用 Dataframe 时查看完整数据? [复制]