contourf和contour用法区别

import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

from matplotlib.colors import ListedColormap

x=np.array([1,3])
y=np.array([1,4])
z=np.array([[2,3],[3,4]])
plt.xlim(1,3)
plt.ylim(1,4)

colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')
cmap = ListedColormap(colors[:len(np.unique(z))])
plt.contour(x,y,z,cmap=cmap, alpha=0.8)   # alpha调整图像透明度
plt.show()

x=np.array([1,2])
y=np.array([1,4])
z=np.array([[1,2], [3, 4]])
plt.xlim(1,2)
plt.ylim(1,4)

colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')
cmap = ListedColormap(colors[:len(np.unique(z))])  # np.unique()是把数组元素去重
plt.contourf(x, y, z,cmap=cmap, alpha=0.6)   ###
plt.show()

contour和contourf

  • 绘制三维图
  • 其中前两个参数x和y:两个等长一维数组
  • 第三个参数z: 二维数组(表示平面点xi, yi映射的函数值)。

由于contourf可以填充等高线之间的空隙颜色,呈现出区域的分划状,所以很多分类机器学习模型的可视化常会借助其展现。

 

 

参考:https://blog.csdn.net/cymy001/article/details/78513712

 

转载于:https://www.cnblogs.com/douzujun/p/10292411.html

好的,您的问题是如何在模型中分别加入'l1'和'l2'正则项,观察决策边界的变化情况,以及训练集和测试集分数,体会两种正则项对模型的作用。 可以通过LogisticRegression模型的参数penalty来设置正则项类型,'l1'代表L1正则化,'l2'代表L2正则化。我们可以分别创建两个LogisticRegression模型,一个使用L1正则化,另一个使用L2正则化。具体代码如下: ```python # 使用L1正则化训练LogisticRegression模型 clf_l1 = LogisticRegression(penalty='l1') clf_l1.fit(X_poly, y) score_l1 = clf_l1.score(X_poly, y) # 使用L2正则化训练LogisticRegression模型 clf_l2 = LogisticRegression(penalty='l2') clf_l2.fit(X_poly, y) score_l2 = clf_l2.score(X_poly, y) ``` 我们还可以绘制两种正则化的决策边界,以及训练集和测试集的分数。具体代码如下: ```python # 绘制L1正则化的决策边界 Z_l1 = clf_l1.predict(poly.transform(np.c_[xx.ravel(), yy.ravel()])) Z_l1 = Z_l1.reshape(xx.shape) plt.contourf(xx, yy, Z_l1, cmap=plt.cm.Spectral, alpha=0.8) plt.scatter(X[:,0], X[:,1], c=y, cmap=plt.cm.Spectral) plt.title('L1 regularization (Train Score: {:.2f})'.format(score_l1)) plt.show() # 绘制L2正则化的决策边界 Z_l2 = clf_l2.predict(poly.transform(np.c_[xx.ravel(), yy.ravel()])) Z_l2 = Z_l2.reshape(xx.shape) plt.contourf(xx, yy, Z_l2, cmap=plt.cm.Spectral, alpha=0.8) plt.scatter(X[:,0], X[:,1], c=y, cmap=plt.cm.Spectral) plt.title('L2 regularization (Train Score: {:.2f})'.format(score_l2)) plt.show() ``` 通过观察决策边界及训练集和测试集分数可以发现,L1正则化可以使得模型更加稀疏,即某些特征系数会被压缩到0,从而减少模型的复杂度,避免过拟合;而L2正则化可以使得模型的系数更加平滑,避免出现过大的系数,同样也可以避免过拟合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值