周志华《机器学习》课后习题解答系列(四):Ch3.3 - 编程实现对率回归

本文详细介绍了如何使用Python的sklearn库和自编程实现对率回归,包括数据预处理、逻辑斯蒂回归模型的构建、梯度下降法优化。通过实例展示了sklearn库的逻辑回归函数和自编程逻辑回归的比较,以及混淆矩阵、决策区域的绘制,探讨了批量梯度下降与随机梯度下降的适用场景。
摘要由CSDN通过智能技术生成

这里采用Python-sklearn的方式,环境搭建可参考 数据挖掘入门:Python开发环境搭建(eclipse-pydev模式).

相关答案和源代码托管在我的Github上:PY131/Machine-Learning_ZhouZhihua.

思路概要

编程实现对率回归:
* 采用sklearn逻辑斯蒂回归库函数实现,通过查看混淆矩阵,绘制决策区域来查看模型分类效果;
* 自己编程实现,从极大化似然函数出发,采用梯度下降法得到最优参数,然后尝试了随机梯度下降法来优化过程。

3.3 编程实现对率回归

这里写图片描述

所使用的数据集如下:

这里写图片描述

本题是本书的第一个编程练习,采用了自己编程实现和调用sklearn库函数两种不同的方式,详细解答和编码过程:(查看完整代码):

1.获取数据、查看数据、预处理:

观察数据可知,X包含(密度、含糖量)两个变量,y为西瓜是否好瓜分类(二分),由此生成.csv数据文件,在Python中用Numpy读取数据并采用matplotlib库可视化数据:

样例代码:

'''
data importion
'''
import numpy as np
import matplotlib.pyplot as plt  

# load the CSV file as a numpy matrix
dataset = np.loadtxt('../data/watermelon_3a.csv', delimiter=",")

# separate the data from the target attributes
X = dataset[:,1:3]
y = dataset[:,3]

# draw scatter diagram to show the raw data
f1 = plt.figure(1)   
plt.title('watermelon_3a')  
plt.xlabel('density')  
plt.ylabel('ratio_sugar')  
plt.scatter(X[y == 0,0], X[y == 0,1], marker = 'o', color = 'k', s=100, label = 'bad')
plt.scatter(X[y =
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值