Mahout学习
机器学习:
预测算法:
平方损失函数
代价函数:
分类算法:
优化函数:梯度下降算法(斜率和步长)或者拟牛顿法
损失函数-log(P(Y|X)) 求概率的事情
代价函数
防止过拟合模型出现,避免震荡,增加推广能力,可采用L1范数和L2范数
你如何构建训练集,你所训练的模型,就具备什么样的功能
Python实现音乐分类器流程:(不是重点)
贝叶斯分类器:
贝叶斯公式:
根据训练集构建贝叶斯概率表,然后根据贝叶斯公式计算得到出现的概率,如果>50%则表示其很有可能属于此分类
27 机器学习算法
监督学习的训练集包括X和Y
无监督学习的训练集只包括X
聚类:分堆,向量在高维空间对应的点,点与点之间的距离决定了其分类的结果
http://mahout.apache.org/users/basics/algorithms.html(Mahout适用的机器学习算法)
http://spark.apache.org/docs/latest/mllib-guide.html(MLLIB适用的机器学习算法)
1. Mahout基本命令
从HDFS中download下来mahout运行的结果
/bin/mahout–core 运行的Job类
2. K-means算法思路:
损失函数:每个点到各自簇中心的距离公差和
优化函数:EM算法,K个簇的期望值相乘
K-means不足:
1) K值选择,需要不断去尝试,看误差最小的时候K为多少
2) 特征参数
距离测度:
1) 欧式距离测度
2) 平方欧式距离测度
3) 曼哈顿距离测度
4) 余弦距离测度(适合文本)IF-IFD=TF/DF
5) 谷本距离测度
6) 加权距离测度
ALS算法(交替最小二乘法)
1) 把下面的稀疏矩阵->稠密矩阵,要么与同现矩阵相乘,要么矩阵分解(USER-ITEM矩阵)
Canopy聚类(一次聚类)
求某个词在文档中的重要性wi即权重
Mahout采用的归一化策略,能保证数据维持在0~1左右
重要的聚类算法:
1) canopy聚类
若k=10,则Cluster有10个(C0~C8+S)
2) k-means聚类
3) fuzzy k-means聚类
4) Hierarchical聚类
5) LDA聚类
重要的分类算法:
1)Logistic Regression(逻辑回归)
2)Bayesian(贝叶斯分类器)
伯努利模型以文本打标签
多项式模型以单词来算频率
需要先把文件上传到HDFS上,然后通过mahout将文本文件->seq文件,seq文件->vector文件
3)support vector machine(支持向量机)
4)Perceptron and Winnow(感知器算法)
5)Neural Network(神经网络)
6)Random Forests(逻辑森林)
1) 基于Item的协同过滤算法:基本思想是把特征相似的Item推荐给用户
2) 基于User的协同过滤算法:基本思想是给行为特征相似的推荐物品