请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,提问一个绘制决策边界的问题~

在逻辑回归中使用Pipeline之后绘制决策边界的代码是这样的(不用Scaler)

log = Pipeline([
   ('poly', PolynomialFeatures()),
   ('log_reg', LogisticRegression())
])
log.fit(X, y)

plot_decision_boundary(log, axis=[-1, 1, -1, 1])
plt.scatter(X[y == 0, 0], X[y == 0, 1])
plt.scatter(X[y == 1, 0], X[y == 1, 1])
plt.show()


然而如果不适用管道应该怎么绘制边界?不用管道的代码如下,但是X_poly特征经过多项式处理已经有了6个了,怎样像管道一样画出图像呢?

poly = PolynomialFeatures()
poly.fit(X)
X_poly = poly.transform(X)

log = LogisticRegression()
log.fit(X_poly, y)

plot_decision_boundary(log, axis=[-1, 1, -1, 1])
plt.scatter(X[y == 0, 0], X[y == 0, 1])
plt.scatter(X[y == 1, 0], X[y == 1, 1])
plt.show()


正在回答

1回答

liuyubobobo 2018-07-27 12:04:41

关键是我们的可视化代码只能可视化二维空间,也就是绘制一个平面。所以我们的可视化方法只能处理两个特征的情况。六维空间本身就是无法可视化的:)

0 回复 有任何疑惑可以回复我~
  • 提问者 NLPLearner #1
    是这样,那么Pipeline不是也使用了多项式特征吗?它是怎么绘制出来就是二维得了?
    回复 有任何疑惑可以回复我~ 2018-07-28 11:15:50
  • liuyubobobo 回复 提问者 NLPLearner #2
    因为你创建的pipeline,是可以传入2个特征的,这两个特征在pipeline内转成了6个特征,又训练了模型。不过从整个管道看,输入是2个特征,输出是预测结果;但是你的第二种方式,训练的log,输入就是6个特征,所以把它传给decision_boundary,decision_boundary只能处理两个特征的情况,就报错了:)
    回复 有任何疑惑可以回复我~ 2018-07-28 12:31:54
  • 提问者 NLPLearner #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-01-22 16:22:36
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信