文章目录

  • 先言
  • 一、什么是机器学习
    • 1.机器学习的定义以及核心思想
    • 2.机器学习的四大类型
      • 2.1监督学习(Supervised Learning)
      • 2.2半监督学习(Midsupervised Learning)
      • 2.3无监督学习(Unsupervised Learning)
      • 2.4强化学习(Reinforcement Learning)
    • 3.机器学习的基本流程
    • 4.机器学习工具库sklearn的安装
  • 二、数据集:机器学习的“燃料”
    • 1.数据集的组成(特征、标签)
    • 2.获取数据集(Sklearn库本地获取、网络下载、文本数据)
      • 2.1sklearn加载玩具数据集(红酒、乳腺癌)
      • 2.2sklearn加载现实网络数据集
      • 2.3pandas实现本地数据的创建和访问
    • 3.数据集的划分(train_test_split)
  • 结语


先言

人工智能(AI)正在重塑我们的世界,而 机器学习(Machine Learning, ML) 作为其核心驱动力,让计算机能够从数据中自动学习规律,并做出智能决策。无论是人脸识别、推荐系统,还是自动驾驶,机器学习技术都发挥着关键作用。

本文将从 机器学习的定义入手,介绍其基本概念,并深入探讨 数据集 的组成、类型及预处理方法。通过这篇文章,你将理解机器学习的基本框架,并学会如何准备高质量的数据集,为后续的模型训练打下坚实基础。


一、什么是机器学习

1.机器学习的定义以及核心思想

机器学习(Machine Learning)是一种通过算法和模型使计算机从数据中自动学习并进行预测或决策的技术,属于人工智能的一个分支。其核心目标是让计算机在没有明确编程指令的情况下,通过对大量数据的分析,识别模式和规律,从而构建适应新数据的模型。机器学习广泛应用于图像识别、自然语言处理、推荐系统和自动驾驶等领域,具备自适应、自动化和泛化能力,是数据驱动的技术创新。
机器学习的本质是让计算机自己在数据中学习规律,并根据所得到的规律对未来数据进行预测
机器学习包括如聚类、分类、决策树、贝叶斯、神经网络、深度学习(Deep Learning)等算法。
机器学习的基本思路是模仿人类学习行为的过程,如我们在现实中的新问题一般是通过经验归纳,总结规律,从而预测未来的过程。

2.机器学习的四大类型

2.1监督学习(Supervised Learning)

监督学习(Supervised Learning)是从有标签的训练数据中学习模型,然后对某个给定的新数据利用模型预测它的标签。如果分类标签精确度越高,则学习模型准确度越高,预测结果越精确。
监督学习主要用于回归和分类。
常见算法包括线性回归、支持向量机、决策树和神经网络。监督学习广泛应用于分类(如图像、文本分类)与回归(如房价、股价预测)任务,适用于金融、医疗、电子商务等多个领域。其性能高度依赖于标注数据的数量与质量。

2.2半监督学习(Midsupervised Learning)

半监督学习(Semi-Supervised Learning)是利用少量标注数据和大量无标注数据进行学习的模式。
半监督学习侧重于在有监督的分类算法中加入无标记样本来实现半监督分类。

常见的半监督学习算法有Pseudo-Label、Π-Model、Temporal Ensembling、Mean Teacher、VAT、UDA、MixMatch、ReMixMatch、FixMatch无监督学习适用于客户细分、异常检测、推荐系统、数据压缩和基因分析等场景,尤其在数据标注困难或成本高的领域中具有重要价值。等。

2.3无监督学习(Unsupervised Learning)

无监督学习(Unsupervised Learning)是从未标注数据中寻找隐含结构的过程。

无监督学习主要用于关联分析、聚类和降维。

常见的无监督学习算法有稀疏自编码(Sparse Auto-Encoder)、主成分分析(Principal Component Analysis, PCA)、K-Means算法(K均值算法)、DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise)、最大期望算法(Expectation-Maximization algorithm, EM)

2.4强化学习(Reinforcement Learning)

在这里插入图片描述

强化学习(Reinforcement Learning)类似于监督学习,但未使用样本数据进行训练,是是通过不断试错进行学习的模式。

