在我们学习机器学习的时候,往往会碰到许多的新手坑,这里简单介绍下自己遇到的一个坑,以及解决思路

以下是我之前在学习决策树遇到的一个坑,初始代码如下:
X = np.linspace(-100,100,100) y = np.sin(X) z = np.cos(X)
#以上代码能够绘制一个由100个点构成的圆 #将y,z进行级联
np.concatenate([y.reshape(-1,1),z.reshape(-1,1)],axis = 1) #导入决策树及绘图模块 from
sklearn.tree import DecisionTreeRegressor import matplotlib.pyplot as plt
%matplotlib #通过决策树进行数据绘图 tree =DecisionTreeRegressor(max_depth=5)
tree.fit(X.reshape(-1,1),y) X_test = np.linspace(-100,100,300).reshape(-1,1) y_
= tree.predict(X_test) plt.scatter(y_[:,0],y_[:,1])
熟悉机器学习的大佬应该一眼就能看出其中的问题所在:

问题的结点就是在于数据的不匹配,当我出现这个问题的第一个想法就是可能是维度不匹配,但通过测试发现不是。。。



经过反复推敲及百度查看类似问题(发现百度上大多给的是维度不匹配问题)最终发现在对数据进行级联时没有将数据保存到y中,因为在我的分块测试中是通过
np.concatenate([y.reshape(-1,1),z.reshape(-1,1)],axis = 1)
直接输出了打印结果【粗心.....】

在通过将级联数据赋予y,再次重新执行,得到新的y_预测数据

修改之后执行所有代码,图形绘制成功。


故此提醒各位“码”员在编写时得多注意细节,对于遇到得问题先考虑最有可能出现得错误原因,再将模块代码重新看一遍,因为也可能是你少打的一个符号问题,实在搞不定就求助于百度(可以解决大多问题),谷歌(英文水平得有点,毕竟基本都是英语,但绝对能解决所有问题),希望这篇纠错能对你提供小小帮助。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信