人工智能中的监督学习和无监督学习

news2024/11/23 23:36:13

2a20c54b85e042bfa2440367ae4807e9.gif

欢迎来到 Papicatch的博客

目录

🍉引言

🍉监督学习

🍈基本思想

🍈具体过程

🍍数据收集

🍍数据预处理

🍍模型选择

🍍模型训练

🍍模型评估

🍍模型部署

🍉无监督学习

🍈基本思想

🍈具体过程

🍍数据收集

🍍数据预处理

🍍模型选择

🍍模型训练

🍍结果分析

🍉案例

🍈监督学习 - 房价预测(回归)

🍈监督学习 - 图像分类(分类)

🍈无监督学习 - 客户分群(聚类)

🍈无监督学习 - 降维和可视化

🍉对比监督学习和无监督学习的区别

🍈数据需求

🍈目标

🍈应用场景

🍈算法复杂度

🍈模型评估

🍉总结


2a20c54b85e042bfa2440367ae4807e9.gif

🍉引言

        人工智能(AI)中的机器学习(ML)可以根据学习方式分为几种主要类型,其中监督学习和无监督学习是两种最重要的方法。本文将介绍这两种学习方法的基本思想、具体过程,并提供四个复杂的代码实现案例来对比它们的区别。

🍉监督学习

🍈基本思想

        监督学习是一种利用已知标签的数据进行训练的机器学习方法。其目标是学习一个函数,通过该函数可以将输入映射到相应的输出。监督学习可以分为两类:回归和分类。

  • 回归:用于预测连续的数值,例如房价预测。
  • 分类:用于预测离散的类别标签,例如图像分类。

🍈具体过程

🍍数据收集

        收集带有标签的数据集,这些数据包含输入特征和对应的输出标签。

🍍数据预处理

        清洗和整理数据,处理缺失值,进行特征选择和特征工程,确保数据质量。

🍍模型选择

        选择适合问题的机器学习算法,例如线性回归、支持向量机、决策树、神经网络等。

🍍模型训练

        使用训练数据集对模型进行训练,调整模型参数以最小化预测误差。

🍍模型评估

        使用验证数据集评估模型性能,常用指标包括准确率、精确率、召回率、均方误差等。

🍍模型部署

        将训练好的模型应用到实际数据中进行预测,并持续监控模型性能,进行必要的调整和改进。

🍉无监督学习

🍈基本思想

        无监督学习是一种不使用标签数据进行训练的机器学习方法。其目标是从数据中发现潜在的模式或结构。无监督学习常见的方法有聚类和降维。

  • 聚类:将数据分成多个组,每组中的数据具有相似性,例如客户分群。
  • 降维:减少数据的维度,同时保持数据的重要特征,例如主成分分析(PCA)。

🍈具体过程

🍍数据收集

        收集未标注的数据集,这些数据只包含输入特征。

🍍数据预处理

        同样需要进行数据清洗和整理,确保数据质量。

🍍模型选择

        选择适合问题的无监督学习算法,例如K-means、层次聚类、主成分分析等。

🍍模型训练

        使用数据集对模型进行训练,以发现数据的结构或模式。

🍍结果分析

        对模型输出的结果进行分析和解释,评估模型在实际应用中的表现。

🍉案例

🍈监督学习 - 房价预测(回归)

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 数据加载
data = pd.read_csv('housing.csv')

# 数据预处理
X = data.drop('price', axis=1)
y = data['price']

# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 模型选择与训练
model = LinearRegression()
model.fit(X_train, y_train)

# 模型评估
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse}')

        在这个案例中,我们使用线性回归算法预测房价。通过将数据集分为训练集和测试集,我们训练模型并评估其性能。

🍈监督学习 - 图像分类(分类)

import tensorflow as tf
from tensorflow.keras import datasets, layers, models
from sklearn.metrics import classification_report

# 数据加载
(train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()

# 数据预处理
train_images, test_images = train_images / 255.0, test_images / 255.0

# 模型选择与训练
model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.Flatten(),
    layers.Dense(64, activation='relu'),
    layers.Dense(10)
])

model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))

# 模型评估
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print(f'Test accuracy: {test_acc}')

        在这个案例中,我们使用卷积神经网络(CNN)进行图像分类任务。通过对CIFAR-10数据集进行训练和测试,我们评估模型的准确性。

🍈无监督学习 - 客户分群(聚类)

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# 数据加载
data = pd.read_csv('customer_data.csv')

# 数据预处理
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data)

# 模型选择与训练
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(data_scaled)

# 聚类结果
labels = kmeans.labels_

# 结果分析
plt.scatter(data_scaled[:, 0], data_scaled[:, 1], c=labels, cmap='viridis')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('Customer Segmentation')
plt.show()

       在这个案例中,我们使用K-means聚类算法对客户数据进行分群。通过数据标准化和K-means算法,我们可以发现数据中的自然分组。