在强化学习中,有两个可以进行交互的对象:智能体(Agnet)和环境(Environment),还有四个核心要素:策略(Policy)、回报函数(收益信号,Reward Function)、价值函数(Value Function)和环境模型(Environment Model),其中环境模型是可选的。

强化学习常用于机器人避障、棋牌类游戏、广告和推荐等应用场景中。

3.机器学习的基本流程

在这里插入图片描述

有5个基本步骤用于执行机器学习任务:

  1. 收集数据:无论是来自excel,access,文本文件等的原始数据,这一步(收集过去的数据)构成了未来学习的基础。相关数据的种类,密度和数量越多,机器的学习前景就越好。
  2. 准备数据:任何分析过程都会依赖于使用的数据质量如何。人们需要花时间确定数据质量,然后采取措施解决诸如缺失的数据和异常值的处理等问题。探索性分析可能是一种详细研究数据细微差别的方法,从而使数据的质量迅速提高。
  3. 练模型:此步骤涉及以模型的形式选择适当的算法和数据表示。清理后的数据分为两部分 - 训练和测试(比例视前提确定); 第一部分(训练数据)用于开发模型。第二部分(测试数据)用作参考依据。
  4. 评估模型:为了测试准确性,使用数据的第二部分(保持/测试数据)。此步骤根据结果确定算法选择的精度。检查模型准确性的更好测试是查看其在模型构建期间根本未使用的数据的性能。
  5. 提高性能:此步骤可能涉及选择完全不同的模型或引入更多变量来提高效率。这就是为什么需要花费大量时间进行数据收集和准备的原因。

无论是任何模型,这5个步骤都可用于构建技术,当我们讨论算法时,您将找到这五个步骤如何出现在每个模型中

4.机器学习工具库sklearn的安装

根据之前我们所有环境都是利用conda创建的,这里我们可以创建一个新环境
(在conda终端):

conda create -n sklearn python=3.12
activate sklearn

在此环境下下载scikit-learn包执行下面代码:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-learn

之后通过conda list指令查看环境就可以看到scikit-learn库就安装成功了

在这里插入图片描述

二、数据集:机器学习的“燃料”

数据集是 Sklearn 最基本的概念之一。

机器学习的核心任务是从数据中学习模式,数据的表示方式至关重要。

数据集(Dataset)
在 scikit-learn 中,数据通常通过两个主要的对象来表示: 特征矩阵 和 目标向量。

特征矩阵(Feature Matrix):每一行代表一个数据样本,每一列代表一个特征(即输入变量)。它是一个二维的数组或矩阵,通常使用 NumPy 数组或 pandas DataFrame 来存储。

1.数据集的组成(特征、标签)

  • 特征(Features):是数据集中用于训练模型的输入变量。在上面的例子中,X 是特征矩阵,包含了所有的输入变量。

  • 标签(Labels):是机器学习模型的目标输出。在监督学习中,标签是我们希望模型预测的结果。在上面的例子中,y 是标签或目标向量,包含了每个样本的类别。

2.获取数据集(Sklearn库本地获取、网络下载、文本数据)

2.1sklearn加载玩具数据集(红酒、乳腺癌)

通过导入sklearn库包获取本地数据

from sklearn.datasets import load_wine
from sklearn.datasets import load_breast_cancer
#加载数据集
#红酒数据集
wine =load_wine()
#红酒的全部数据
print(wine.data)
#返回的是红酒的品种
print(wine.target)
#获取红酒特征的描述
print(wine.feature_names)
#获取红酒标签(品种)的描述
print(wine.target_names)
#加载乳腺癌病数据集
breast_data = load_breast_cancer()
print(breast_data.feature_names)

红酒特征向量含义以及标签含义:

#红酒和特征向量含义
wine_feature_descriptions = {'alcohol': '酒精含量','malic_acid': '苹果酸含量','ash': '灰分含量','alcalinity_of_ash': '灰分碱度','magnesium': '镁含量','total_phenols': '总酚含量','flavanoids': '黄酮类化合物含量','nonflavanoid_phenols': '非黄酮类酚类化合物含量','proanthocyanins': '原花青素含量','color_intensity': '颜色强度','hue': '色调','od280/od315_of_diluted_wines': '稀释葡萄酒的OD280/OD315吸光度比值','proline': '脯氨酸含量'
}
#标签含义
wine_target_dict = {'class_0': 'Cv品种','class_1': 'Ec品种','class_2': 'Sc品种'
}

