逻辑回归和支持向量机
机器学习
实验
You can click here to get the English version.
实验目的
- 对比理解梯度下降和批量随机梯度下降的区别与联系。
- 对比理解逻辑回归和线性分类的区别与联系。
- 进一步理解SVM的原理并在较大数据上实践。
数据集
实验使用的是LIBSVM Data的中的a9a数据,包含32561 / 16281(testing)个样本,每个样本有123/123 (testing)个属性。请自行下载训练集和验证集。
实验环境
python3,至少包含下列python包:sklearn,numpy,jupyter,matplotlib。
建议直接安装anaconda3,其已经内置了以上python包。
实验时间及地点
2018-10-14 上午8:50-12:15 B7-138(谭明奎老师) B7-238(吴庆耀老师)
提交截止时间
2018-10-28 上午12:00
实验形式
个人独立完成
实验步骤
本次实验代码及画图均在jupyter上完成。
逻辑回归与批量随机梯度下降
- 读取实验训练集和验证集。
- 逻辑回归模型参数初始化(可以考虑全零初始化,随机初始化或者正态分布初始化)。
- 选择Loss函数及对其求导,过程详见课件ppt。
- 自行确定batch_size大小,随机取出部分样本,求得部分样本对Loss函数的梯度 。
- 使用SGD优化方法更新参数模型,鼓励额外尝试Adam优化方法。
- 选择合适的阈值,将验证集中计算结果大于阈值的标记为正类,反之为负类。在验证集上测试并得到Loss函数值。
- 重复步骤4-6若干次,画出 随迭代次数的变化图。
线性分类与批量随机梯度下降
- 读取实验训练集和验证集。
- 支持向量机模型参数初始化(可以考虑全零初始化,随机初始化或者正态分布初始化)。
- 选择Loss函数并对其求导,过程详见课件ppt。
- 自行确定batch_size大小,随机取出部分样本,求得部分样本对Loss函数的梯度 。
- 使用SGD优化方法更新参数模型,鼓励额外尝试Adam优化方法。
- 选择合适的阈值,将验证集中计算结果大于阈值的标记为正类,反之为负类。在验证集上测试并得到Loss函数值 。
- 重复步骤4-6若干次,画出 随迭代次数的变化图。
整理两次实验结果并完成实验报告(实验报告模板将包含在示例仓库中)。
评分标准
评分项 |
占比 |
说明 |
出勤 |
40% |
特殊情况可向学院请假 |
代码有效 |
20% |
代码有效是指代码中是否存在语法错误 |
实验报告 |
30% |
是否认真按照实验模板填写 |
代码规范 |
10% |
主要考核代码变量命名是否规范 |
提交方式
提交流程
- 访问222.201.187.50:7001
- 点击对应的提交入口
- 填写自己的姓名、学号,上传pdf格式的报告和zip格式的代码压缩包
注意事项
- 实验报告和代码可以多次上传,多次上传会覆盖之前提交的文件。
- 上传之后可以刷新页面,在下面的文件列表里面检查是否上传成功。
- 助教会在实验截止时间保存所有上传的结果,截止时间之后上传的文件无效。
- 如果用Word编写实验报告,需导出成pdf格式。
- 代码文件打包格式必须为zip,请不要提交rar格式的压缩文件。
- 提交网址只能校园网访问。
- 代码用python语言写,实验报告评分标准英文好于中文,latex好于word。
有任何的意见或者建议都可以直接在qq群中向助教反映。