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

原文链接:https://mp.weixin.qq.com/s/nXFVTorYOm5LjRV5Cic2_w

如果你不能用数据表示你所知,那么说明你对它所知不多;如果你对它所知不多,那么你就无法控制它;如果你无法控制它,那么就只能靠运气了。

—— 陈希章

?

?

不久前,我开始正儿八经地系统地学习人工智能,并且发起了一个结对学习的活动,目前已经有将近20位同学一起结对,详情请参考下面文章的说明—— 约你六个月时间一起学习实践人工智能?。

?

目前仍接受报名,但我会对人数总量做一定的控制,并且各位在加入之前必须想清楚自己能否真的花时间坚持下去,一定时间没有学习进度的会被请出群。

?

我之前承诺大家,会将在学习过程中的笔记分享出来。这是第一篇,也是我完成第一门课《Introduction to Artificial Intelligence》第一单元《Machine Learning》的一些心得。

?

我写的笔记,只是学习过程中的一些记录,或者一些思考,很有可能会有很多地方有错误,欢迎大家指出,帮助我提高。

?

?

这门课是人工智能入门,它的内容分为四个部分:机器学习概述,语音和通信,计算机视觉,对话平台。

?

?

本节介绍了机器学习的基本概念,主要应用场景,并着重通过以Azure Machine Learning Studio为载体,讲解了导入数据、建立和训练、验证模型,发布成Web Service的全过程,通过完成本节学习,你可以对Machine Learning有些基本概念,而课后的练习是一个完整的范例,你可以了解如何通过分类算法建立模型来实现糖尿病的预测。(它分别使用了逻辑回归和决策树算法做比较,并最终选择了决策树作为最优解)。

?

机器学习的定义,有兴趣可以参考维基百科的说明:https://zh.wikipedia.org/wiki/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0

?

机器学习是人工智能的一个分支。人工智能的研究历史有着一条从以"推理"为重点,到以"知识"为重点,再到以"学习"为重点的自然、清晰的脉络。显然,机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习在近30多年已发展为一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动"学习"的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。很多推论问题属于无程序可循难度,所以部分的机器学习研究是开发容易处理的近似算法。

?

看了这么一大段的介绍,其实还是会比较晕。其实最简单理解的话,机器学习最重要的研究目标就是从大量的数据中找出来一些规律,并且能利用该规律进行预测。

?

经过这么多年的发展,解决绝大部分问题的算法都已经存在了,我们现在很多时候要做的是收集和准备数据(包括清洗和整理),然后根据业务领域经验建模,并且选择不同的算法去训练模型、验证模型,发现和逼近最好的预测模型。下图是目前Azure Machine Learning 中支持的算法列表。

?

?

机器学习根据其原理分为

?

  1. 监督学习
  2. 无监督学习
  3. 半监督学习

    ?

    ?

    监督学习与非监督学习的根本区别在于训练集数据是否需要人为地进行标记。典型的监督学习算法包括回归和分类,而典型的无监督学习算法是聚类。半监督学习是介于两者之间的。

    ?

    而关于回归(Regression)和分类(Classification),又有一些明显的区别,我倾向于采纳下面知乎网友的回答。

    ?

    ?

    那么,回到我们这堂课的命题:通过机器学习来预测某个病人是否为糖尿病(及其概率),这是一个定性问题,它的预测是离散的,而不是连续的,所以这是一个分类的任务。

    ?

    假设我们手工有15000个病例样本,分别记录了他们的血糖,血压,年龄等信息,以及他们是否确诊为糖尿病的数据。(这个Diabetic字段非常重要,而这其实也就是需要人工标记的关键信息)

    ?

    ?

    另外,还有一份数据是病人和医生的对照表,在本课程学习和作业中,虽然并不是必须的,但这符合真实场景的需要。

    ?

    ?

    对于人工智能和机器学习而言,相比较看起来很酷炫的建模、训练、验证,其实很重要的工作都是在收集数据,有好的数据才会有真正有价值的人工智能。而收集数据中最关键的一个工作是定义哪些数据需要收集,例如上述例子,为什么我们去分析糖尿病时需要选择这些数据,而不是其他的。这里面其实已经有一个建模的过程,而这部分是计算机科学无法实现的,它所依赖的是自然科学和专家经验。

    ?

    如果只是做这种预测,那么我要说,其实我在十几年前就已经能做出来了,那时候我记得"人工智能(Artificial Intelligence)"或"机器学习(Machine Learning)"并没有现在这么流行,人们更热衷于讨论"商业智能(Business Intelligence)"和"数据挖掘(Data Mining)",我对SQL Server 的BI 和Data Mining还算有一些研究,所以做这种预测还是比较轻松的。

    ?

    今时不同往日,SQL Server仍然还有这些能力。但真正的大数据时代,我们可能还需要云端的解决方案。微软的Azure Machine Learning 解决方案就是其中之一,而Azure Machine Learning Studio会提供你需要的一切。

    ?

    ?

    下图是我创建好的Training experiment (用来做训练的实验)

    ?

    ?

    作为一个强大的Machine Learning的工具,它预设了上百个组件,并且可以随时对数据进行可视化分析。

    ?

    ?

    对于回归和分类算法,通常我们会在进行数据连接,规范化处理后,对数据集进行拆分,一部分(通常70%)用于训练模型,另一部分(通常30%)用于验证模型。如下图所示:

    ?

    ?

    在最后一步是验证模型,通常我们会选择多个算法比对其输出结果。如下图所知这种输出,Accuracy 越高,则表示准确性越高,可信度也就越高。

    ?

    ?

    模型训练好之后,接下来就是怎么用于预测了。你可以通过创建一个Predictive experiment来实现这个需求。请注意,它其实跟之前的Training experiment看起来很像,只不过你仔细看的话,会发现input处不一样,而且中间的一些组件,它是引用到了Training experiment中的。

    ?

    ?

    你可以一键将其发布为一个Web Service,以便支持客户端调用。

    ?

    ?

    下图是在Excel中通过一个Add-in进行预测分析的效果(支持批量对数据集进行预测)

    ?

    ?

    下图是我通过Python调用REST API进行预测的范例

    ?

    ?

    欢迎大家关注我的《人工智能学习笔记》,请关注本公众号,并扫描下面二维码收藏本系列文章。?

    ?

