R语言里认识机器学习

news2024/11/25 20:22:01

 下面内容摘录自:

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)中提出了图灵测试,该测试旨在评估机器表现出与人类相同或无法区分的智能行为的能力。

Alan Turing (1912-1954) in 1936 at Princeton University

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2035761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络通信(TCP/UDP协议 三次握手四次挥手 )

三、TCP协议与UDP协议 1、TCP/IP、TCP、 UDP是什么 TCP/IP协议是一个协议簇&#xff0c;里面包括很多协议的&#xff0c; UDP只是其中的一个&#xff0c; 之所以命名为TCP/IP协议&#xff0c; 因为TCP、 IP协议是两个很重要的协议&#xff0c;就用他两命名了&#xff0c;而TCP…

告别知云单一选择,这些文献翻译工具同样值得信赖!

在翻译领域&#xff0c;知云文献翻译以其专业度和便捷性赢得了众多用户的青睐&#xff0c;但市场上还有许多其他翻译工具同样值得关注。本文将为您推荐几款优秀的翻译工具。 Foxit在线翻译 链接&#xff1a; https://fanyi.pdf365.cn/ Foxit在线翻译以其高效的翻译速度和准…

创建第一个Qt项目

创建第一个QT项目 创建工程名称一般不要有特殊符号&#xff0c;不要有中文 项目工程保存路径可修改&#xff0c;路径不要带中文 Base class中的三个选项 QMainWindow:主窗口类&#xff0c;包括菜单栏、工具栏、状态栏。 QWidget:可以创建一个空白的窗口&#xff0c;是所有界…

嵌入式软件--数据结构与算法 DAY 13

在嵌入式中&#xff0c;对算法的要求不高&#xff0c;但顺序查找和冒泡排序是经典算法&#xff0c;必须掌握。 1.算法定义 算法是一个用于解决特定问题的有限指令序列&#xff08;计算机可以执行的操作&#xff09;。通俗的理解就是可以解决特定问题的方法。 2.时间复杂度 …

手动和torch.nn实现卷积神经网络、空洞卷积、残差网络

一、数据集 1. 分类问题 数据集——车辆分类数据 ⚫输入图片,输出对应的类别 ⚫共1358张车辆图片 ⚫分别属于汽车、客车和货车三类 ⚫汽车:779张 ⚫客车:218张 ⚫货车:360张 ⚫每个类别随机取20-30%当作测试集 ⚫各图片的大小不一,需要将图片拉伸到相同大小 汽车 …

three.js 安装方法、基础简介、创建基础场景

threejs简介 Three.js是一个基于JavaScript编写的开源3D图形库&#xff0c;‌利用WebGL技术在网页上渲染3D图形。‌ 它提供了许多高级功能&#xff0c;‌如几何体、‌纹理、‌光照、‌阴影等&#xff0c;‌使得开发者能够快速创建复杂且逼真的3D场景。‌ threejs提供了丰富的功…

云原生日志Loki

1. Loki简介 1.1 Loki介绍 Loki是 Grafana Labs 团队最新的开源项目&#xff0c;是一个水平可扩展&#xff0c;高可用性&#xff0c;多租户的日志聚合系统。它的设计非常经济高效且易于操作&#xff0c;因为它不会为日志内容编制索引&#xff0c;而是为每个日志流编制一组标签…

关于Vue项目npm快捷键,点击run启动报错,及npm i也报错的解决办法

1.配置idea的npm 2.点击运行按钮 3.结果 分析原因及问题&#xff1a; npm i npm run dev 由于是刚刚从gitlab新拉的前端代码&#xff0c;可能没有用命令install过类似于没有编译过&#xff0c;所以执行一下上面的命令 结果报错如下&#xff1a; F:\tbyf\qjyy\hip-manager-ui&…

SpringBoot整合MyBatis-Plus完整详细版(提供Gitee源码)

