Datawhale-机器学习打卡1

Datawhale机器学习

逻辑回归
逻辑回归主要解决分类问题,分类问题函数是不连续的阶跃函数,且函数边界[0,1].
sigmoid函数曲线与阶跃函数曲线很相似,z>0, sigmoid(z)>0.5, z<0 sigmoid(z)<0.5,其本身具有分类属性,函数在0到1之间。
而且sigmoid函数求导方便,而且cost function可以用log函数表达,log函数具有convex属性,易于求解。sigmoid函数连续可以借用方程θX表示z, 假设θX>0,y=1, θX<0,y=0完成分类。这样就把未知的分类问题转换成了已经熟悉的线性回归问题,易于理解。
但sigmoid函数给出的结果是数据是否属于某类别的概率,而不是确定的y/n,需要进行二次转换。在神经网络中,因为sigmoid函数对x偏导数<1,所以在进行back propogation过程中梯度会逐渐降低并消失

实现流程
代码导入及预处理-数据分析-选择features-导入模型训练-测试模型能力

重要代码的理解
lr_clf.predict_proba()得出输入实例分类结果为不同label的不同概率值 所以元素都在[0,1]之间
分类线是后面的plt.contour 函数中的变量[0.5]决定的,等高线会随着此变量同步变化绘制分界线,所以此变量的取值也是在0-1之间

z_proba = lr_clf.predict_proba(np.c_[x_grid.ravel(), y_grid.ravel()])

# print(z_proba.shape)  #20000x2
z_proba = z_proba[:, 1].reshape(x_grid.shape)
print('所给实例分类结果为1的概率矩阵尺寸为:{}, 第一行的值为{}.'.format(z_proba.shape,z_proba[0,:]))

plt.contour(x_grid, y_grid, z_proba, [0.5], linewidths=2., colors='blue')  

#contour(X,Y,Z)*X*, *Y* specify the (x, y) coordinates of the surface 使其和上图相对应,Z设置等高线的分类值 

predict_prob

改写代码提高预测能力
从数据箱型图中看出后两个features(petal width, petal length) 对数据的分类界面较清晰,所以只用这两个features会不会对这个数据集有较好的效果。

在这里插入图片描述
在这里插入图片描述
只用这两个feature进行模型训练之后,测试结果表明在这个数据集上只用这两个feature确实就能够有很好的分类效果,甚至比用四个features的效果还好。

用全部features进行模型训练的结果:
四个features的模型效果
只用后两个features进行模型训练的结果:
两个features的模型效果
从训练结果看只用后两个features进行训练,模型对于test数据集的预测准确度提高了。

总结
前期对于数据可视化的处理很重要,通过观察不同features对分类结果的影响有助于选出更有价值的features,从而提高模型训练的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值