乳腺癌中的特征向量以及标签含义:

#特征含义
breast_feature_descriptions='''
均值特征 (Mean features)
mean radius: 半径均值(从中心到边缘的平均距离)
mean texture: 纹理均值(灰度值的标准差)
mean perimeter: 周长均值
mean area: 面积均值
mean smoothness: 平滑度均值(半径变化的局部变化)
mean compactness: 紧凑度均值(周长²/面积 - 1.0)
mean concavity: 凹度均值(轮廓凹陷的严重程度)
mean concave points: 凹点均值(轮廓上的凹点数量)
mean symmetry: 对称度均值
mean fractal dimension: 分形维度均值(海岸线近似值 - 1)
标准误差特征 (Standard error features)
radius error: 半径标准误差
texture error: 纹理标准误差
perimeter error: 周长标准误差
area error: 面积标准误差
smoothness error: 平滑度标准误差
compactness error: 紧凑度标准误差
concavity error: 凹度标准误差
concave points error: 凹点标准误差
symmetry error: 对称度标准误差
fractal dimension error: 分形维度标准误差
最差值特征 (Worst features)
worst radius: 最大半径(最差区域的半径)
worst texture: 最差纹理
worst perimeter: 最大周长
worst area: 最大面积
worst smoothness: 最差平滑度
worst compactness: 最差紧凑度
worst concavity: 最大凹度
worst concave points: 最大凹点数
worst symmetry: 最差对称度
worst fractal dimension: 最差分形维度
'''
#标签含义
breast_target_dict='''
malignant:恶性肿瘤,表示该肿瘤具有侵袭性,可能会扩散到身体其他部位
benign:良性肿瘤,表示该肿瘤不具有侵袭性,通常不会扩散到身体其他部位
'''

这里给出特征和标签含义是为了方便对数据集的理解,可以让你快速熟悉数据集的特征和标签的含义

2.2sklearn加载现实网络数据集

对现实网络20条新闻数据进行下载保存

from sklearn.datasets import fetch_20newsgroups
from sklearn import datasets
import pandas as pd
#获取现实数据存放路径
download_file_path = datasets.get_data_home()
print(download_file_path)
#获取现实数据斌保存到指定的路劲
news = fetch_20newsgroups(subset='all',data_home="./src/20news-bydate_py3.pkz")
#保存后news可以对数据进行访问
print(len(news.data)) #18846
print(news.target.shape) #(18846,)
print(len(news.target_names)) #20
print(len(news.filenames)) #18846

2.3pandas实现本地数据的创建和访问

数据创建
创建csv文件:打开计事本,写出如下数据,数据之间使用英文下的逗号, 保存文件后把后缀名改为csv
数据访问
使用pandas的read_csv(“文件路径”)函数可以加载csv文件,得到的结果为数据的DataFrame形式

#导入pandas模块
import pandas as pd
#调用pandas方法访问文件
pd.read_csv("./src/ss.csv")

注:csv文件可以使用excel打开

3.数据集的划分(train_test_split)

在实际应用中,通常需要将数据集分割成训练集和测试集
scikit-learn 提供了一个方便的函数 train_test_split() 来实现这一点。

划分函数:

sklearn.model_selection.train_test_split(*arrays,**options)

参数
(1) *array
这里用于接收1到多个"列表、numpy数组、稀疏矩阵或padas中的DataFrame"。
(2) **options, 重要的关键字参数有:
test_size 值为0.0到1.0的小数,表示划分后测试集占的比例
random_state 值为任意整数,表示随机种子,使用相同的随机种子对相同的数据集多次划分结果是相同的。否则多半不同
strxxxx 分层划分,填y
2 返回值说明
返回值为列表list, 列表长度与形参array接收到的参数数量相关联, 形参array接收到的是什么类型,list中对应被划分出来的两部分就是什么类型
示例代码如下:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
  • 以上代码调用 train_test_split 函数,并将结果赋值给四个变量:X_train、X_test、y_train 和 y_test。
  • X 和 y 是传入 train_test_split 函数的参数,它们分别代表特征数据集和目标变量(标签)。通常 X 是一个二维数组,y 是一个一维数组。
  • test_size=0.3 参数指定了测试集的大小应该是原始数据集的 30%。这意味着 70% 的数据将被用作训练集,剩下的 30% 将被用作测试集。
  • random_state=42 参数是一个随机数种子,用于确保每次分割数据集时都能得到相同的结果。这在实验和模型验证中非常有用,因为它确保了结果的可重复性。

