数据来源
http://www.grouplens.org/datasets/movielens/
数据格式
UserID::MovieID::Rating::Timestamp
UserID::Gender::Age::Occupation::Zip-code
MovieID::Title::Genres
UserID::MovieID::Rating::Timestamp
线性模型、决策树、朴素贝叶斯
线性模型:
1.逻辑回归:概率模型,预测摸个数据点属于正类的概率估计
2.支持向量机:对等连接函数估计值大于或等于阈值0时,标记1 否则标记0(阈值为自适应模型参数)
朴素贝叶斯:
概率模型,假设各个特征之间条件独立,属于某个类别的概率->若干个概率之积(特征在给定某个类别下出现的条件概率和该类别的先验概率,这些概率都可以通过数据的频率估计得到)
分类过程:就是在给定特征和类别概率的情况下选择最可能的类别
决策树:
非概率模型,表达复杂的非线性模式和特征相互关系,处理类属和数值特征,不需要输入股数据归一或标准化,适用集成方法,形成决策森林
每一个特征的决策通过评估特征分裂的信息增益,最后选择分割数据集最优的特征
评估方法:基尼不纯和熵值
- 线性模型: 逻辑回归和SVM有着相同的参数,由于都是使用SGD优化方案,不同在于两者的损失函数不同
(1) 迭代
(2) 步长: 较大的步长收敛较快,但可能导致局部最优解
(3) 正规化:通过限制模型的复杂度避免模型在训练数据中过拟合
具体做法:在损失函数中添加一项有关模型权重向量的的函数,从而使损失增加
正规化形式:SimpleUpdater,相当于没有正规化,是逻辑回归的默认配置,SquaredL2Updater,基于权重向量的L2正规化,是SVM的默认配置,L1Updater,基于权重向量的L1正规化,会得到一个稀疏的权重向量(不重要的权重值接近0)
- 决策树
(1) 树的深度和不存度调优:深度越大,得到的模型也复杂,有更好的拟合结果,但是要防止过拟合。不纯度,Gini或者Entropy,两种纯度的方法对性能的影响差异较小
- 朴素贝叶斯
(1) lamda参数:控制相加式平滑(additive smoothing),解决数据中某个类别和某个特征值的组合没有同时出现的问题 (?question ?)
- 交叉验证
一部分数据用来训练模型,一部分数据用来评估模型的性能(实际上至少使用50%的数据用于训练)
K-折叠交叉验证
1、logistic loss -> 逻辑回归模型 2、hinge loss -> SVM模型
-
线性模型: 最小二乘损失函数
-
决策树模型:不纯度度量方法是方差,和最小二乘回归模型的定义方差损失是一样的。但是可以使用较复杂的非线性模型来拟合数据
-
评估回归模型的性能 : 均方差、均方根差、均方根对数误差、平均绝对误差、 R-平方系数
-
模型参数调优
(1) 线性模型 : 迭代、 步长、L2/L1正则化、截距
(2) 决策树模型: 最大树深度、 最大划分数
-
K-均值聚类: 目标函数为,类簇内方差和(WCSS),类中心初始化不同衍生很多变种模型
-
混合模型: 类簇分布为软分配,每个样本由K个概率分布的权重表示
-
层次聚类: 凝聚聚类、 分裂式聚类
- 降维方法的种类: PCA(Principal Components Analysis, 主成分析法) 和 SVD(Singular Value Decomposition, 奇异值分解发)
how to use thess?
-
自然语言处理(NLP): 提取特征, 建模, 机器学习
-
特征提取技术: TF-IDF 短语加权表示 和 特征哈希
-
短语加权表示
(1) 词频-逆文本频率 : TF-IDF
解释: 在一个文档中出现次数很多的词相比出现次数少的词应该在词向量表示中得到更高的权重。而IDF归一化起到了削弱在所有文档中总是出现的词的作用。
最后的结果是:重要的词得到更高的权重,而更加常用的词(被认为比较不重要)在考虑权重的时候有较少的影响
- 特征哈希
使用哈希做特征抽取和机器学习的论文: http://alex.smola.org/papers/2009/Weinbergeretal09.pdf
- Word2Vec 模型
常称为分布向量表示,把每一个单词表示成一个向量,一个比较通用的实例就是,使用单词的词向量表示基于单词的含义计算来计算两个单词的相似度。skip-gram模型,这是一种考虑单词出现的上下文来学习词向量表示的模型
和TF-IDF主要不同就是文本向量的处理过程不一样
- 流处理
(1) 输入源: 文件、 网络输入源(基于网络套接字的数据源, 分布式流及日志传输框架)
(2) 转换: map、flatMap等, 可用来跟踪状态和普通转换操作
(3)执行算子(输出算子):print、saveAs*、 forEachRDD
(4)窗口算子: 窗口长度和滑动间隔
-
流回归模型
-
流K-均值