🍈无监督学习 - 降维和可视化

import pandas as pd
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

# 数据加载
data = pd.read_csv('high_dimensional_data.csv')

# 数据预处理
data_cleaned = data.dropna()  # 假设需要进行缺失值处理

# 模型选择与训练
pca = PCA(n_components=2)  # 将数据降到2维
principal_components = pca.fit_transform(data_cleaned)

# 结果分析
plt.scatter(principal_components[:, 0], principal_components[:, 1], cmap='viridis')
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.title('PCA of High Dimensional Data')
plt.show()

🍉对比监督学习和无监督学习的区别

🍈数据需求

  • 监督学习需要带标签的数据,而无监督学习不需要标签数据。这意味着监督学习的应用更依赖于数据标注,而无监督学习可以应用于更多场景。

🍈目标

  •  监督学习的目标是预测已知输出,例如分类或回归问题。
  • 无监督学习的目标是发现数据中的潜在结构,例如聚类或降维。

🍈应用场景

  • 监督学习常用于需要明确预测的任务,例如图像分类、股票价格预测、欺诈检测等。
  • 无监督学习常用于探索性数据分析和特征提取,例如客户分群、数据降维、异常检测等。

🍈算法复杂度

  • 监督学习算法通常需要大量标注数据进行训练,数据标注成本高,但模型训练和评估的过程相对明确。
  • 无监督学习算法需要更复杂的模型和算法来从未标注数据中提取信息,尽管数据获取成本低,但结果的解释和验证可能更具挑战性。

🍈模型评估

  • 监督学习的模型评估可以使用诸如准确率、精确率、召回率、均方误差等明确指标。
  • 无监督学习的模型评估通常依赖于领域专家的解释和对数据模式的直觉理解,缺乏标准化的评估指标。

🍉总结

        本文详细介绍了人工智能(AI)中监督学习和无监督学习的基本思想、具体过程,并通过四个复杂的代码实现案例对比了它们的区别。在监督学习中,我们通过使用已标注的数据集进行模型训练,目标是预测已知输出,如回归问题中的房价预测和分类问题中的图像分类。无监督学习则不使用标签数据,目标是从数据中发现潜在的模式或结构,如聚类中的客户分群和降维中的主成分分析(PCA)。

        通过对监督学习和无监督学习的详细讲解以及实际代码实现,我们了解到这两种方法在数据需求、目标、应用场景、算法复杂度和模型评估方面的不同。监督学习需要大量标注数据进行训练,而无监督学习不需要标签数据,更适用于探索性数据分析和特征提取。监督学习的目标是预测明确的输出,而无监督学习则致力于发现数据中的隐藏结构。

        在实际应用中,根据问题的具体需求选择合适的学习方法至关重要。希望通过本文的介绍和案例展示,读者能够对监督学习和无监督学习有更深入的理解,并能在实际项目中灵活运用这两种方法解决问题。

2a20c54b85e042bfa2440367ae4807e9.gif

希望能给大家提供一些帮助!!!

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

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

相关文章

深入理解预处理

1.预定义符号 C语言设置了⼀些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编译的时间 __STDC__ //如果编译器遵循ANSI C&…

DSP28335:中断系统

1.中断介绍 F28335的中断: 中断源可分为片内中断源和片外中断源,这些外设中断源需要把中断请求传递给内核需要中断线。 14个课屏蔽中断是通过相应的使能寄存器控制是否进行中断。 28335总共的中断源有58个,可是只有12个中断线,如…

分页插件bs_pagination与Bootstrap4、jQuery3.7.1不兼容的问题

问题场景: 开发环境: 项目:CRM IDE:intelij IDEA JDK: jdk21.0.2 JQuery:3.7.1 Bootstrap:4.6 项目中需要查询数据库中的数据,并且以分页显示的方式显示在页面上,前端页面用到了分页…

嵌入式实验---实验二 中断功能实验

一、实验目的 1、掌握STM32F103中断程序设计流程; 2、熟悉STM32固件库的基本使用。 二、实验原理 1、在上一章的实验基础上,添加一个按键和一个LED; 2、使用中断的方式实现以下两个功能: (1)KEY1按键…

考研计组chap4指令系统

目录 一、指令格式 155 13.操作码地址码 2.按照地址码数量 (1)零地址指令 (2)一地址指令 (3)二地址指令 (4)三地址指令 (5)四地址指令 3.指令长度 …

RabbitMQ实践——超时消息的处理方法

大纲 准备工作整个队列的消息都有相同的时效性抛弃超时消息新建带x-message-ttl的队列新建绑定关系实验 超时消息路由到死信队列新建带死信和ttl的队列新建绑定关系实验 消息指定自己的超时时间新建带死信的队列绑定实验 消息自带TTL和队列TTL的关系消息TTL < 队列指定TTL消…

