资料:
- 作业:https://blog.csdn.net/iteapoy/article/details/105477848 比较详细,逐代码解释
- 作业讲解部分: https://blog.csdn.net/weixin_42447868/article/details/105294890
- 官方colab地址: https://colab.research.google.com/drive/1JaMKJU7hvnDoUfZjvUKzm9u-JLeX6B2C#scrollTo=s6yNUeG9aBR1
作业要求
二元分类是机器学习中最基础的问题之一。在本次作业中,需要写一个线性二元分类器,根据人们的个人信息,判断其年收入是否高于 50,000 美元。作业将用 logistic regression 与 generative model两种模型来实现目标,模型差异可见李宏毅老师的课程视频与ppt。
数据情况:
50000多的原始数据,在train.csv中,其中有13个数值属性数据。有29个object数据,即需要One-hot编码的数据。助教在Xtranin中的数据进行了预处理。(1)移除了一些不必要的数据 (2)对离散值进行了one-hot编码。(3)稍微平衡了正负标记的数据的比例
在原始train.csv的数据中,只有42个feature。但是one-hot编码之后有了510个feature。且510个feature照样做normalization。
代价函数:
逻辑回归:
训练:
小批量梯度下降 + 10个epoch,每个epoch要重新打乱数据。
batch_size 是每个批量的大小。batch_size = 8
10个epoch:
全部训练数据重新洗牌;
for batch_size = 8, 全部数据进行小批量梯度下降
计算每个epoch的训练的准确率acc和交叉熵loss;计算每个epoch的验证集的准确率
生成式模型