TypeError: scatter() got multiple values for argument 's' (Plot Logistic Regression)
TypeError: scatter() got multiple values for argument 's' (Plot Logistic Regression)
我正在尝试为逻辑回归绘制决策边界,但出现此错误:
TypeError: scatter() 的参数有多个值 's'
这是我的代码:
logreg = LogisticRegression()
logreg.fit(X_train,y_train)
b = logreg.intercept_[0]
w1, w2 = logreg.coef_.T
c = -b/w2
m = -w1/w2
# Plot the data and the classification with the decision boundary.
xmin, xmax = -1, 2
ymin, ymax = -1, 2.5
xd = np.array([xmin, xmax])
yd = m*xd + c
plt.plot(xd, yd, 'k', lw=1, ls='--')
plt.fill_between(xd, yd, ymin, color='tab:blue', alpha=0.2)
plt.fill_between(xd, yd, ymax, color='tab:orange', alpha=0.2)
plt.scatter(*X[y==0].T, s=8, alpha=0.5)
plt.scatter(*X[y==1].T, s=8, alpha=0.5)
plt.xlim(xmin, xmax)
plt.ylim(ymin, ymax)
plt.show()
因为我是初学者,所以我也想知道是否可以绘制我的逻辑回归图,包括所有特征或其他特征(2 个最重要的特征)。我不得不在这里只选择 2 列。
编辑:我也遇到了这个错误:
类型错误:scatter() 接受 2 到 13 个位置参数,但给出了 1715 个
供您参考:
X = df
X = X.drop(columns=['answer']) #features
y = df['answer'] #target
X.shape # (4948, 2)
y.shape # (4948,)
X[y==0].shape # (1715,2)
如有任何帮助,我们将不胜感激!谢谢
问题在于您尝试绘制的形状,即 X[y==0]
。在这里,我重新创建了一个具有相同形状的 1715x2 矩阵,并尝试 scatter()
它:
import numpy as np
from matplotlib import pyplot as plt
x = np.random.rand(1715, 2)
print(np.shape(x)) # (1715, 2)
plt.scatter(*x, s= 8)
我得到一个TypeError: scatter() got multiple values for argument 's'
。
但是,如果我转置它:
x = np.random.rand(1715, 2)
print(np.shape(x))
plt.scatter(*x.T, s= 8)
plt.show()
我得到:
我正在尝试为逻辑回归绘制决策边界,但出现此错误:
TypeError: scatter() 的参数有多个值 's'
这是我的代码:
logreg = LogisticRegression()
logreg.fit(X_train,y_train)
b = logreg.intercept_[0]
w1, w2 = logreg.coef_.T
c = -b/w2
m = -w1/w2
# Plot the data and the classification with the decision boundary.
xmin, xmax = -1, 2
ymin, ymax = -1, 2.5
xd = np.array([xmin, xmax])
yd = m*xd + c
plt.plot(xd, yd, 'k', lw=1, ls='--')
plt.fill_between(xd, yd, ymin, color='tab:blue', alpha=0.2)
plt.fill_between(xd, yd, ymax, color='tab:orange', alpha=0.2)
plt.scatter(*X[y==0].T, s=8, alpha=0.5)
plt.scatter(*X[y==1].T, s=8, alpha=0.5)
plt.xlim(xmin, xmax)
plt.ylim(ymin, ymax)
plt.show()
因为我是初学者,所以我也想知道是否可以绘制我的逻辑回归图,包括所有特征或其他特征(2 个最重要的特征)。我不得不在这里只选择 2 列。
编辑:我也遇到了这个错误:
类型错误:scatter() 接受 2 到 13 个位置参数,但给出了 1715 个
供您参考:
X = df
X = X.drop(columns=['answer']) #features
y = df['answer'] #target
X.shape # (4948, 2)
y.shape # (4948,)
X[y==0].shape # (1715,2)
如有任何帮助,我们将不胜感激!谢谢
问题在于您尝试绘制的形状,即 X[y==0]
。在这里,我重新创建了一个具有相同形状的 1715x2 矩阵,并尝试 scatter()
它:
import numpy as np
from matplotlib import pyplot as plt
x = np.random.rand(1715, 2)
print(np.shape(x)) # (1715, 2)
plt.scatter(*x, s= 8)
我得到一个TypeError: scatter() got multiple values for argument 's'
。
但是,如果我转置它:
x = np.random.rand(1715, 2)
print(np.shape(x))
plt.scatter(*x.T, s= 8)
plt.show()
我得到: