第一个分类算法

以前我们要预测的y是连续的,现在我们即将要讨论的分类算法中,y是离散的值。

先看一些分类的问题,像medical diagnosis——医学诊断,判断你是否生病;垃圾邮箱过滤器——判断一封邮件是不是垃圾邮箱。

也不是说这样的问题完全不能用线性回归的方式进行分类,但有很多时候,线性回归不能很好地进行分类。

假设现在我们知道这个y∈{0,1},y只能取0或1. ,所以我们的假设hθ(x)不能再是线性函数                                    所以现在我们要改变我们的hypothesis,即hθ(x) ,使新的hθ(x) 的值在[0,1]里。

我们选择

          hθ(x) = g(θT*x) = 1    /  ( 1+exp(-θT*x)  )

      g(z) = 1/(1+e^-z)

is called the logistic function or the sigmoid function

P(y = 1 | x;θ) = hθ(x)

P(y = 0 | x;θ) = 1?hθ(x)   即用这个hθ(x)来预测y=1或0的概率

合在一条式子里就是:p(y | x;θ) = (hθ(x))^y* (1?hθ(x))^(1?y)

和之前一样:L(θ)=p(y | x;θ)=

=(连乘,从i=1到i=m)p(y^(i) | x^(i);θ)

= (连乘,从i=1到i=m)   (hθ*(x^(i))^y(i) * (1?hθ(x^(i))  ^(1?y(i))

同样的,为了更好的数学计算,我们又定义?(θ) = logL(θ)

= (连加,从i=1加到i=m)y(i) logh(x^(i)) + (1?y^(i))log(1?h(x^(i)))   这里hθ(x^(i))漏写了θ

好的那么我们怎么另这个函数最大化呢?

我们可以用之前学过的梯度下降算法,虽然那个是最小化。

这就是logistics regression

这玩意看起来是不是很眼熟!!感觉和之前那个线性回归的表达式一毛一样,就是那个减号变成加号而已

但这根本是两个完全不同的算法!因为这个hθ(x^(i))不是线性函数

来再讲一下这个感知器算法(perceptron algorithm)

在logistic regression中,我们的 g(z)会生成0-1之间的数,而感知器算法的g(z)是这样设定的:

时间: 2024-10-19 14:54:08

第一个分类算法的相关文章

人工智能第一课:使用分类算法预测糖尿病

原文链接:https://mp.weixin.qq.com/s/nXFVTorYOm5LjRV5Cic2_w 如果你不能用数据表示你所知,那么说明你对它所知不多:如果你对它所知不多,那么你就无法控制它:如果你无法控制它,那么就只能靠运气了. -- 陈希章 ? ? 不久前,我开始正儿八经地系统地学习人工智能,并且发起了一个结对学习的活动,目前已经有将近20位同学一起结对,详情请参考下面文章的说明-- 约你六个月时间一起学习实践人工智能?. ? 目前仍接受报名,但我会对人数总量做一定的控制,并且各位

分类算法总结

      目前看到的比较全面的分类算法,总结的还不错.       主要分类方法介绍解决分类问题的方法很多[40-42] ,单一的分类方法主要包括:决策树.贝叶斯.人工神经网络.K-近邻.支持向量机和基于关联规则的分类等:另外还有用于组合单一分类方法的集成学习算法,如Bagging和Boosting等.      (1)决策树       决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序.无规则的实例中推理出以决策树表示的分类规则.构造决策树的

转载:算法杂货铺——分类算法之决策树(Decision tree)

作者:张洋 算法杂货铺——分类算法之决策树(Decision tree) 2010-09-19 16:30 by T2噬菌体, 44346 阅读, 29 评论, 收藏, 编辑 3.1.摘要 在前面两篇文章中,分别介绍和讨论了朴素贝叶斯分类与贝叶斯网络两种分类算法.这两种算法都以贝叶斯定理为基础,可以对分类及决策问题进行概率推断.在这一篇文章中,将讨论另一种被广泛使用的分类算法——决策树(decision tree).相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置,因此在实际

Spark-Mllib中各分类算法的java实现(简易教程)

一.简述 Spark是当下非常流行的数据分析框架,而其中的机器学习包Mllib也是其诸多亮点之一,相信很多人也像我那样想要快些上手spark.下面我将列出实现mllib分类的简明代码,代码中将简述训练集和样本集的结构,以及各分类算法的参数含义.分类模型包括朴素贝叶斯,SVM,决策树以及随机森林. 二.实现代码 import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache

初识分类算法(3)-----朴素贝叶斯算法

1. 例子引入:如上篇的play or not 例子. 未知分类的样本:D:<A=sunny, B=cool, C=high ,D=strong>,  是 or 否? 我们要判断该样本的分类,即比较该样本属于是的概率大还是否的概率大 P(是/否|A=sunny, B=cool, C=high ,D=strong) P(是|A=sunny, B=cool, C=high ,D=strong)=P(是,(A=sunny, B=cool, C=high ,D=strong))/P(A=sunny,

第二篇:基于K-近邻分类算法的约会对象智能匹配系统

前言 假如你想到某个在线约会网站寻找约会对象,那么你很可能将该约会网站的所有用户归为三类: 1. 不喜欢的 2. 有点魅力的 3. 很有魅力的 你如何决定某个用户属于上述的哪一类呢?想必你会分析用户的信息来得到结论,比如该用户 "每年获得的飞行常客里程数","玩网游所消耗的时间比","每年消耗的冰淇淋公升数". 使用机器学习的K-近邻算法,可以帮助你在获取到用户的这三个信息后(或者更多信息 方法同理),自动帮助你对该用户进行分类,多方便呀! 本文

算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)

算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification) 0.写在前面的话 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感.而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是我在其它地方体会不到的. 一直想写关于算法的博文,也曾写过零散的两篇,但也许是相比于工程性文章来说太小众,并没有引起大家的兴趣.最近面临毕业找工作,为了能给自己增加筹码,决定再次复习算法方面的知识,我决定趁这个机会,写一系列关于

Mahout 分类算法

实验简介 本次课程学习了Mahout 的 Bayes 分类算法. 一.实验环境说明 1. 环境登录 无需密码自动登录,系统用户名 shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面上的程序: XfceTerminal: Linux 命令行终端,打开后会进入 Bash 环境,可以使用 Linux 命令: Firefox:浏览器,可以用在需要前端界面的课程里,只需要打开环境里写的 HTML/JS 页面即可: GVim:非常好用的编辑器,最简单的用

基于K-近邻分类算法的手写识别系统

前言 本文将继续讲解K-近邻算法的项目实例 - 手写识别系统. 该系统在获取用户的手写输入后,判断用户写的是什么. 为了突出核心,简化细节,本示例系统中的输入为32x32矩阵,分类结果也均为数字.但对于汉字或者别的分类情形原理都是一样的. 有了前面学习的基础,下面直接进入项目开发步骤. 第一步:收集并准备数据 在用户主目录的trainingDigits子目录中,存放的是2000个样本数据. 每个样本一个文件,其中一部分如下所示: 文件命名格式为: 分类标签_标签内序号 如 0_20.txt 就表