vxe-table 列表过滤踩坑_vxe-table筛选

但是这个过滤输入值必须是跟列表的值必须一致才能查到&#xff0c;没做到模糊查询的功能&#xff0c;根据关键字来过滤并没有实现。 下面提供一下具体实现方法&#xff1a;&#xff08;关键字来过滤&#xff09; filterNameMethod({ option, row }) {if (row.name.indexOf(op…

Vue65-vue-resource:ajax请求

vue-resource是vue的插件库&#xff0c;用vue.use(xxxx)使用插件。 1、安装 2、引入和使用 这个库&#xff0c;维护的频率不高了。还是建议使用&#xff1a;axios&#xff0c;vue-resource只是了解即可。

Qt Quick 教程(一)

文章目录 1.Qt Quick2.QML3.Day01 案例main.qml退出按钮&#xff0c;基于上面代码添加 4.使用Qt Design StudioQt Design Studio简介Qt Design Studio工具使用版本信息 1.Qt Quick Qt Quick 是一种现代的用户界面技术&#xff0c;将声明性用户界面设计和命令性编程逻辑分开。 …

win11照片裁剪视频无法保存问题解决

win11照片默认走核显&#xff0c;intel的显卡可能无法解码&#xff0c;在设置里把照片的显示卡默认换成显卡就好了

基于百度飞桨PaddleOCR应用开发实践银行卡卡面内容检测识别系统

OCR相关的内容我在之前的工作中虽有所涉及&#xff0c;但是还是比较少的&#xff0c;最近正好需要用到OCR的一些技术&#xff0c;查了一些资料&#xff0c;发现国内的话百度这块做的还是比较全面系统深入的&#xff0c;抱着闲来无事学习了解的心态&#xff0c;这里花了点时间基…

M1失效后,哪个是观察A股的关键新指标?

M1失效后&#xff0c;哪个是观察A股的关键新指标&#xff1f; 央地支出增速差&#xff08;地方-中央支出增速的差值&#xff09;或许是解释沪深300定价更有效的前瞻指标。该数值扩张&#xff0c;则有利于大盘指数&#xff0c;反之亦然&#xff0c;该指标从2017年至今对大盘指数…

【CSS in Depth2精译】1.1.4 源码顺序

解决层叠冲突的最后一环叫做 源码顺序&#xff0c;有时又称为 出现顺序&#xff08;order of appearance&#xff09;。如果其他判定规则均一致&#xff0c;则样式表中后出现的、或者在页面较晚引入的样式表声明&#xff0c;将最终胜出。 也就是说&#xff0c;可以通过控制源码…

解决WebStorm中不显示npm任务面板

鼠标右键项目的package.json文件&#xff0c;然后点击show npm scripts选项。 然后npm工具窗口就显示了&#xff1a;

基于`肿瘤浸润淋巴细胞`的AI风险评分预测`鼻咽癌`的`无局部生存率`|顶刊速递·24-06-20

小罗碎碎念 本期分享的文献是“AI-Based Risk Score from Tumour-Infiltrating Lymphocyte Predicts Locoregional-Free Survival in Nasopharyngeal Carcinoma”&#xff0c;翻译一下&#xff0c;即—— 基于肿瘤浸润淋巴细胞的人工智能风险评分预测鼻咽癌的无局部生存率。 文…

计算机网络——网络层重要协议(IP)

网络层的作用&#xff1a;在复杂的网络环境中确定一个合适的路径 IP 协议&#xff08;Internet Protocol&#xff09; IP 数据报格式 4 位版本号&#xff1a;指定 IP 协议的版本&#xff0c;对于 IPV4 来说就是 44 位首部长度&#xff1a;用于表示 IP 首部的长度&#xff0c…

Java零基础之多线程篇:线程生命周期

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

数据库 | SQL语言和关系代数汇总篇(*^▽^*)

双重/两个 not exists 嵌套查询 简单分析_两个not exists-CSDN博客 最明白的 not exists 双层嵌套讲解 SQL 查询语句_not exist 嵌套-CSDN博客 1. 答案&#xff1a; 2. 答案&#xff1a; 3. 4. 5. 6. 7. 8. 这个SQL查询是从两个表&#xff08;假设是SPJ和P&#xff09;中检…

Ubuntu服务器搭建Git远程仓库

本文所述方法适用于小型团队在局域网环境中使用Git进行代码版本管理。 1. 安装Git 打开终端(Ctrl + Alt + T) ,输入以下命令: sudo apt update #更新软件包列表信息 sudo apt install git #安装Git 验证Git是否安装成功,可以查看Git版本: git --version 也需…

Java基础入门day63

day63 JSON Jackson方式 package com.saas.test; ​ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.saas.entity.Student; import com.saas.entity.Birth; ​ import java.io.IOException; i…