原文地址:https://www.cnblogs.com/chenxizhang/p/10018388.html

时间: 2024-10-01 07:21:02

人工智能第一课:使用分类算法预测糖尿病的相关文章

查看neighbors大小对K近邻分类算法预测准确度和泛化能力的影响

代码: 1 # -*- coding: utf-8 -*- 2 """ 3 Created on Thu Jul 12 09:36:49 2018 4 5 @author: zhen 6 """ 7 """ 8 分析n_neighbors的大小对K近邻算法预测精度和泛化能力的影响 9 """ 10 from sklearn.datasets import load_breast_canc

第一个分类算法

以前我们要预测的y是连续的,现在我们即将要讨论的分类算法中,y是离散的值. 先看一些分类的问题,像medical diagnosis--医学诊断,判断你是否生病:垃圾邮箱过滤器--判断一封邮件是不是垃圾邮箱. 也不是说这样的问题完全不能用线性回归的方式进行分类,但有很多时候,线性回归不能很好地进行分类. 假设现在我们知道这个y∈{0,1},y只能取0或1. ,所以我们的假设hθ(x)不能再是线性函数                                    所以现在我们要改变我们的h

Mahout实现的分类算法,两个例子,预测期望的目标变量

Mahout实现的分类算法有: –随机梯度下降(SGD) –贝叶斯分类(Bayes) –在线学习算法(Online Passive Aggressive) –隐马尔科夫模型(HMM) –决策森林(随机森林,DF) 例子1:将位置用作预测变量 用一个使用合成数据的简单例子,演示如何选择预测变量,使Mahout的模型能够准确地预测期望的目标变量. 上图是一个历史数据集合.假设在搜索颜色填充的形状:颜色填充是目标变量. 特征可以视为包含形状,和位置的预测变量. –位置貌似适合用作预测变量:水平(x)坐

算法导论第一课

1.课程分两部分:算法分析,算法设计 2.算法分析:首先考虑的是性能,how fast;其次会考虑通信,ram,disk占用等等 3.what is more important than perf ? 功能性,模块化,安全,用户友好,可扩展... then why study algs?  1,perf 在解决问题的最前沿,决定了是否可行,他也是用户友好等的保证,相当与货币,可以用来交换 安全,界面... 4 运行时间的分析:最差情况,平均情况(假设均匀分布),最好情况(bogus假象,不能区

Ng第一课:引言(Introduction)

Machine Learning(机器学习)是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能. 它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳.综合而不是演译. 在过去的十年中,机器学习帮助我们自动驾驶汽车,有效的语音识别,有效的网络搜索,并极大地提高了人类基因组的认识. 在本课中,您将学习最有效的机器学习技术,并获得实践,让它们为自己的工作.更重要的是,你会不仅得到理论基础的学习,而且获

写给程序员的管理入门课程 -《格鲁夫给经理人的第一课》

写给程序员的管理入门课程 -<格鲁夫给经理人的第一课> 序 格鲁夫给经理人的第一课 <格鲁夫给经理人的第一课> 最早出版于 2007 年,书原名为<High Output Management>.本书的作者格鲁夫是 Intel 的前 CEO,领导了 Intel 从一家濒临倒闭的存储器公司,转型为微处理器公司,并且在个人 PC 开始流行时,成功和微软缔结 Wintel 联盟,主宰了整个 PC 电脑时代. 格鲁夫是一个技术出身的管理者,在本书中,我们甚至看到他多次用编译器来

分类算法总结

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

R语言与数据分析之三:分类算法2

上期与大家分享的传统分类算法都是建立在判别函数的基础上,通过判别函数值来确定目标样本所属的分类,这类算法有个最基本的假设:线性假设.今天继续和大家分享下比较现代的分类算法:决策树和神经网络.这两个算法都来源于人工智能和机器学习学科. 首先和小伙伴介绍下数据挖掘领域比较经典的Knn(nearest neighbor)算法(最近邻算法) 算法基本思想: Step1:计算出待测样本与学习集中所有点的距离(欧式距离或马氏距离),按距离大小排序,选择出距离最近的K个学习点: Step2:统计被筛选出来的K

Mahout 分类算法

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