实验2: 逻辑回归和支持向量机
机器学习
实验
实验目的
- 对比理解梯度下降和批量随机梯度下降的区别与联系。
- 对比理解逻辑回归和线性分类的区别与联系。
- 进一步理解SVM的原理并在较大数据上实践。
数据集
实验使用的是LIBSVM Data的中的a9a数据,包含32561 / 16281(testing)个样本,每个样本有123/123 (testing)个属性。请自行下载训练集和验证集。在读取数据时可能会出现维度不对的问题,是因为数据最后列全为零而被忽略,可以在下载的数据集文件后面自行添加后再读取,也可在读取数据集时指定n_features=123来解决。
实验环境
python3,至少包含下列python包:sklearn,numpy,jupyter,matplotlib。
建议直接安装anaconda3,其已经内置了以上python包。
实验形式
个人独立完成
实验步骤
逻辑回归与批量随机梯度下降
- 读取实验训练集和验证集。
- 逻辑回归模型参数初始化(可以考虑全零初始化,随机初始化或者正态分布初始化)。
- 选择Loss函数及对其求导,过程详见课件ppt。
- 自行确定batch_size大小,随机取出部分样本,求得部分样本对Loss函数的梯度 。
- 使用批量随机梯度下降优化方法更新参数模型,鼓励额外尝试Adam优化方法。
- 选择合适的阈值,将验证集中计算结果大于阈值的标记为正类,反之为负类。在验证集上测试并得到Loss函数值。
- 重复步骤4-6若干次,画出 随迭代次数的变化图。
线性分类与批量随机梯度下降
- 读取实验训练集和验证集。
- 支持向量机模型参数初始化(可以考虑全零初始化,随机初始化或者正态分布初始化)。
- 选择Loss函数并对其求导,过程详见课件ppt。
- 自行确定batch_size大小,随机取出部分样本,求得部分样本对Loss函数的梯度 。
- 使用批量随机梯度下降优化方法更新参数模型,鼓励额外尝试Adam优化方法。
- 选择合适的阈值,将验证集中计算结果大于阈值的标记为正类,反之为负类。在验证集上测试并得到Loss函数值 。
- 重复步骤4-6若干次,画出 随迭代次数的变化图。
整理两次实验结果,形成图表,并完成实验报告(实验报告模板将包含在此处)
实验代码及报告提交方式
提交内容
- 代码及实验报告
- 实验报告需要按照模板编写,并导出成pdf文件(模板未必与本次实验内容完全契合,可适当修改模板章节)
- 代码及报告需要打包,命名格式为“实验2_班级_姓名_学号.zip”。例如:“实验2_软件1班_张三_201700000000.zip”
- 提交代码及实验报告时不要在压缩包中包含数据集
- 请于截止时间前发送包含实验1和实验2的代码及实验报告的压缩包到助教邮箱jiaju.wu@qq.com,邮件命名为“实验1、2_班级_姓名_学号”
提交时间
- 2020年10月30日中午12:00截止,请于截止时间前发送包含实验1和实验2的代码及实验报告的压缩包到助教邮jiaju.wu@qq.com。
评分标准
评分项 |
占比 |
说明 |
出勤 |
40% |
特殊情况可向学院请假,请假条交给助教 |
代码有效 |
30% |
代码是否正确 |
实验报告 |
30% |
是否认真按照实验模板填写 |
注意事项
- 实验报告需按时提交,非特殊情况逾期补交无效
- 代码强烈推荐用python语言写,但使用其它编程语言也是允许的
- 实验报告使用中英文均可;LaTex、Word均可(如果用Word编写实验报告,需导出成pdf格式)
有任何的意见或者建议都可以直接向助教反映。