结语

机器学习的世界浩瀚而精彩,而 数据 是这一切的起点。本文介绍了机器学习的基本概念,并详细讲解了数据集的组成与预处理方法,帮助你迈出 AI 开发的第一步。

🔍 动手实践建议:尝试加载一个公开数据集(如 sklearn.datasets.load_iris),并用 pandas 进行初步分析,观察特征分布情况!

🚀 下期预告:我们将深入探讨 特征工程,学习如何从原始数据中提取更有价值的特征,让模型表现更上一层楼!

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GaussDB 数据库架构师(十二) 资源规划

1 硬件和软件要求 1)硬件配置示例 硬件配置示例设备类型 设备型号 数量 备注 计算节点 CPU: 2*64 Cores,Kunpeng 920 内存:32*32GB 系统盘:2*960GB SATA SSD 数据盘:24*960GB SATA SSD RAID卡&#x…

Linux系统文件与目录内容检索(Day.2)

一、文件和目录内容检索处理命令1、uniq去重语法uniq [options] [input_file [output_file]]选项选项作用-c进行计数,并删除文件中重复出现的行-d仅显示连续的重复行-u仅显示出现一次的行-i忽略大小写案例1、删除输入文件中的重复行sort input.txt | uniq2、仅显示重…

如何选择一个容易被搜索引擎发现的域名?

在这个数字化时代,域名不仅是企业线上身份的标识,更是影响网站搜索曝光率的关键因素。一个精心挑选的域名能为品牌带来更多自然流量,下面我们就来探讨几个实用技巧。一、简洁易记是王道好域名首先要让人过目不忘。想象一下,当用户…

树形DP进阶:结合dfn序的线性化树问题求解技巧

树形DP进阶:结合dfn序的线性化树问题求解技巧一、dfn序与树的线性化1.1 dfn序的基本概念1.2 树形DP结合dfn序的优势二、核心应用:子树区间的DP优化2.1 子树权值和的快速查询与更新问题描述结合dfn序的解法代码实现(前缀和版本)优化…

九、Maven入门学习记录

Maven介绍Maven作用统一项目结构Maven安装(注意配置阿里云私服时url要跟换成最新的)IDEA创建Meavn项目Maven坐标介绍IDEA导入Maven项目依赖配置依赖传递依赖传递-排除依赖依赖范围生命周期生命周期-执行特定生命周期生命周期-总结

中标喜讯 | 安畅检测再下一城!斩获重庆供水调度测试项目

安畅检测在第三方检测领域持续深耕,再传捷报!公司于2025年7月30日正式收到中标通知,成功拿下重庆水资源产业股份有限公司 “重庆西部科学城多水厂分区分压供水优化调度研究项目(软件测试标段)”。 此次中标不仅是市场…

银河麒麟V10一键安装DM8的脚本及高阶运维SQL分享

介质下载地址名称网址银河麒麟高级服务器操作系统V10(SP3)用户手册https://www.kylinos.cn/support/document/60.htmlDM8 安装手册https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.htmlDM 数据库安装(Linux安装)h…

cobalt strike(CS)与Metasploit(MSF)联动

CS —> MSF首先cs上创建一个http的外部监听器。此时在CS服务端查看监听的ip,发现并没有开启,需要到成功移交会话后才会启动。netstat -tunlp | grep 7000在MSF中使用handler模块,配置监听。注意:目标机器的地址是rhost&#xf…

C# 类型

