当前位置: 首页 > news >正文

Python-机器学习初识

目录

一、定义

1、分类

1.1 监督学习

1.2 半监督学习

1.3 无监督学习

1.4 强化学习

2、流程/步骤

二、scikit-learn

1、安装

三、数据集

3.1 sklearn玩具数据集

3.2 sklearn现实数据集

3.3 本地csv数据


一、定义

        机器学习(Machine Learning)本质上就是让计算机自己在数据中学习规律,并根据所得到的规律对未来数据进行预测。机器学习包括如聚类、分类、决策树、贝叶斯、神经网络、深度学习(Deep Learning)等算法

        1、分类

        机器学习经过几十年的发展,衍生出了很多种分类方法,这里按学习模式的不同,可分为监督学习、半监督学习、无监督学习和强化学习

        1.1 监督学习

        监督学习(Supervised Learning)是从有标签的训练数据中学习模型,然后对某个给定的新数据利用模型预测它的标签(监督学习主要用于回归和分类

        常见的监督学习的回归算法有线性回归、回归树、K邻近、Adaboost、神经网络等。

        常见的监督学习的分类算法有朴素贝叶斯、决策树、SVM、逻辑回归、K邻近、Adaboost、神经网络等。

        1.2 半监督学习

        半监督学习(Semi-Supervised Learning)是利用少量标注数据和大量无标注数据进行学习的模式

        常见的半监督学习算法有Pseudo-Label、Π-Model、Temporal Ensembling、Mean Teacher、VAT、UDA、MixMatch、ReMixMatch、FixMatch等

        1.3 无监督学习

        无监督学习(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)等

        1.4 强化学习

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

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

(通过奖励引导行为,逐渐学会最优策略)

2、流程/步骤

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

        1、收集数据:无论是来自excel,access,文本文件等的原始数据,构成了未来学习的基础

        2、准备数据: 任何分析过程都会依赖于使用的数据质量如何

        3、练模型:此步骤涉及以模型的形式选择适当的算法和数据表示。清理后的数据分为两部分                               - 训练和测试,训练集用于开发模型,测试集用于参考依据

        4、评估模型:为了测试准确性,使用提前划分的测试集,根据结果确定算法选择的精度

        5、提高性能:此步骤可能涉及选择完全不同的模型或引入更多变量来提高效率。这就是为什                                 么需要花费大量时间进行数据收集和准备的原因

(在后面的代码实现中,可以参考下面的流程)

二、scikit-learn

        scikit-learn官网:scikit-learn: machine learning in Python — scikit-learn 1.7.1 documentationscikit-learn: machine learning in Python — scikit-learn 1.7.1 documentationscikit-learn: machine learning in Python — scikit-learn 1.7.1 documentationscikit-learn: machine learning in Python — scikit-learn 1.7.1 documentationscikit-learn: machine learning in Python — scikit-learn 1.7.1 documentation

        scikit-learn中文文档:sklearn

        scikit-learn中文社区:scikit-learn中文社区

        scikit-learn是Python语言机器学习工具,包括许多智能的机器学习算法的实现

        1、安装

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

(推荐使用镜像源下载,不然网络不好,直接下载会失败)

三、数据集

return_X_y:决定返回值的情况False(默认值):函数返回一个对象,能够数据集所有的属性True:函数返回一个元组,第一个元素为特征数据集,第二个元素为目标数据集

        3.1 sklearn玩具数据集

函数返回
load_boston加载并返回波士顿房价数据集(回归)
load_iris加载并返回鸢尾花数据集(分类)
load_diabetes加载并返回糖尿病数据集(回归)
load_digits加载并返回数字数据集(分类)
load_linnerud加载并返回linnerud物理锻炼数据集
load_wine加载并返回葡萄酒数据集(分类)
load_breast_cancer加载并返回威斯康星州乳腺癌数据集(分类)

数据量小,数据在sklearn库的本地,通过 datasets 使用

示例:(以鸢尾花为例,数据的获取)

(使用其他数据集时,可以查下资料,了解一下那数据集有些什么属性)

        3.2 sklearn现实数据集

函数说明
fetch_olivetti_faces从AT&T(分类)中加载Olivetti人脸数据集
fetch_20newsgroups从20个新闻组数据集中加载文件名和数据(分类)
fetch_20newsgroups_vectorized加载20个新闻组数据集并将其矢量化为令牌计数(分类)
fetch_lfw_people将标签的面孔加载到Wild(LFW)人数据集中(分类)
fetch_lfw_pairs在“Wild(LFW)”对数据集中加载标签的面部(分类)
fetch_covtype加载covtype(植被型数据集)数据集(分类)
fetch_rcv1加载RCV1多标签数据集(分类)
fetch_kddcup99加载kddcup99(网络入侵检测)数据集(分类)
fetch_california_housing加载加利福尼亚住房数据集(回归)

数据量大,数据只能通过网络获取,同样通过 datasets 使用

from sklearn import datasets
datasets.get_data_home()  #查看数据集默认存放的位置

通过上面这段代码,就能找到数据集默认的下载地址

参数:

data_home:None:默认值,下载到默认地址自定义路径:指定下载路径
subset:"train",只下载训练集"test",只下载测试集"all",下载的数据包含了训练集和测试集

        3.3 本地csv数据

        (创建csv文件的方法很多,感兴趣可以自己了解一下)

        其实不止csv文件,只要是数据都可以获取使用,这里只展示使用pandas获取csv类型数据

http://www.lryc.cn/news/611258.html

相关文章:

  • 机器学习——集成学习(Ensemble Learning):随机森林(Random Forest),AdaBoost、Gradient Boosting,Stacking
  • 论文阅读笔记:《Curriculum Coarse-to-Fine Selection for High-IPC Dataset Distillation》
  • 2.4 组件通信
  • 高阶 RAG :技术体系串联与实际落地指南​
  • 计算机网络 第2章通信基础(竟成)
  • PYQT的QMessageBox使用示例
  • 深入理解 Ext 系列文件系统:从磁盘物理到文件系统原理
  • 注意点:如何使用conda创建虚拟环境并使用虚拟环境以及当安装相关库时,如何指定安装到那个环境里面 ---待看
  • LINUX-进程管理及基础管理
  • Java开发时出现的问题---并发与资源管理深层问题
  • OpenSpeedy绿色免费版下载,提升下载速度,网盘下载速度等游戏变速工具
  • day25 进程
  • FastAPI快速入门P2:与SpringBoot比较
  • 【数据结构初阶】--排序(三):冒泡排序,快速排序
  • add_key系统调用及示例
  • 《C++》继承完全指南:从入门到精通
  • 【Day 16】Linux-性能查看
  • 计算机基础:操作系统学习的基石
  • 分布式微服务--Nacos 集群部署
  • RabbitMQ延时队列的两种实现方式
  • 磁悬浮转子的“静音术”:深度解析无接触抑制旋转幽灵的奥秘
  • 基于华为开发者空间的Open WebUI数据分析与可视化实战
  • 【Linux系统编程】线程概念与控制
  • MATLAB实现菲涅尔法全息成像仿真
  • Spring Boot 整合 Web 开发全攻略
  • Java面试宝典:深入解析JVM运行时数据区
  • Linux 内存管理之 Rmap 反向映射(二)
  • EP01:【DL 第二弹】张量(Tensor)的创建和常用方法
  • BloodHound 8.0 首次亮相,在攻击路径管理方面进行了重大升级
  • IPD研发管理——决策评审DCP指南