机器学习算法的一些启发

最近在学习机器学习,在分类算法中有两个算法让我产生了一些启发。一个是KNN算法,另外一个是决策树算法。

先看KNN,也叫K近邻算法,基本想法是计算新样本和数据集中每一条数据的欧氏距离,计算出的距离进行从小大到的排列,取前K个结果,然后看出现次数最多的那个类别,这个类别就是新样本的预测分类。算法的思路对照到生活中的事物,比如,经常会听到别人说你的财富水平由你身边最常出现的5个人的财富平均值决定。你的人品可以通过你结交的最要好的几个朋友来确定。你的认知由你身边5个人的认知平均值决定,某个房子的价格通常由旁边房子的平均值决定等等。现在对这些观点终于有了一个比较靠谱的解释,KNN算法。当然,这种分类只能说是预测,大概率,不一定完全正确。这给我们什么指导建议呢?很简单,主动去靠近优秀的人、积极主动的人等等。远离那些消极负能量的人、坑蒙拐骗心术不正的人、投机倒把的人、否定你的人等等。可能去接近优秀的人还需要你慢慢变得优秀,但是首先远离那些拉低你的人,你就离优秀的人近了一步。

再看看决策树, 这个算法的思路是决定使用数据集中某个属性的值(决策节点)来划分数据集,比如一整块数据从某个属性来判定,yes的放到一侧,no的放到另一侧,对于下一层的数据,即两侧的数据。判定是否仅带有标签数据,是的话则为叶子节点返回标签值。不是的话则继续使用另外一个属性的值来划分数据集,直到被划分的数据仅带有标签值或者达到规定的层数后返回出现次数最大的标签值为预测值。这个算法的思路类似于我们的决策过程,比如判定一个人的收入是否高于2万,是的话可以贷款,不是的话继续,是否有房子,是的话可以贷款,不是的话继续,是否结婚,结婚了的话可以贷款,单身的话不能贷款。然后有一个新贷款申请者,我们就可以根据他的收入、房产、婚姻状态来决定是否贷款。基本思路就是这样,但是算法里最关键的是要首先使用哪个属性或特征来作为数据的划分依据呢?答案是根据信息增益大的那个特征。也就是使用这个特征划分数据后,数据显得更纯,信息熵更小。这给我什么启发呢?我们平时面对某个决策可能会涉及很多的变量和信息,让你无从下手。比如买房子,变量就由位置、价格、面积、配套、学区、楼层、朝向、二手房/新房、满五还是满二等等。这么多的信息,你应该从哪里下手来做第一步的打算呢?答案是选择那个变量来决策,信息熵会减小的最多。在这里就是位置。房地产最重要的变量就是位置,选好了位置后,你的这个决策在以后就会体现出价值,就会增加你的财富。你的生活就更顺畅,纯度更好(熵小)。其他的所有变量都基于位置确定后,再根据你的偏好来进行决策,比如有孩子看中学区房,那就选择学区房,比如看中朝向,那就筛选朝向,比如看中价格,那就筛选价格等等。这样在面临买房决策的时候,只要首先找到一个好位置,其他的因素就无足轻重了。为什么常有人说花一秒看懂本质的人注定人生会不一样,其实背后的原理可能就是信息熵的问题。当你抓住事物的本质,你就可以将看似混乱、变化无常的事物分的很清晰,从而可以从容的面对和决策。如何提升这种看清本质的能力?目前的我也还处于菜鸟阶段,在我看来,主要是多实践、多看书、多总结、多学习、多请教。就好像一个杂乱无章的桌子和房子,如何让桌子和房间变得更加有序?第一步:先丢东西,仅留下最重要的东西。第二步:开始打扫和分类。你看,如果一开始就打扫和分类,会让你很累还不容易出效果。而这个方法我是从之前的错误中体验,然后在书中学到正确的方法、在实践中运用看到效果、再不断的优化和总结、最终提炼出打扫卫生的第一步应该丢东西而不是开始分类。

今天就写到这,在学习机器学习的KNN算法和决策树算法的时候,联想到生活中碰到的一些事物背后与这两个算法的思路有共同点。KNN让我们远离垃圾人,靠近优秀的人或资源。决策树让我们找到混乱事物中可以让信息熵变得最小的那个变量,也就是去尝试看到事物的本质。站在某个角度去看世界会更清晰。枯燥的机器学习算法和现实生活结合后好像就变得有点意思了。

你可能感兴趣的:(机器学习算法的一些启发)