前言&#xff1a;本篇文章完整详细介绍了SpringBoot整合MyBatis-Plus的完整过程&#xff0c;这边我的SpringBoot版本是2.4版本、JDK1.8和Maven3.8.1版本&#xff0c;跟着文章一步步走就可以了&#xff0c;MyBatis-Plus整合非常方便&#xff0c;也是现在企业开发中经常会用的一个…

学习笔记第二十四天

1.exec族函数的区别 int exec l(const char *path, const char *arg, ...); int exec l p(const char *file, const char *arg, ...); int exec l e(const char *path, const char *arg,..., char * const envp[]); int exec v(const char *path, char *const argv[]); …

1011 World Cup Betting

题目 解释 题目讲的就是&#xff0c;给你三行数&#xff0c;每一行包含3个浮点小数&#xff0c;让你找到最大的那个小数&#xff0c;然后如果最后的小数是第一个&#xff0c;输出W&#xff0c;是第二个&#xff0c;输出T&#xff0c;是第三个&#xff0c;输出L&#xff0c;最后…

Day37 | 188.买卖股票的最佳时机IV 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

语言 Java 188.买卖股票的最佳时机IV 买卖股票的最佳时机IV 题目 给你一个整数数组 prices 和一个整数 k &#xff0c;其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说&#xff0c;你最多…

Broken: Gallery靶机复现

靶机设置 靶机设置为NAT模式 靶机IP发现 nmap 192.168.112.0/24 靶机IP为192.168.112.142 目录扫描 dirsearch 192.168.112.142 访问浏览器 发现文件页面 查看后发现都没什么用 getshell hydra -L rockyou.txt -P rockyou.txt 192.168.112.142 ssh 尝试爆破ssh账号密码…

互联网应用主流框架整合【Redis常用技术】

和其他大部分NoSQL不同&#xff0c;Redis是支持事务的&#xff0c;尽管没有数据库那么强大&#xff0c;但非常有用&#xff0c;在某些高并发但又要保证高度一致性的场景下&#xff0c;代替数据库事务非常有效&#xff1b;在Redis的机制中&#xff0c;允许通过流水线一次性发给R…

DATAX自定义KafkaWriter

因为datax目前不支持写入数据到kafka中&#xff0c;因此本文主要介绍如何基于DataX自定义KafkaWriter&#xff0c;用来同步数据到kafka中。本文偏向实战&#xff0c;datax插件开发理论宝典请参考官方文档&#xff1a; https://github.com/alibaba/DataX/blob/master/dataxPlug…

2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第二弹 手搓机械臂

第一弹赛题的选择与前期方案的准备 opencv调用摄像头bug的解决 机械臂的组装 采用三个舵机&#xff0c;组成一个三自由度的机械臂。 并且利用电磁吸盘的方式&#xff0c;完成对棋子的抓取工作&#xff0c;后面的事实证明&#xff0c;在预算不足的情况下&#xff0c;队友手搓…

顺序表的实现——数据结构

线性表 文章目录 线性表线性表的定义和基本操作线性表的定义线性表的基本操作 线性表的顺序表示顺序表的定义顺序表的实现——静态分配顺序表的实现——动态分配顺序表的特点 线性表的定义和基本操作 线性表的定义 线性表&#xff08;Linear List&#xff09;的定义 ​ 线性…

多进程多线程

exec 系列函数 结束代码函数 atexec 函数 结束标志&#xff0c;从下往上 先出2再出1 void cleanup1() {printf("clean1"); }void cleanup2() {printf("clean2"); }atexec(cleanup1) atexec(cleanup2)

28. 找出字符串中第一个匹配项的下标【 力扣(LeetCode) 】

一、题目描述 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 二、测试用例 示例 1&#xff1a; 输…

Cmake编译工程

Cmake目录结构&#xff1a;项目主目录中会放一个CmakeList.txt的文本文档&#xff0c;后期使用cmake指令时候&#xff0c;依赖的就是该文档 1.包含源文件的子文件夹包含Cmakelist.txt文件时&#xff0c;主目录的Cmakelists.txtx要通过add_subdirector添加子目录 2.包含源文件…