当前位置: 首页 > 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.dtcms.com/a/316152.html

相关文章:

  • C结构体的几种定义形式 + typedef结合使用的好处
  • 数分思维14:用户研究与数据分析
  • WordPress如何实现隐藏文章部分内容?WordPress无法解析[hide]...[/hide]这类短代码怎么办?
  • 【机器学习】算法调参的两种方式:网格搜索(枚举)、随机搜索
  • Android 中几种常用布局的优缺点
  • 2023 年 6 月 GESP Python 二级试卷真题+答案+解析
  • 基于 Lyapunov 能量函数的等势面绘制方法 —— MATLAB 实现与工程应用拓展
  • 永磁同步电机的矢量控制
  • CPP引用
  • 组织架构与软件架构协同演进实践指南
  • UE5 安装Visual Studio
  • Go语言实战案例:使用context控制协程取消
  • GB28181监控平台LiveGBS如何配置GB28181对接海康、大华解码器上墙,将GB28181平台是视频给硬件解码器解码上墙
  • 软件无线电 招标参数
  • ⭐CVPR2025 非均匀运动视频插帧新突破
  • 文献阅读 | Briefings in Bioinformatics | Hiplot:全面且易于使用的生物医学可视化分析平台
  • HarmonyOS 应用拉起系列(二):如何拉起微信小程序
  • 前端1.0
  • 查看 Redis 某个数据库的内存占用
  • python+MySQL组合实现生成销售财务报告
  • 站在前端的角度,看鸿蒙页面布局
  • MTK-Android 系统拷贝预置资源
  • 本地使用uv管理的python项目怎么部署到服务器?
  • Next.js 链接与导航:页面间无缝切换
  • 最新安卓原生对接苹果cms App后端+app(最新优化版)
  • Spring Cloud系列—简介
  • 从循环嵌套到拓扑编排:LangGraph如何重构Agent工作流
  • 网络 —— 笔记本(主机)、主机虚拟机(Windows、Ubuntu)、手机(笔记本热点),三者进行相互ping通
  • 企业AI转型之战:Coze、Dify与FastGPT的巅峰对决
  • css动态样式