R语言里认识机器学习

下面内容摘录自:

1章2节:关于人工智能、机器学习、统计学连和机器学习、R 与 ChatGPT 的探究-CSDN博客文章浏览阅读1k次。在现代科技发展的浪潮中,人工智能(AI)、机器学习(ML)、统计学、R 编程语言以及大型语言模型(如 ChatGPT)已经成为推动创新和解决复杂问题的关键力量。这些技术之间不仅存在密切的联系和相互的作用,而且还存在一定的区别,本文一一探索。https://blog.csdn.net/2301_79425796/article/details/140560500欢迎订阅我们专栏

二、机器学习

机器学习(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代码,展示了如何在传统统计学和机器学习中使用线性回归算法。该代码首先生成一个示例数据集,然后使用线性回归模型进行拟合和预测。

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 字以上,质量平均分高达 94 分。要提醒大家的是,每结束一个章节,专栏的优惠力度就会减小,当下正是订阅的最佳优惠时段,诚邀各位积极订阅!

专栏《R 语言与数据科学的终极指南》链接:https://blog.csdn.net/2301_79425796/category_12729892.html?spm=1001.2014.3001.5482

相关推荐
小陈phd2 小时前
OpenCV从入门到精通实战(九)——基于dlib的疲劳监测 ear计算
人工智能·opencv·计算机视觉
冰帝海岸3 小时前
01-spring security认证笔记
java·笔记·spring
Guofu_Liao3 小时前
大语言模型---LoRA简介;LoRA的优势;LoRA训练步骤;总结
人工智能·语言模型·自然语言处理·矩阵·llama
小二·4 小时前
java基础面试题笔记(基础篇)
java·笔记·python
wusong9997 小时前
mongoDB回顾笔记(一)
数据库·笔记·mongodb
猫爪笔记7 小时前
前端:HTML (学习笔记)【1】
前端·笔记·学习·html
Resurgence037 小时前
【计组笔记】习题
笔记
wxl7812277 小时前
如何使用本地大模型做数据分析
python·数据挖掘·数据分析·代码解释器
ZHOU_WUYI7 小时前
3.langchain中的prompt模板 (few shot examples in chat models)
人工智能·langchain·prompt
如若1237 小时前
主要用于图像的颜色提取、替换以及区域修改
人工智能·opencv·计算机视觉