在训练集中设置出现频率较高的特征作为特征向量去识别或者分类
2 P R / P + R 2PR/P+R 2PR/P+R
防止欠拟合和过拟合
逻辑回归的假设函数: h θ ( x ) = 1 / 1 + e − θ T x h θ(x)= 1/1+e−θTx hθ(x)=1/1+e−θTx
对逻辑回归函数进行修改,得到SVM的代价函数:
距离两侧决策边界最远的分界函数
正则化参数会影响拟合效果,没设置好同样会导致过拟合影响间距
将原始空间中的向量作为输入向量,并返回特征空间(转换后的数据空间,可能是高维)中向量的点积的函数称为核函数。
使高维度的计算复杂度降低
相当于是三维的正态分布
C越大,方差越大,会过拟合
C越小,偏差越大,会欠拟合
没有核函数的情况,使用的是线性内核
有核函数的情况,使用的是高斯内核
数据中不带有任何标签
将数据输入到算法中,让算法得到数据中的一些结构,比如簇和类
市场分割
社交网络群体
组织计算机群体
银河系的组成
聚类中心,将数据分为两类
不断执行内循环,计算均值,移动聚类中心,然后分为两个簇
直到聚类中心不再改变
初始化随机确定k个聚类中心
然后内循环,外循环
如果有很远的数据点,会选择直接移除
分簇,让每个数据距离聚类中心的数值最小,以此来作为代价函数的参数,移动聚类中心,再次迭代距离,以此减小代价函数的参数。
避开局部最优
通过这样的方法,在一定程度上可以达到比较好的聚类成果
即聚类中心K的参数
通过改变聚类数目来观察代价函数和畸变值,选出图像中转折比较大的点,类似于胳膊的肘部
但是有时候会出现没有拐点的情况,所以该用法不适用于所有情况
设置的聚类数目可以根据实际情况的目的来设置,即更好地可以匹配后续目的的参数
从实际角度去考虑,是否需要那么多的K值
可以使数据看起来不那么冗余,将数据映射到一条直线上,减少内存的同时提升计算速度
三维时,将数据投影到一个面上,然后用二维向量表达
这是降维的一大作用——可视化数据
可以将多维的数据用有代表性的二维数据替代,然后可以画出来将数据可视化
让数据在一个低维平面投影是投影误差最小
在做降维之前先均值归一化处理数据
pca和线性回归的区别
通过pca得到特征值中理想的特征向量,以此压缩数据维度
原始数据的重构:将低维度数据重现高维度的近似表示
用正交阵和线代部分内容可以
对主成分的提取值做方差和误差分析处理,误差值小于多少,就会有多少的数据被重构出来
找出影响目标变量某一要素的几个综合指标,使综合指标为原来变量的线性拟合。
协方差矩阵
非监督学习
在已经训练好的数据集中设定几个范围,在对于要预测的数据,不在范围内的数据,或者过于异常的数据,我们需要重新对这个数据进行检测
提出一些特征值和特征向量,以此来判断暗些反常数据
应用示例
类似于高中的,其实就是高中的正态分布
是之前的高斯核函数
用极大似然估计判断所处的位置及高斯函数的类型
对参数进行了估计,得到高斯函数的两个值,然后对预测值进行判断,检测其是否异常
实现某种学习算法时,要选择合适的特征值作为参数
纳入这个特征值和没纳入这个特征值时得到的数值来判断该特征对于算法的作用
最好不要将相同的数据同时作为交叉验证集和测试集.
对于样本数量少,或者标注样本成本比较高时,可采用监督学习;
对于正样本数量多,出现样本次数多且易分类时,可选择异常检测
当数据不太符合正态分布时,可以选择对数据做一些处理,比如取对数之类,让其得到我们想要的方差和均值
在数据出现异常,导致算法卡住循环时,可以新建一种特征,再输入数据,以此建立新的异常检测算法
可以检测到原来异常检测不能发觉的异常数据
多元正态分布:数据之间存在着正相关或者负相关,用多元数据可以明显看出数据之间的关系,通过改变数值,很清楚地观察到数据之间的关系。
想要用机器学习得到更好的推荐系统
机器学习中的一些伟大的思想
对于在一些环境中,可以让算法自己去学习新的特征,然后得到新的学习算法
而推荐系统就是这样的环境中一个例子
根据你喜欢的东西给你推荐,类似于大数据
对于不同的数据的不同特征,设立输入数据相应的偏置项
基于内容是指我们会手动的将数据的一些特征作为假设已知的,来对数据进行预测。
但实际问题中,往往不会有这样的特征存在
自行学习所需要的特征
协同过滤是应用最早和最为成功的推荐方法之一,利用与目标用户相似的用户已有的商品评价信息,来预测目标用户对特定商品的喜好程度
分为
基于用户的协同过滤(UserCF)
基于物品的协同过滤(ItemCF)
基于用户的协同过滤
基于物品的协同过滤
把实际问题中的特征用矩阵表示,然后把矩阵分解,分别逐行来表示
也称低秩矩阵分解
为了让训练的数据集表现得更好些,对某些数据为空或者是0的特征
会采用均值归一化处理:
运用大数据集去训练学习到的算法,可以很好地预测算法的偏差值,要学会利用大数据去将算法优化
普通的梯度下降算法在数据集较多的情况下会比较难计算
故应用随机梯度下降去处理大数据集
批量梯度下降法:每次对所有训练集进行考虑
如果数据集很大时,对于每次梯度下降,都要重新遍历一次所有数据
随机梯度下降法:对于遍历随机数据,是经历了一次内循环后,在进行外循环的每次遍历。
不用对全体数据进行求和,而是对每个单独的数据进行参数优化
随机梯度下降可以做到的是全局最优化的参数解,最终可以达到在最小值附近
而批量梯度下降是每次都是最优解
每次样本用b个,介于1和所有数据样本之间
每次只需要运行完b个样本就可以更新数据,不用遍历完全部数据
如果有好的向量化方法,又很好的确定b的值,那这个算法会比随机梯度算法快得多
通过每阶段数据下降后,可以对之前遍历过的数据进行代价函数的计算,计算器偏差的平均值,以此来绘图观察其是否在收敛
有连续输入的数据流时,可以从实时的信息中来优化关于算法的决策
每次用户搜索的关键词会有十个数据样本产生,用这样的数据去调整更新算法中的参数,根据不同用户的需要去调整推荐样本
在线学习的本质是实时根据样本修改参数
MapReduce:
照片OCR:照片光学描述,如何让计算机读出照片中文字信息
滑动窗口分类器:在识别图像中不断滑移,把全部图像都过一遍判断识别对象中是否有训练集中出现的对象
滑动窗口流水线是监督学习算法
首先是要输入对象训练集,然后让算法对对象的特征有一定的了解,接着输入测试集去验证分类器
二值化、复试膨胀算法处理图像,框选出所需要判断的对象
对于框选到的对象进行分割处理,用监督学习识别正样本和负样本,进行区别
人工数据合成:
自己创造数据
将较小的训练集扩大成大训练集
当面对一个机器学习问题时可以做的事情:
上限分析:通过对每个模块的工作做提升,关注每个步骤的准确率,看对于整体的影响有多大,重点应该放在影响最大的地方