分类算法2_使用

几种常用分类算法

监督模型
  • 逻辑回归

    回归任务是结果为连续型变量的任务,logistics regression是用来做分类任务的,为什么叫回归呢?首先看一下用来做回归任务的线性回归

    • 线性回归

      其方程 z=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n\theta被称为模型参数,\theta_0称为截距,\theta_1~\theta_n为系数。和之前接触到的y=ax+b是同样的性质。可以用矩阵表示:
      z=\begin{bmatrix} \theta_0,\theta_1,\theta_2...,\theta_n \end{bmatrix}\begin{bmatrix}x_0\\x_1\\x_2\\...\\x_n\end{bmatrix}=\boldsymbol{\theta}^T\boldsymbol{x}\quad(x_0=1)

      核心是找出模型的参数\boldsymbol\theta^T,得到预测函数z来映射输入的样本特征矩阵\boldsymbol x和预测值之间的线性关系。

    • 方程z可以输出一组连续的预测值,完成预测连续形变量的任务,但对于离散型变量的预测如何预测呢?

    通过引入联系函数,将z变换为g(z),并且令g(z)的值分布在(0,1)之间,且当g(z)接近0时样本类别为类别0,当g(z)接近1时的样本类别为类别1,这样就的到一个分类模型。

  • 逻辑回归的联系函数是Sigmoid函数:
    g(z)=\frac{1}{1+e^{-z}}
    将线性回归模型的输出作为逻辑回归联系函数的输入可得逻辑回归模型的方程:
    g(z)=y_{\theta(x)}=\frac{1}{1+e^{{\theta^{T}{x}}}}
    下图为y=g(z)的几何图像:

    image

    由上图可知,对于z>0情况,规定为一个分类;z<0情况,规定为另一个分类。逻辑回归分类模型的分类边界为z=0, 即\boldsymbol{\theta}^T\boldsymbol{x}=0,如图表示在两个特征情况下的边界:


基本的思路是如上所述,那么如何找到更好的参数\boldsymbol\theta^T使得模型的表现有更加准确的效果。因此引入损失函数,并且对损失函数进行优化,得到一组最好的参数是模型有较好的表现。

  • 损失函数,该函数表示预测的输出y_\theta(x)与训练数据类别y之间的偏差:
    Cost(y_\theta(x),y)= \begin{cases} -log(y_\theta(x)),&\text{y=1}\\-log(1-y_\theta(x)),&\text{y=0} \end{cases}
    综合考虑所有训练数据的“损失”,将Cost求和或者求平均,表示所有训练数据预测值与实际类别的偏差。记为J(\theta):
    J(\theta)=-\frac{1}{m}[\sum_{i=1}^m(y_ilog(y_\theta(x)+(1-y_i)log(1-y_\theta(x)))]
    y_i表示第i个样本的真实类别,y_\theta(x)为预测的输出,m为样本总数。

  • J(\theta)函数的值越小表示预测函数越准确,随意求解使得损失函数J(\theta)取得最小值的参数\mathbf{w}^T,可以得到最优的结果,得到最佳的决策边界。

  • KNN

    K-Nearest Neighbors

    就是在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类,其算法的描述为:

    1)计算测试数据与各个训练数据之间的距离;

    欧式距离d(x,y)=\sqrt{\sum_{k=1}^n(x_k-y_k)^2},曼哈顿距离d(x,y)=\sqrt{\sum_{k=1}^n|x_k-y_k|}

    2)按照距离的递增关系进行排序;

    3)选取距离最小的K个点;

    4)确定前K个点所在类别的出现频率;

    5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。

  • SVM

无监督模型
  • K-means
K-means

上图以K为2,样本集为M来描述K-means算法,算法执行步骤如下:

  1. 选取K个点做为初始聚集的簇心(随机,也可选非样本点)。

  2. 分别计算每个样本点到 K个簇核心的距离(这里的距离一般取欧氏距离或余弦距离),找到离该点最近的簇核心,将它归属到对应的簇。

  3. 所有点都归属到簇之后, M个点就分为了 K个簇。之后重新计算每个簇的重心(平均距离中心),将其定为新的“簇核心”。

  4. 反复迭代 2 - 3 步骤,直到达到某个中止条件。

注:常用的中止条件有迭代次数、最小平方误差MSE、簇中心点变化率
  • 不同模型在相同数据集下的对比

    • 数据集设置:100条数据,类别为两类,数据特征(维度)为两个。数据分布如图:
data_distribute
  • 使用逻辑回归算法得到决策线,并对测试样本进行预测,得到预测结果:
logistic
  • 使用svm画出决策边界,并进行相同的预测:
svm_plot
  • 不知道类别情况下,假设样本类别为2,3,4类情况下对同样的数据集利用K-means算法进行聚类,得到结果:

KMeans_plot

程序

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,784评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,745评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,702评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,229评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,245评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,376评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,798评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,471评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,655评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,485评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,535评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,235评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,793评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,863评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,096评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,654评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,233评论 2 341

推荐阅读更多精彩内容