——————————————————————————————————
相似度是很多数据科学方法和商业解决方案的基础。如果对象之间相似,那么它们共享着很多其他的属性。利用相似度我们可以对事物进行归类,并在此基础上做出各种决策。以下是几个例子:
将分析的对象数据化之后,我们便可以引进距离函数来衡量对象之间的相似程度。利用对象之间的距离我们便可以对对象空间进行划分,进而得到不同的组别。
Note:
对象属性数据化时会有Heterogeneous Attributes
主要是 Numeric 和 Categorical 两大类
其中Numeric 型数据需要注意的是数据的Scale 和 Range
用于度量两个字符串之间的差异
例如:【1113 Bleaker St. 】 【113 Bleecker St.】
最主要思想是:记录将一个字符串转变为另一个字符串所需要的最小改变步数
(counts the minimum number of edit operations required to convert one string into the other)
思想:
给定一个样本后,我们遍历所有训练集,寻找出几个和新样本最为接近的训练样本,然后基于选出的这些样本来预测新样本的属性
如图‘?’所示样本点是我们需要预测的点,寻找到离它最近的三个点得到两个‘+’一个‘·’的结果,基于这个结果,如果我们采用投票(majority vote)的原则,那么新样本点应当属于‘+’
PS:进一步我们需要考虑我们应该取多少个最近点(k),每个点是否应该有不同的权重
上面的例子我们只是给出了属于哪个类别的结论,现实运用中我们往往需要样本属于各个类别的概率值,所以接下来我们讨论概率估计
在上面的例子中,我们取k=3,属于‘+’的有两个,属于‘·’的有一个,所以我们可以估计(假定权重一致)
Nearest - neighbor Method 不仅仅可以用来分类,其实还可以用来预测对象的数值(类似回归预测)
例如新样本的最近三个训练样本的A属性值(numeric)分别为1,2,3 (假设设定相同的权重),那么我们可以预测新样本的A属性值为(1+2+3)/3 = 2
(Note: 与传统回归不同的是,我们在选取新样本的邻近样本是并未用到属性A)
关于 K 值选取的讨论
权重计分方式可以较好地权衡K值选取的问题,距离较远的点其权重降低,自动将不重要的点去除(约等于)【Weighted scoring has a nice consequence in that it reduces the importance of deciding how many neighbors to use. Because the contribution of each neighbor is moderated by its distance, the influence of neighbors naturally drops off the farther they are from the instance. Consequently, when using weighted scoring the exact value of k is much less critical than with majority voting or unweighted averaging.】
两个特例:
Nearest-Neighbor Method 的公式化表示:(Combination Function)
Majority vote classification
【Here neighborsk(x) returns thek nearest neighbors of instancex】
Majority scoring function
Similarity-moderated classification
the distance is commonly used:
Similarity-moderated scoring
Similarity-moderated regression
Nearest - Neighbor 方法注意点
可解释性(Intelligibility)
可解释性问题主要表现在两个方面
综上:如果模型的可解释性和决策理由受到质疑时,我们应当尽量避免使用这个模型
维度问题和领域知识(Dimensionality and domain knowledge)
有太多的特征,或者说有太多的与相似度计算无关的变量会成为一个问题,因为那些无关变量会对距离计算产生误导,也即计算出来的距离不能很好地衡量我们希望看到的相似度。
在高纬度情况下这种现象可以称为‘维度的诅咒’(curse of dimensionality)
解决办法:
Nearest-Neighbor Method 的效率
Hierarchical cluster 的思想
对于聚类而言,最普遍的方法便是将每个类别用他们的聚类中心来表示
基于聚类中心的算法中,我们最为熟悉的当属 k-means cluster
算法开始的时候初始化k的聚类中心,一般是随机生成,有时候会从数据点中选取出k个点,或者用户自己认为给定k个点,或者利用一些预处理的方式选出k个点
重新计算每个类别的聚类中心,替代掉原有的中心,一直迭代直到不再变动(或者到达迭代的阈值)
The results can be compared by examining the clusters(more on that in a minute), or by a numeric measure such as the clusters’ distortion,which is the sum of the squared differences between each data point and itscorresponding centroid. In the latter case, the clustering with the lowestdistortion value can be deemed the best clustering.
Understand cluster
Multiple cluster
We have k clusters so wecould set up a k-class task (one classper cluster). Alternatively, we could set up a kseparate learning tasks, each trying to differentiate one cluster from all theother (k–1) clusters.
Recall