下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容(原文5773字)。
一、人工智能
在过去的 60 年间,数据、事实以及信息呈现出爆发式的增长,特别是在人类基因编码领域中的数据,这一现象标志着一个全新时代的降临,即大数据时代。计算机技术能够将这个世界上浩如烟海的数据转化为知识、事实和信息。在此,就不得不提及人工智能(Artificial Intelligence, AI)了。在人工智能中,“人工”这个词汇是英文单词“artificial”的中文译意。在日常用语里,“artificial”一词意为合成的(也就是人造的),这往往带有负面意味,意味着“人造物体仅仅是真实物体的次要形式”。但实际上,人造物体常常优于真实或者自然物体。“智能”(intelligence)指的是个体从经验当中学习、进行正确推理、记住重要信息,以及应对日常生活需求的认知能力。
........
二、机器学习
机器学习(Machine Learning,ML)则是人工智能的一个分支,致力于开发能够从数据中学习和改进其性能的算法和统计模型。简而言之,机器学习让计算机通过分析大量数据自行“学习”并做出预测或决策,
早期的机器学习
1943年:沃尔特·皮茨(Walter Pitts)和沃伦·麦卡洛克(Warren McCulloch)在他们的论文《神经活动中的思想逻辑演算》(A Logical Calculus of the Ideas Immanent in Nervous Activity)中引入了第一个神经网络的数学模型。这项工作奠定了理解神经网络如何模拟人类思维过程的基础。
1949年:加拿大心理学家唐纳德·赫布(Donald Hebb)出版了《行为的组织》(The Organization of Behavior),提出了神经元相互作用的理论,这些理论后来为人工神经网络的发展提供了参考。赫布的“共同发火,联结加固”原则成为生物系统和人工系统中学习理论的基石。
机器学习的兴起
1950年:阿兰·图灵(Alan Turing)在他的论文《计算机器与智能》(Computing Machinery and Intelligence)中提出了图灵测试,该测试旨在评估机器表现出与人类相同或无法区分的智能行为的能力。
(图:阿兰·图灵 (1912-1954) 在 1936年。阿兰·图灵是一位英国数学家、逻辑学家、密码学家和计算机科学家。他在第二次世界大战期间为破解德国的恩尼格玛密码做出了关键贡献,这不仅大大加速了战争的结束,也展示了计算机在复杂计算和问题解决中的巨大潜力。著名的图灵测试是阿兰·图灵在1950年发表的论文《计算机器与智能》中提出的一种评估机器智能的方法。该测试旨在回答“机器能思考吗?”这个问题。尽管随着技术的发展,图灵测试的局限性和挑战逐渐显现,但它仍然是人工智能领域一个重要的思想实验和衡量标准。)
1952年:亚瑟·塞缪尔(Arthur Samuel)开发了第一个自学习程序,一个跳棋游戏算法,使用如α-β剪枝和评分函数等技术,通过经验改善其游戏能力。1959年,塞缪尔提出了“机器学习”这一术语。
1956年:由约翰·麦卡锡(John McCarthy)、马文·明斯基(Marvin Minsky)、内森尼尔·罗切斯特(Nathaniel Rochester)和克劳德·香农(Claude Shannon)组织的达特茅斯会议通常被认为是人工智能领域的诞生。这一事件催生了对机器学习和AI技术的研究。
机器学习的发展
1960年代:这一十年见证了早期学习机器的发展,如分析声纳信号和语音模式的Cybertron。研究集中在模式识别和能够从数据中学习的算法实现。
1970年代:对机器学习的兴趣持续,算法在识别模式和基于经验做出决策方面取得了重大进展。这一时期还引入了用于基本模式识别任务的最近邻算法。
1980年代:该领域开始转向更复杂的模型,包括杰拉尔德·德琼(Gerald Dejong)引入的基于解释的学习,使计算机能够丢弃无关信息并从训练数据中形成一般规则。
1990年代:焦点从知识驱动转向数据驱动的方法,在处理大数据集的算法方面取得了重大进展。1997年,IBM的深蓝(Deep Blue)击败国际象棋冠军加里·卡斯帕罗夫(Garry Kasparov),标志着AI和机器学习历史上的一个重要时刻。
2000年代:深度学习的引入,特别是杰弗里·辛顿(Geoffrey Hinton)的工作,彻底改变了该领域。这一时期见证了卷积神经网络(CNN)的发展及机器学习在图像识别和自然语言处理等各个领域的应用。
2010年代:主要里程碑包括2011年IBM Watson赢得《危险边缘!》比赛,以及Facebook等公司在面部识别技术上的进展。机器学习成为许多应用的核心,从自动驾驶汽车到个人助理。
在数据科学中,机器学习的主要目的是通过观测数据来估计模型的未知参数值,将假设转化为统计参数假设,并进行假设检验和结果解释。例如,线性回归算法在传统统计学和机器学习中都被广泛使用。通过这种方法,我们既可以训练一个线性回归机器学习模型,也可以通过最小二乘法拟合一个线性回归统计模型。在机器学习中,线性回归算法用于训练具有预测功能的模型,并使用新数据集进行测试,以验证模型在新数据集上的预测或分类能力。然而,在统计学中,更强调的是假设数据具有高斯噪声,通过拟合一条最小化均方误差的线性模型来描述数据与输出变量之间的关系,从而进行统计推断。
在R语言中,有几个著名的机器学习扩展包,它们为数据科学家和分析师提供了强大的工具。caret 是一个广泛使用的包,简化了模型训练和调参的流程,支持多种算法。randomForest包实现了随机森林算法,常用于分类和回归任务。xgboost包以其高效的梯度提升框架著称,特别适合处理大规模数据集。此外,tidymodels是一个现代化的建模框架,整合了多个包,为机器学习提供了简洁而灵活的工作流程。
以下是一段简单的R代码,展示了如何在传统统计学和机器学习中使用线性回归算法。该代码首先生成一个示例数据集,然后使用线性回归模型进行拟合和预测。
# 生成示例数据集
set.seed(123)
n <- 100
x <- rnorm(n)
y <- 5 + 3 * x + rnorm(n, sd=2)
# 数据可视化
plot(x, y, main="示例数据", xlab="自变量 x", ylab="因变量 y")
# 传统统计学:使用最小二乘法拟合线性回归模型
lm_model <- lm(y ~ x)
summary(lm_model)
# 绘制拟合线
abline(lm_model, col="blue", lwd=2)
# 机器学习:划分训练集和测试集
set.seed(456)
train_indices <- sample(1:n, size=0.7*n)
train_data <- data.frame(x=x[train_indices], y=y[train_indices])
test_data <- data.frame(x=x[-train_indices], y=y[-train_indices])
# 训练线性回归模型
ml_model <- lm(y ~ x, data=train_data)
# 使用测试集进行预测
predictions <- predict(ml_model, newdata=test_data)
# 绘制测试集预测结果
plot(test_data$x, test_data$y, main="测试集预测结果", xlab="自变量 x", ylab="因变量 y")
points(test_data$x, predictions, col="red", pch=19)
legend("topleft", legend=c("真实值", "预测值"), col=c("black", "red"), pch=c(1, 19))
# 计算预测误差
mse <- mean((test_data$y - predictions)^2)
print(paste("均方误差:", mse))
三、机器学习和传统统计学
机器学习和传统统计学是数据科学中相辅相成的两个重要分支。机器学习主要侧重于开发和使用算法来识别数据中的模式,并对未知事物进行预测和分类,它强调自动化和处理大规模数据的能力,通过训练模型从数据中进行学习,以实现高效的预测和识别任务。而传统统计学则注重对数据进行深入的推断分析,着重于因果关系的识别和结果的解释,强调理论基础和假设检验,通过严谨的方法论来推导出数据背后的规律和意义。两者在数据科学中都是不可或缺的,它们共同为我们提供了理解和利用数据的工具,既能帮助我们做出准确的预测,又能帮助我们揭示数据中潜在的因果关系。
.......................
在这里,你学到的并非仅仅是 R 的某一个技巧,而是能够从零开始,深入且系统地学习 R 语言。此外,本专栏每周至少定期更新三篇文章,每篇文章篇幅均在 5000 字以上。而且,对于已经发表的知识点,我们也会根据新的技术或理解及时进行更新,这是纸质版图书无法做到的。为了让更多的忠实粉丝和同学们享受到实惠,本专栏采用折扣定价策略。随着章节的不断完成,折扣力度会逐渐减小。所以,现在正是订阅的最佳时机!
https://blog.csdn.net/2301_79425796/category_12729892.html?spm=1001.2014.3001.5482
第一章:认识数据科学和R
1章1节:数据科学的发展历程,何 R 备受青睐及我们专栏的独特之处(更新20240822)-CSDN博客
1章2节:关于人工智能、机器学习、统计学连和机器学习、R 与 ChatGPT 的探究 (更新20240814)-CSDN博客
1章3节:R 语言的产生与发展轨迹(更新2024/08/14)-CSDN博客
1章4节:数据可视化, R 语言的静态绘图和 Shiny 的交互可视化演示(更新20240814)-CSDN博客
第二章:R的安装和数据读取
2章1节:R和RStudio的下载和安装(Windows 和 Mac)_rst语言选择哪个镜像-CSDN博客
2章2节:RStudio 四大区应用全解,兼谈 R 的代码规范与相关文件展示_rstudio的console和terminal-CSDN博客
2章3节:RStudio的高效使用技巧,自定义RStudio环境(更新20240823)_rstudio如何使用-CSDN博客
2章4节:用RStudio做项目管理,静态图和动态图的演示,感受ggplot2的魅力-CSDN博客
2章5节:认识和安装R的扩展包,什么是模糊搜索安装,工作目录和空间的区别与设置(更新20240807 )-CSDN博客
2章6节:R的数据集读取和利用,如何高效地直接复制黏贴数据到R(更新20240807 )_r语言 复制数据集-CSDN博客
2章7节:读写RDS,CSV,TXT,Excel,SPSS、SAS、Stata、Minitab等的数据文件(更新20240807)_r语言读取rds文件-CSDN博客
2章8节:一文学会 R Markdown 的文档核心操作,切记文末有R资源的分享_r markdown文件(.rmd)-CSDN博客
2章9节:认识R与数据库连接和网络爬虫,学会在R中使用SQL语言_sql和r语言-CSDN博客
2章10节:用 R 直接下载并分析 NHANES 数据库的数据,文末示例自创便捷下载函数(更新20240807)_nhanes数据分析-CSDN博客
第三章:认识数据
3章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算-CSDN博客
3章2节:继续讲R的数据结构,数组、数据框和列表-CSDN博客
3章3节:R的赋值操作与算术运算_r里面的赋值-CSDN博客
第四章:数据的预处理
4章1节:全面了解 R 中的数据预处理,通过 R 基本函数实施数据查阅_r数据预处理-CSDN博客
4章2节:从排序到分组和筛选,通过 R 的 dplyr 扩展包来操作-CSDN博客
4章3节:处理医学类原始数据的重要技巧,R语言中的宽长数据转换,tidyr包的使用指南-CSDN博客
4章4节:临床数据科学中如何用R来进行缺失值的处理_临床生存分析缺失值r语言-CSDN博客
4章5节:数据科学中的缺失值的处理,删除和填补的选择,K最近邻填补法-CSDN博客
4章6节:R的多重填补法中随机回归填补法的应用,MICE包的实际应用和统计与可视化评估-CSDN博客
4章7节:用R做数据重塑,数据去重和数据的匹配-CSDN博客
4章8节:用R做数据重塑,行列命名和数据类型转换-CSDN博客
4章9节:用R做数据重塑,增加变量和赋值修改,和mutate()函数的复杂用法_r语言如何在数据集中添加变量-CSDN博客
4章10节:用R做数据重塑,变体函数应用详解和可视化的数据预处理介绍-CSDN博客
4章11节:用R做数据重塑,数据的特征缩放和特征可视化-CSDN博客
4章12节:R语言中字符串的处理,正则表达式的基础要点和特殊字符-CSDN博客
4章13节:R语言中Stringr扩展包进行字符串的查阅、大小转换和排序-CSDN博客
4章14节:R语言中字符串的处理,提取替换,分割连接和填充插值_r语言替换字符串-CSDN博客
4章15节:字符串处理,提取匹配的相关操作扩展,和Stringr包不同函数的重点介绍和举例-CSDN博客
4章16节:R 语言中日期时间数据的关键处理要点_r语言 时刻数据-CSDN博客
第五章:定量数据的统计描述
5章1节:用R语言进行定量数据的统计描述,文末有众数的自定义函数-CSDN博客
5章2节:离散趋势的描述,文末1个简单函数同时搞定20个结果-CSDN博客
5章3节:在R语言中,从实际应用的角度认识假设检验-CSDN博客
5章4节:从R语言的角度认识正态分布与正态性检验-CSDN博客
5章5节:认识方差和方差齐性检验(三种方法全覆盖)-CSDN博客
5章9节:组间差异的非参数检验,Wilcoxon秩和检验和Kruskal-Wallis检验-CSDN博客
第六章:定性数据的统计描述
6章1节:定性数据的统计描述之列联表,文末有优势比计算介绍-CSDN博客
6章2节:认识birthwt数据集,EpiDisplay和Gmodels扩展包的应用-CSDN博客
6章3节:独立性检验,卡方检验,费希尔精确概率检验和Cochran-Mantel-Haenszel检验-CSDN博客
6章4节:相关关系和连续型变量的Pearson相关分析-CSDN博客
6章5节:分类型变量的Spearman相关分析,偏相关分析和相关图分析-CSDN博客
6章6节:相关图的GGally扩展包,和制表的Tableone扩展包-CSDN博客
第七章:R的传统绘图
7章1节:认识R的传统绘图系统,深度解析plot()函数和par()函数的使用-CSDN博客
7章2节:R基础绘图之散点图、直方图和概率密度图-CSDN博客
7章5节:散点矩阵图,与小提琴图、Cleveland 点图、马赛克图和等高图-CSDN博客
7章6节:用R进行图形的保存与导出,详细的高级图形输出,一文囊括大多数保存的各种问题,和如何批量保存不同情况的图形-CSDN博客
第八章:R的进阶绘图
8章1节:认识 ggplot2 扩展包,深度解析 qplot() 函数的使用-CSDN博客
8章2节:深度讲解 ggplot2 的绘图步骤,理解其核心逻辑, 和 ggplot()函数-CSDN博客
8章3节:用R来绘制医学地理图,文末有具体完整代码-CSDN博客
8章4节:维恩图的认识与应用,和使用UpSet图-CSDN博客
8章8节:绘制自定义的高质量动态图和交互式动态图-CSDN博客
第九章:临床试验的统计
9章4节:两组例数相同的均数比较的样本量估计和绘制功效曲线-CSDN博客
9章5节:两组的例数不等的均数比较的样本量估计和可视化-CSDN博客
9章6节:自身配对设计的均数比较临床试验的样本量估计和可视化-CSDN博客
9章8节: 两、三组试验组率比较的样本量估算和可视化-CSDN博客
9章9节:试验的随机分组认识,用R做简单随机化-CSDN博客
9章11节:用R实现区组随机化和置换区组随机化-CSDN博客
9章12节:动态随机化方法介绍,和用R绘制随机化卡片-CSDN博客
第十章:Meta分析攻略
10章1节:认识循证医学中的Meta分析,并予代码演示分析绘图-CSDN博客
10章2节:Meta分析的7大步骤的扼要解读-CSDN博客
10章3节:二分类变量的Meta分析模型,分析公式构建和结果解读-CSDN博客