数据预处理
相似度
d(x,y)=∑nk=1(xk−yk)2−−−−−−−−−−−−−√
余弦相似度(向量的相似度)
cos(x,y)=x⋅y||x|| ||y||
向量的夹角皮尔逊系数
线性相关程度
corr(x,y)=covariance(x,y)standarddeviation(x)∗standarddeviation(y)
1.如果数据密集(所有数据几乎都有属性值,属性值量级重要),就用欧几里德算法
2.数据受级别膨胀影响(不同的用户使用不同的评分标准),就用皮尔逊相关系数算法
3.数据稀疏性强,就考虑用夹角余弦相似度算法
cosine相似度,其实就是归一化后的点积结果,
Pearson相关系数是去中心化&归一化的点积结果
修正cosine相似度,也是去中心化&归一化的点积结果,与Pearson的差别就在于去中心化的差异(上面描述的)
- jaccard系数
抽样
- 80/20原则的抽样(20%是测试集合,80%是训练集合)
- 重复采用:随机抽样进行K次
- n折交叉验证
- 数据分为n份
- 一份是测试模型
- 其余n-1是用来训练
- k个损失值的平均值作为最后的值
降维
去噪
- 缺失数据
- 异常数据
分类算法
- knn
- 决策树
- 贝叶斯分类器
- 神经网络
- 支持向量机
- 集成算法
分类器的评估
http://bookshadow.com/weblog/2014/06/10/precision-recall-f-measure/
* 打分:RMSE(均方根误差)
* top-n:F1
1F1=1R+1P
- 指标:Precision(准确率);Recall(召回率)
- p=检索出来的条目(比如:文档、网页等)有多少是准确的
- R=所有准确的条目有多少被检索出来了
不妨举这样一个例子:某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。撒一大网,逮着了700条鲤鱼,200只虾,100只鳖。那么,这些指标分别如下:
正确率 = 700 / (700 + 200 + 100) = 70%
召回率 = 700 / 1400 = 50%
F值 = 70% * 50% * 2 / (70% + 50%) = 58.3%
- 准确率和召回率矛盾。F-Measure是Precision和Recall加权调和平均:
Fmeasure=(α2+1)(RP)α2(R+P)
Fone=2RPR+P