机器学习第一战——阿里天池移动推荐算法比赛经验总结攻略
历时98天的阿里移动推荐算法终于结束了,有种终于下了贼船的感觉。总的来说,整个比赛的体验并不好:时间太长,资源不够,运气成分大,学到的干货少。虽然学到的干货不多,但这毕竟是在Data Science道路上进军的第一场实战,还是有必要好好总结一下。
比赛统计
初赛名次:21
复赛名次:22
Python代码行数:2320
SQL代码行数:6656
天池平台数据表数:1006
线下结果数:490
历时98天的阿里移动推荐算法终于结束了,有种终于下了贼船的感觉。总的来说,整个比赛的体验并不好:时间太长,资源不够,运气成分大,学到的干货少。虽然学到的干货不多,但这毕竟是在Data Science道路上进军的第一场实战,还是有必要好好总结一下。
初赛名次:21
复赛名次:22
Python代码行数:2320
SQL代码行数:6656
天池平台数据表数:1006
线下结果数:490
Andrew Ng cs229 Machine Learning 笔记
原文:https://share.coursera.org/wiki/index.php/ML:Advice_for_Applying_Machine_Learning
面对一个机器学习问题,我们提取好特征,挑选好训练集,选择一种机器学习算法,然后学习预测得到了第一步结果。然而我们不幸地发现,在测试集上的准确率低得离谱,误差高得吓人,要提高准确率、减少误差的话,下一步该做些什么呢?
可以采用以下的方法来减少预测的误差:
但不要盲目在这些可行的方法里随便选一种来提升模型,需要用一些诊断模型的技术来帮助我们选择使用哪种策略。
Andrew Ng cs229 Machine Learning 笔记
以下是我们会用到的一些变量:
当有多个输出类别时,采用$h_\Theta(x)_k$表示第$k$个输出的假设结果。
神经网络的成本函数是logistic回归中的成本函数更普遍的一种形式。
logistic回归中的成本函数为:
Andrew Ng cs229 Machine Learning 笔记
在特征变量数较大的情况下,采用线性回归会很难处理,比如我的数据集有3个特征变量,想要在假设中引入所有特征变量的平方项:
共有6个特征,假设我们想知道选取其中任意两个可重复的平方项有多少组合,采用允许重复的组合公式计算$\frac{(n+r-1)!}{r!(n-1)!}$,共有$\frac{(3 + 2 - 1)!}{(2!\cdot (3-1)!)} = 6$种特征变量的组合。对于100个特征变量,则共有$\frac{(100 + 2 - 1)!}{(2\cdot (100-1)!)} = 5050$个新的特征变量。
可以大致估计特征变量的平方项组合个数的增长速度为$\mathcal{O}(\frac{n^2}2)$,立方项的组合个数的增长为$\mathcal{O}(n^3)$。这些增长都十分陡峭,让实际问题变得很棘手。
在变量假设十分复杂的情况下,神经网络提供了另一种机器学习算法。
Andrew Ng cs229 Machine Learning 笔记
为了和正规方程(normal equation)里"正规"区分开来,这里Regularization都译作“正则化”,有些地方也用的是“正规化”。以下内容来自wikipedia:
正则化是指通过引入额外新信息来解决机器学习中过拟合问题的一种方法。这种额外信息通常的形式是模型复杂性带来的惩罚度。正则化的一种理论解释是它试图引入奥卡姆剃刀原则。而从贝叶斯的观点来看,正则化则是在模型参数上引入了某种先验的分布。
Andrew Ng cs229 Machine Learning 笔记
分类问题和回归问题不同的是,分类问题的预测值$y$只能取离散值,而非连续值。首先来看一个二类分类问题,预测值$y$只能取0或1。0又被称作负例(negative class),1被称作正例(positive class)。通常也用"-","+“符号来表示。对于一个样本集输入$x^{(i)}$,对应的目标值$y^{(i)}$也被为标注(lable)。
也可以用线性回归的方法运用到分类问题上,但是这样做很容易得到不好的结果。稍微改变一下我们的假设函数$h_\theta(x)$,使其的取值在{0,1}范围内:
Andrew Ng cs229 Machine Learning 笔记
参数学习算法(parametric learning algorithm):参数个数固定
非参数学习算法(non-parametric learning algorithm):参数个数随样本增加
特征选择对参数学习算法非常重要,否则会出现下面的问题:
对于非参数学习算法来说,并不需要进行精心的特征选择,局部加权线性回归就是这样。
局部加权回归又叫做Loess,其成本函数为:
Andrew Ng cs229 Machine Learning 笔记
先理清几个概念:
翻译自:http://scikit-learn.org/stable/tutorial/basic/tutorial.html
以后可能会根据自己的学习慢慢翻译其他的章节,水平有限,不足之处请指正。
本章内容 在本章中,我们会介绍在使用scikit-learn中遇到的机器学习(machine learning)术语,以及一个简单的机器学习例子。
一般来说,机器学习问题可以这样来理解:我们有n个样本(sample)的数据集,想要预测未知数据的属性。