Assignments for newbies (students of Prof. Gao)
以下为针对2017-2018学年研一及保研同学的《统计学习方法》一书的阅读进度安排。
注:《统计学习方法》中有少许错误,可查看勘误表修正。
章节 | 内容 | 日期 | 负责人 |
---|---|---|---|
第1章 | 统计学习方法概论1-24页 | 10.09-10.15 | |
第2章 | 感知机25-36页 | 10.09-10.15 | |
第3章 | k近邻法37-45页 | 10.16-10.22 | |
第4章 | 朴素贝叶斯法47-53页 | 10.16-10.22 | |
第5章 | 决策树55-75页 | 10.23-10.29 | |
第6章 | 逻辑斯谛回归与最大熵模型77-94页 | 10.30-11.05 | |
第7章 | 支持向量机95-134页 | 11.06-11.19 | |
第8章 | 提升方法137-153页 | 11.20-11.26 | |
第9章 | EM算法及其推广155-170页 | 11.27-12.03 | |
第10章 | 隐马尔可夫模型171-189页 | 12.04-12.17 | |
第11章 | 条件随机场191-210页 | 12.18-12.31 |
练习内容:熟练 KNN(K 邻近)算法的**和编码实现
详细说明:利用 python 语言实现 KNN 算法,并对收集的鸢尾花数据进行分类。鸢尾花数据 分为两部分,一部分为 104 个带类别标记的样本组成的训练集,另一部分为不带类别标记的 46 个样本组成的测试集,要求对 46 个不带类别标记的样本进行预测。文件夹内包内含4个文件, 分别为 data-description.txt, training.txt, test.txt,knn.py。knn.py 为需要你来完成的代码。
输入与输出:输入训练集与测试集数据(见文本文件),输出分类正确率,召回率,F1
注意:请尽量不要调用第三方的直接实现,如scikit-learn
Deadline:2017-10-31
练习内容:熟练回归模型的**和编码实现,掌握梯度下降和正则化方法。
详细说明:使用python语言实现回归模型,利用收集的NACA0012 airfoils数据对模型进行训练。 Airfoils 数据分为两部分,一部分为1052 个包含sound pressure level连续值输出的样本组成的训练集, 另一部分为不包含sound pressure level输出的451个样本组成的测试集,要求对451个不带输出值的样本进行输出预测。 文件夹内包含四个文件,分别为data-description.txt, training.txt, test.txt, linear.py。 其中linear.py为需要你来完成的代码。
输入与输出:输入训练集(6维)与测试集(5维)数据(见文本文件),输出为预测值与真实值的误差平方和。误差越小,则拟合越好。
提示:可以分别尝试用线性模型和多项式模型拟合训练数据,并用梯度下降法来求解模型参数,找到表现更好的模型。如果选择高阶多项式模型,请注意使用正则化项来避免模型过拟合,以提升模型在测试集上的表现。
注意:请尽量不要调用第三方的直接实现,如scikit-learn
Deadline:2017-11-20
练习内容:掌握推荐系统算法的实现原理,熟悉实验室平台RecQ。
详细说明:在RecQ平台中实现论文Collaborative Filtering for Implicit Feedback Datasets中的方法。步骤:首先Fork RecQ到自己的仓库,然后阅读已有的主要框架代码,参考其它基于item ranking的算法并在自己的分支中实现以上论文算法(algorithm/ranking目录下)。完成后经测试无误pull request到原项目。注:本次练习不需要编写实验报告
输入与输出:输入为平台内置数据集,输出为基于item recommendation的评估指标(内置)。
提示:注意算法执行速度
Deadline:2018-01-20
练习内容:音乐播放量预测,尝试多模型结合解决问题
经过7年的发展与沉淀,目前阿里音乐拥有数百万的曲库资源,每天千万的用户活跃在平台上,拥有数亿人次的用户试听、收藏等行为。在原创艺人和作品方面,更是拥有数万的独立音乐人,每月上传上万个原创作品,形成超过几十万首曲目的原创作品库,如此庞大的数据资源库对于音乐流行趋势的把握有着极为重要的指引作用。
本次练习以阿里音乐用户的历史播放数据为基础,期望同学们可以通过对阿里音乐平台上每个阶段艺人的试听量的预测,挖掘出即将成为潮流的艺人,从而实现对一个时间段内音乐流行趋势的准确把控。
数据说明数据集包含抽样的歌曲艺人数据,以及和这些艺人相关的6个月内(20150301-20150830)的用户行为历史记录。数据集下载
用户行为表(mars_tianchi_user_actions)
列名 |
类型 |
说明 |
示例 |
user_id |
String |
用户唯一标识 |
7063b3d0c075a4d276c5f06f4327cf4a |
song_id |
String |
歌曲唯一标识 |
effb071415be51f11e845884e67c0f8c |
gmt_create |
String |
用户播放时间(unix时间戳表示)精确到小时 |
1426406400 |
action_type |
String |
行为类型:1,播放;2,下载,3,收藏 |
1 |
Ds |
String |
记录收集日(分区) |
20150315 |
注:用户对歌曲的任意行为为一行数据。
歌曲艺人(mars_tianchi_songs)
列名 |
类型 |
说明 |
示例 |
song_id |
String |
歌曲唯一标识 |
c81f89cf7edd24930641afa2e411b09c |
artist_id |
String |
歌曲所属的艺人Id |
03c6699ea836decbc5c8fc2dbae7bd3b |
publish_time |
String |
歌曲发行时间,精确到天 |
20150325 |
song_init_plays |
String |
歌曲的初始播放数,表明该歌曲的初始热度 |
0 |
Language |
String |
数字表示1,2,3… |
100 |
Gender |
String |
1,2,3 |
1 |
同学们需要自行划分训练集测试集,预测艺人随后2个月,即60天(20150701-20150830)的播放数据。注:训练集内不能包含后两个月的用户行为数据
评价指标Deadline:2018-01-31