k聚类
随机生成两点为聚类中心
蔟分配和移动聚类中心
pca
理论部分:
线性学习
代价函数和距离有一些差别,就是y的差的平分再除以两倍的个数,要定义成凸函数
代价函数定义好了就是梯度下降
定义参数
矩阵运算
更新参数 链式法则求偏导。
继续循环
参数也就是对应的特征,特征选取,每次要计算完所有的才能更新一次参数
矩阵运算
由一元扩展到多元,输入矩阵维度变多了而已。这里在数据的处理上应该注意特征的缩放,也就是归一化处理
调整学习率
设计不同特征
逻辑回归
转换函数,来使其输出0,1符合复合函数的规则。
其中有一个线性的部分和一个非线性的转换构成。通过线性部分大于小于零来分类,学习过程和线性的一样。
代价函数也会有一些不同,主要的凸化的问题。-的对数函数设计得非常合理,很棒。
梯度下降得偏导数没有变,按理来说应该变化的。
高级优化讲一些更新参数的方法。
由单分类过度到多分类。
先把其它的看成一类,然后进行接下来的分类。
神经网络 非线性学习
梯度下降会出问题,误差高一个数量级
用双侧差分去验算反向传播的
初始参数初始化为一个在0附近的值
一部分为训练、一部分为测试 7:3
训练、验证、测试
选择模型、测试误差、测试泛化能力。
左边为偏差、右边为方差
正则化参数也要通过不同的模型来进行选择。
学习曲线就是随着数据量的增长,其平均误差的变化
相差很大的时候,是要考虑增加一个训练数据了
训练集数量
更少的特征
增加特征
增加项数
增加正则化参数
减小正则化参数
其实主要是对应于模型是复杂了还是简单了之间的问题。
设计复杂机器学习系统时会遇到哪些问题呢?
首先一个机器学习的应用不是构造一个复杂的和有很多复杂特征的系统,而是通过一个简单的算法来快速实现它。
然后通过学习曲线,来看你是否有高方差或者说高偏差,针对性来进行改进。
同时也应该关注那些失败的例子,看是否可以设计出更好的特征。
在不对称分类中可以通过设计不同的阙值来控制查准率和召回率。
svm
支撑向量机即是把前一部分的损失函数给改成分段的线性的了。
核函数
选取点将其表示为到点距离的高斯函数,通过样本点来对整体的数据进行分类
svm也被称为大间距分类器,是因为点到分类线上的投影的问题。
监督和无监督
k聚类
通过先选取k个点,然后通过计算其的距离,更新中心点重新计算。最后算法趋于稳定。
有可能出现异常分割的问题。通过多次随机化解决。