西瓜书 习题3.3 编程实现对数几率回归,梯度下降法

本文是跟随《机器学习》一书进行的习题实践,主要任务是编程实现对数几率回归,采用梯度下降法。首先介绍了在Ubuntu环境下搭建Python开发环境的过程,然后使用sklearn的logisticRegression演示基本操作。接着,手写代码实现对数几率回归,包括数据集划分、模型训练和预测。文章通过实例解释了关键函数的作用,并给出了程序运行结果。最后,提到了参考的相关资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近入坑上道了,跟着周志华老师的《机器学习》,先搞个课后题练练手。

我电脑是Win10的,硬件配置不输Mac Pro,但是之前跑Kaggle上的泰坦尼克,装python的各种package装的我心累,于是这次我直接用VMware开了个Ubuntu在电脑里,给分配了4G的内存,平时就用Ubuntu了,通常遇到什么包没装上,用terminal就可以搞定了。然后我在Ubuntu里装了个pycharm,开发环境就是这样。

第一步:导入数据集,并进行可视化展示

数据集就是西瓜书89页的那个,我挂在我的git上了:https://github.com/qdbszsj/Machine-Learning-test-3.3.git

import numpy as np  # for matrix calculation
import matplotlib.pyplot as plt
# load the CSV file as a numpy matrix
#separate the data with " "(blank,\t)
dataset = np.loadtxt('/home/parker/watermelonData/watermelon3_0a.csv', delimiter="\t")

# separate the data from the target attributes
X = dataset[:, 1:3]
y = dataset[:, 3]
goodData=dataset[:8]
badData=dataset[8:]
#return the size
m, n = np.shape(X)
print(m,n)#17,2
# draw scatter diagram to show the raw data
#https://matplotlib.org/api/pyplot_summary.html
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='b', s=100, label='bad')
"""
plt.scatter(goodData[:,1], goodData[:,2], marker='o', color='g', s=100, label='good')
plt.scatter(X[y == 0, 0], X[y == 0, 1], marker='o', color='k', s=100, label='bad')
plt.legend(loc='upper right')
上面这段代码要注意一下,np.loadtxt的时候,分隔符用空格,也就是\t,你的文件是什么样的就用什么分隔符。

然后X就是函数输入的那两列,y就是结果,然后这里绘制一下散点图


然后这里先用偷懒的方法,用sklear

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值