分类算法的一点思考

分类算法可以用最基本的中学数学的求值问题这样表示:

已知:一个数据集合Data,一个类别集合Class,对每一个data属于Data,存在标签class属于Class

求:一个新的数据data2,求最佳的class2

1,最直接的算法是看看data2是否在Data中,如果在,就直接可以求出class2了。

然而机器学习的关键并不是总结,而是预测,大量出现的data2是不存在于已知集合Data中的。

2,那就蒙一个,从Class中随便选一个

这是一种很不错的办法,但是也很有问题,因为它没有利用到已知数据集合Data的信息,所以这种算法也很弱智了。

3,利用已知集合Data中的一些信息,因为Data中每一个数据都有一个标签,我们可以求出出现数目最多的标签类别,赋值给data2。

这是一个很大的进步,因为已经意识到利用已知信息了,但是这还不够,我们只利用了Data的标签类别,但是没有用到Data数据本身。

要用到Data数据本身,需要做一些假设,如果不做任何假设的话,我们想象不到Data数据本身会有什么用。

4,假设相近的数据会有相近的类别,也就是说相近的数据类别相同的可能性更大。

这种想法很直观。由此,我们要首先定义一个类别的度量,然后在Data中只要找到与data2最相近的data,类别赋值即可。这就是最近邻算法。

可是最近的会不会具有代表性?也许这个最近的只是一次偶然的标识此类别呢?虽然这种可能性很小。

5,一样的假设,相近的数据会有相近的类别,选取k个最相近的data,看看哪个类别最多,赋值即可。

这就是k近邻,从概率论的角度来说,k个数均值的方差要小于1个数的方差。选用适当的k值,可以提高预测的稳定性。

然而,是不是可以增加一些新的假设呢?

6,假设数据时线性可分的,即可用一个超平面把数据分成两份,一边是类C,一边不时类C

这就是线性判别分析,后来提出的感知器算法,就可以很好解决这个问题。

然而假设为线性可分很多时候并不合适,虽然线性的算法简单也利于理解。

我们是不是可以采用更高次数的分类算法。

7,反馈神经网络

假设数据可以非线性可分,可设计一些非线性函数,神经网络有很好的BP算法。

然而如果数据即可能属于类c1,也可能属于类c2呢,要怎么办才能求出属于某个类的概率呢?

8,贝叶斯分类

贝叶斯分类充分利用了我们早先已知的一些信息,比如我们知道c1的类别会有多少,c2的类别会有多少,但是贝叶斯有多了一些假设:

a,数据是有一个混合模型产生的,即一个数据既可能由类c1产生,也可能由类c2产生

b,一个真实的数据只可能有一个类c产生,他的标签类别就是类c。例如,一份报告要不是由国防部拟定的,要不是由财政部拟定的,不可能是两者一起拟定的。

贝叶斯算法可以利用贝叶斯数学公式,精度也很高,大概是最近邻算法的两倍。至于两倍是一个什么概念?莫非最近邻达不到50%?现在不是很清楚。


先写这么多吧,以后有了思考再写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值