python机器学习基础错误笔记
Logistic回归和线性SVM代码报错
书本代码
import mglearn
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.svm import LinearSVC
X, y = mglearn.datasets.make_forge()
fig, axes = plt.subplots(1, 2, figsize=(10, 3))
for model, ax in zip([LinearSVC(), LogisticRegression()], axes):
clf = model.fit(X, y)
mglearn.plots.plot_2d_separator(clf, X, fill=False, eps=0.5, ax=ax, alpha=.7)
mglearn.discrete_scatter(X[:, 0], X[:, 1], y, ax=ax)
ax.set_title("{}".format(clf.__class__.__name__))
ax.set_xlabel("Feature 0")
ax.set_ylabel("Feature 1")
axes[0].legend()
plt.show()
代码报错:提示我们“linear无法收敛,增加迭代次数。”
ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.
解决办法:增加LinearSVM的最大迭代次数,将最大迭代次数设置为4000
for model, ax in zip([LinearSVC(max_iter=4000), LogisticRegression()], axes):
运行结果如下