本来计划这篇博客写如何用web前端写2048,但是鉴于以前的代码写得太乱,暂时并不打算继续这个话题了;
本篇的主题是“感知器及其C++的实现”,我会简单介绍模式识别中的感知器是个什么东西,并且会给出我写的C++代码
进入正题:
什么是感知器?
引出:
比如说某银行的分析软件有这样一项功能,通过输入某客户的个人信息(年龄、性别、职业、收入、欠债情况、信用情况等),返回是否给该客户提供信用卡服务;对于这个问题,我们可以定义某个函数f可以完成这样的功能,但是这个f是未知的;但是通过很多先验数据(已经通过人工判定是否发放行用卡),我们可以估计出这样一个函数g(宏观上来说就和人一样,当你对于某个事件见得多了,下次你就能预见其可能状态了),它能够做出和f相似的判定;这就是数据驱动。
其中此例子的数据是指:通过人工判定是否发放信用卡的数据,称之为是带有标签的。
对于是否发放信用卡此类问题,只有两种结果:发或不发;对于这样的,只有两种状态的问题,我们可以用一个线性感知器来完成。
怎么操作呢?
首先我们做一个转换,将数据都转换成可以计算的量,不妨都装换为数字,比如有一个这样的用户jerry,其用户数据如下
{
yearsold: 20, //年龄
salary: 10000, //月收入
debt:100000 //欠债
}
可能客户不同的信息在是否发放信用卡这件事上占有不同的比重,那么我们可以给每条数据的每个信息加上一个比重w求和(加权求和)。则可以得出一个总的权重:
y = yearsold *