知道了核函数的表示形式(使用例如高斯核函数作为工具,计算样本x和地标l之间的距离作为特征f,其中f为核函数),之后就是讨论核函数地标的选择。
选择形式为:将训练集中的样本个数m选择,作为地标,获得m个特征f。并增加一个偏置f0=1。得到m+1维的特征f。
对于支持向量机的thetaT*x,则变为thetaT*f。其大于0,则表示为预测为正样本。对应的目标函数表示中的cost函数参数也进行变化为如下形式。
另外如下的式子中,正则化部分的tehta^2,等于thetaT*theta,变为thetaT*M*theta,其中M矩阵内容与核函数有关,目的为:简化计算(怎么简化了)。
另外,参数对于支持向量机模型的效果影响如下,其中C是目标函数中的参数,越大,表示更注重前者的代价部分,
在使得目标函数尽可能小的时候,则要求前者cost函数值更小,而要求后者正则化部分的theta对特征的影响更大,theta的作用更强,从而更容易过拟合。
sigma是高斯核函数的分母部分,值越大,其核函数图样就越宽大,相对于同样的theta和x(x为f核函数中的参数),只变化了cost函数中的f参数,使得其参数值f,更大。
而cost中的参数thetaT*f 更大,使得cost函数值更小,目标函数中前者更小,在要求目标函数尽可能小的情况下,更倾向于正则化项的大小对目表函数的影响,则要求降低theta的影响,更容易欠拟合。
其它类似推论吧
支持向量机,使用过程中细节非常多吧,非常复杂,一般使用函数库调用的方式。核函数的种类也很多,如多项式核,字符串核,卡方核等构建的距离特征,并满足Mercer定理。
另外的使用过程中,对数据进行缩放处理,使得数据中的每一个特征对机器学习模型的输出影响都是一定量的,不会过大而忽视了其他特征对于输出的影响。
多分类任务中,采用多个向量机,如k分类,采用k个向量机。(二分类采用1个向量机,三分类采用3个向量机,k分类k个向量机)。
其实采用k-1个向量机也可以吧(如果是非此即彼的关系),但是不够正式。采用k个向量机的分类方式,应该是1与其他的多个二分类问题吧。
在支持向量机和逻辑回归模型对于一个机器学习问题,的选择方面:
认为说训练数据集中,特征n相对于个数m来说,过大或者过小,都是使用逻辑回归模型(线性核函数与逻辑回归有不少类似的地方)。
特征与训练个数相当,则使用带高斯核函数的SVM。不知道,逻辑回归和线性核函数的表现类似,但是实际表现也有区别,或者高斯核函数。
另外,SVM更容易获得临近或者就是的,全局最优。
无监督学习,没有标签,只是将数据集分为k个簇的方法。
至于分为几个,可以根据需要、手动选择。K-means算法如下:
随机选择要非k类的k个地标点,作为初始点。
在数据集上,以距离作为度量方式,使用该k个地标点,将数据集,进行分类。对分完类的数据集,每类中的数据求均值,将均值赋值给该类中对应的地标点,完成一次地标点移动。
重复多次,获得数据集中每个类中的中心点,作为了地标点。
优化目标(代价函数)为J,意思是,在m个数据进行k分类的过程中,K-means算法下,要求地标点和该地标点对应的数据点的,距离和,最小。
认为在K-means算法中的两个循环步骤依次进行下,J一定要越来越小。
在选择分类的过程中,使得J函数中的x所属的分类变化(x对应的c变化),使得J减小。在计算均值过程中,使得J函数中的mu变化,导致J减小。
K-means的初始化点,对其效果影响很大。初始化的地标点,一般选择已经存在的数据点。为了降低初始化带来的局部最优等不良的影响,
多次初始化,多次计算得出的J,选择一个最小的误差J和该对应的模型,作为最终的结果。下面是相同的思路,不同的表达方式(伪代码):
选择聚类数,一种方式是根据需要手动选择,如在服装大小制造,消费者群体,成本与收益的问题上,将消费者分为几个类别的服装大小,不仅是和目标函数J有关,
根本上,是和商家收益相关(每个衣服量身定做,当然是好了J,但是成本上升)。所以在定分类数上,需要另外斟酌。
也可以根据目标函数J,来选择k的大小作为一个参考,如使用肘部的点,作为参考。
如下是J随着分类数量的增长而下降的趋势。肘部方法(Elbow method)认为,在分类为3处取得最好的结果。