原文:C# 类型_w3cschool C#类型 类型定义值的蓝图。有不同的操作与不同类型相关联。 在下面的示例中,我们使用两个类型为int的常量,值为2 和 3。 static void Main() {int x 2 * 3;Console.WriteLine (x); } int 是一个表示整数值的构建…

确保TDesign Vue Next中t-color-picker组件在弹出颜色拾取面板时保证该面板不抖动方法参考

使用TDesign Vue Next中的组件t-color-picker时,在颜色面板弹出后,如果修改里面的颜色,发现这个颜色拾取面板会随着颜色的改变位置不断抖动,该问题由显示颜色的数值文本的长度变化引起,因此要覆盖组件内部颜色值文本的…

bypass

代码解析修改自身bypass&#xff1a;第一句话$s"Declaring file object\n";定义一个s&#xff0c;值为Declaring file object第二句话$d$_SERVER[DOCUMENT_ROOT].$_SERVER[DOCUMENT_URI]; 不知道$_SERVER是什么&#xff0c;那就打印出来看看。输入echo <pre>;…

C语言:构造类型学习

内容提要 构造类型 枚举类型typedef 综合案例&#xff1a;斗地主 构造类型 枚举类型 建议&#xff1a;如果定义不相干的常理&#xff0c;使用宏定义&#xff08;符号常量&#xff09;&#xff1b;如果需要定义一组相关联的常量&#xff0c;如月份0~11&#xff0c;星期0~6&#…

Prometheus-3--Prometheus是怎么抓取Java应用,Redis中间件,服务器环境的指标的?

1、Prometheus抓取Java应用的指标 1、数据来源&#xff1a;Java应用自身暴露的指标 Java应用的指标数据来源于应用代码中定义的指标对象&#xff08;如Counter、Gauge、Histogram等&#xff09;&#xff0c;通过Prometheus客户端库&#xff08;如io.prometheus:client_java&…

42.安卓逆向2-补环境-unidbg安装和简单使用

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码&#xff1…

数据结构与算法:哈希函数的应用及一些工程算法

前言这篇里的东西可以说了解了解就行了。一、哈希函数均匀性展示原本让deepseek转了一下老师的java代码&#xff0c;但发现复刻起来太麻烦了。又因为这个理解就好&#xff0c;竞赛不会有&#xff0c;所以就直接贴老师的java代码了……import java.security.MessageDigest; impo…

交叉编译ARM环境

ARM交叉编译 可以采用交叉编译工具链&#xff1a; sudo apt-get install aarch64-linux-gnu-gcc sudo apt-get install aarch64-linux-gnu-g sudo apt-get install gcc-arm-linux-gnueabi sudo apt-get install g-arm-linux-gnueabi 上面两个是64位&#xff0c;下面两个是…

算法思想 之 拓扑排序问题

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;算法思想 之 拓扑排序问题 发布时间&#xff1a;2025.8.4 隶属专栏&#xff1a;算法 目录算法介绍核心原理适用场景实现步骤(Kahn 算法)例题课程表题目链接题目描述算法思路代码实现课程表 II题目链接题目描述算法思…

机器学习 入门——决策树分类

决策树是一种直观且强大的机器学习算法&#xff0c;适用于分类和回归任务。本文将全面介绍决策树分类的原理、实现、调优和实际应用。一、什么是决策树分类1.概念决策树分类是一种树形结构的分类模型&#xff0c;它通过递归地将数据集分割成更小的子集来构建决策规则。就像我们…

虚拟机中查看和修改文件权限

在虚拟机中管理文件权限是系统管理的重要部分&#xff0c;无论是在Linux还是Windows虚拟机中。下面我将详细介绍两种主要系统的权限管理方法。Linux虚拟机中的文件权限管理查看文件权限使用ls命令&#xff1a;ls -l 文件名输出示例&#xff1a;-rwxr-xr-- 1 user group 1024 Ju…

图像处理拉普拉斯算子

AI对话记录&#xff0c;还没有来得及仔细验证和推导&#xff0c;目前只是记录 当然可以&#xff01;我们来一步步推导拉普拉斯算子在旋转变换下保持不变的数学过程。这里以二维情况为例&#xff0c;最直观也最常见。&#x1f9ee; 拉普拉斯算子旋转不变性的推导&#xff08;二维…