for C.marker in zip([0.001,1,100]),['o','^','v'])修改
时间: 2023-08-19 11:05:44 浏览: 62
以下是修改后的代码:
```
for C, marker in zip([0.001, 1, 100], ['o', '^', 'v']):
lr_11 = LogisticRegression(C=C, solver='liblinear', penalty="l1", max_iter=5000).fit(X_train, y_train)
print("Training accuracy of l1 logreg with C={:.3f}: {:.2f}".format(C, lr_11.score(X_train, y_train)))
print("Test accuracy of l1 logreg with C={:.3f}: {:.2f}".format(C, lr_11.score(X_test, y_test)))
plt.plot(lr_11.coef_.T, marker=marker, label="C={:.3f}".format(C))
plt.xticks(range(cancer.data.shape[1]), cancer.feature_names, rotation=90)
xlims = plt.xlim()
plt.hlines(0, xlims[0], xlims[1])
plt.xlim(xlims)
plt.xlabel("Feature")
plt.ylabel("Coefficient magnitude")
plt.ylim(-5, 5)
plt.legend(loc='best')
```
主要修改是在 for 循环中增加了 marker 参数的取值列表,使用 zip 将 C 和 marker 一一对应。这样就可以在同一张图中绘制不同 C 值对应的系数大小,并且使用不同的标记来区分不同的 C 值。
阅读全文