000-基于sklearn的机器学习入门:工作环境搭建与配置
本专栏将介绍基于Scikit-learn(简称sklearn)的机器学习入门知识。包括但不一定限于,机器学习基本知识、sklearn库简介,基于Sklearn库的机器学习实践。
这是本专栏的第000篇,将介绍如何安装和配置sklearn环境,不仅包括Sklearn库的安装和配置,还包括本教程所用的Python开发环境——Jupyterlab软件的安装配置。
目录
0.1 sklearn简介
0.2 sklearn 的安装与配置
0.3 其他工具安装与配置
0.3.1 Jupyterlab的安装与配置
(1)安装Jupyterlab
(2)配置Jupyterlab
0.1 sklearn简介
sklearn (全称 scikit-Learn) 是一个基于 Python 语言的机器学习工具,更准确的说,它是一个专用于机器学习的Python扩展库。它建立在 NumPy, SciPy, Pandas 和 Matplotlib 之上,里面的 API 的设计非常好,所有对象的接口简单,很适合新手上路。
在sklearn 里面有六大任务模块:分别是分类(Classification)、回归(Regression)、聚类(Clustering)、降维(Dimensionality reduction)、模型选择(Model selection)和预处理(Preprocessing),如下图从其官网的截屏。目前最新版本为1.15(update to 2024-06)
下面从功能、应用及主要方法等方面,对这六个模块简要说明:
(1)各模块功能说明
预处理
功能:特征提取和归一化。
应用:将输入数据转换为机器学习算法适用的格式
算法:预处理、特征提取等
模型选择
功能:比较、验证和选择参数和模型。
应用:通过参数调整提高精度。
算法:网格搜索、交叉验证、度量等
分类
功能:识别对象属于哪一类(对应离散量)。
应用:垃圾邮件检测,图像识别。
算法:梯度增强、最近邻、随机森林、逻辑回归等
回归
功能:预测与对象关联的连续值属性。
应用:药物反应,股票价格。
算法:梯度增强、最近邻居、随机森林、山脊(ridge)等等
聚类
功能:无监督方法,将相似的对象自动分组到集合中。
应用:客户细分,分组实验结果。
算法:k-Means、HDBSCAN、层次聚类等
降维
功能:减少要考虑的随机变量的数量。
应用:可视化,提高效率。
算法:主成分分析(PCA)、特征选择、非负矩阵分解(NMF)等。
0.2 sklearn 的安装与配置
前面提到,sklearn库是scipy的一个扩展库,即sklearn会大量调用scipy库中的函数直接使用,因此,如果想正常使用sklearn,则scipy是必需提前安装的。
另外scipy库调用了numpy中的函数完成基本的数值计算,又调用了matplotlib中的函数完成绘图功能,因此,numpy和matplotlib也是必需提前安装的。
以下是这三个库功能的简要介绍:
- Numpy(Numerical Python的缩写)是一个开源的Python科学计算库。在Python中虽然提供了list容器和array模块,但这些结构并不适合于进行数值计算,因此需要借助于Numpy库创建常用的数据结构(如:多维数组,矩阵等)以及进行常用的科学计算(如:矩阵运算)。
- Scipy库是sklearn库的基础,它是基于Numpy的一个集成了多种数学算法和函数的Python模块。它的不同子模块有不同的应用,如:积分、插值、优化和信号处理等。
- matplotlib是基于Numpy的一套Python工具包,它提供了大量的数据绘图工具,主要用于绘制一些统计图形,将大量的数据转换成更加容易被接受的图表。
下图可以形象地说明以上各库的调用关系:
幸运的是,如果我们通过安装Anaconda来搭建Python运行环境时,上述各库是自动安装好的。简直不要太方便了。
如果不放心,可以打开Anaconda Navigator,找到环境配置选项,选中“Installed”,然后在搜索框中键入“learn”,即可查询到已安装的sklearn库的信息,如下图所示:
大家有没有注意到一个细节,除了提示安装了“scikit-learn”库之外,Anaconda内还预先安装了另外一个库“scikit-learn-intelex”,看说明应该是一个专门为Intel CPU设计的用于sklearn加速的扩展库。实际应用中,并没有专门测试是否使用该库对处理速度的影响,但既然有这个库,还是建议大家优先考虑使用Intel的平台。
当然,如果确实想从纯净的Python环境下从头安装和配置sklearn环境,则建议搜索相关技术帖子。安装步骤一般是:
- 1Numpy库
- Scipy库
- matplotlib库
- sklearn库
安装方式也有两种,一种是在线的pip安装,第二种是离线的pip安装,两者的区别在于,后者先将对应版本的whl文件下载到本机指定的路径下再安装。在不能保证外网一直能够保持畅通的情况下,建议采用第二种本地安装方式。在此给出一个常用的用于下载Python扩展库对应的whl文件的下载链接:https://pypi.python.org/pypi。
相关的资料,在网上能够很方便地搜索到,在此不再赘述。
最后再啰嗦几句,如果确实想确认是否已经成功安装sklearn库,则打开Python命令行运行环境,键入以下四行命令:
import numpy
import matplotlib
import scipy
import sklcarn
如果没有任何错误提示,即表示可以正常使用上述各库了。
0.3 其他工具安装与配置
由于本教程专注与机器学习基本理论和方法的sklearn实现,而不是应用,因此不是用任何IDE工具用于代码编辑和调试。在此选用了Jupyter系列中的Notebook和lab作为各类算法的开发和验证。
notebook和lab是Jupyter提供的两种功能强大的工具,两者相比,lab可以看作是notebook的增强版,因此我们最终选用Jupyter lab作为本教程主要的代码编辑工具。
当然,为了学习方便,我会讲文本、公式、图表和代码,都在本教程中一一呈现。大家可将本教程中的资料很方便地转换成Jupyter lab进行发布。
有关Jupyter lab的安装和配置文件,网上教程也很多。为了便于大家查阅,我讲自己在另外一个专栏中有关内容直接复制粘贴过来。
0.3.1 Jupyterlab的安装与配置
(1)安装Jupyterlab
首先安装某些依赖,至于这些依赖不安装有什么影响,说实话,我目前也不清楚。
sudo apt install nodejs npm
接下来,安装libffi-dev,
sudo apt install libffi-dev
接下来,就是本节的主角了,使用pip3安装Jupyterlab,
pip3 install jupyter jupyterlab
整个过程较长,经过几分钟的等待,以及终端窗口大段的warning提醒,终于完成了Jupyterlab的安装。一定要先重启机器,目的是让系统自动改写默写Path变量。然后在命令窗口键入jupyter lab
,系统会正常启动浏览器,然后就会在默认的路径下创建一个未命名的ipynb文件,并等待编辑。
看到熟悉的notebook的编辑窗口,真是感觉亲切至极。到此算是完成Jupyterlab的基本设置,但这才刚刚开始,还有更多内容等待设置,当然这些设置并不都是必需的,大家可根据个人的编程习惯,自行浏览。
(2)配置Jupyterlab
下面介绍生成Jupyterlab的配置文件,并完成修改的流程。
首先使用以下命令,生成Jupyterlab的配置文件:
jupyter lab --generate-config
可使用编辑命令,修改配置文件:
nano /home/jetson/.jupyter/jupyter_lab_config.py
至于设置内容,可根据个人需要自行确定,不再单独说明。
使用一下语句,添加界面对中文的支持。
pip3 install jupyterlab-language-pack-zh-CN
完成中文包的安装后,即可将Jupyterlab的界面设置为中文。
相关文章:
000-基于sklearn的机器学习入门:工作环境搭建与配置
本专栏将介绍基于Scikit-learn(简称sklearn)的机器学习入门知识。包括但不一定限于,机器学习基本知识、sklearn库简介,基于Sklearn库的机器学习实践。 这是本专栏的第000篇,将介绍如何安装和配置sklearn环境,不仅包括Sklearn库的…...
就业班 第四阶段(k8s) 2401--6.5 day3 Yaml语法解析+钩子函数
Yaml语法解析 今天学的都是在pod里面操作的 格式 这个文件要创建的资源对象是什么 kind: Pod 这个资源对象所在的api版本是什么 apiVersion: v1 元数据 metadata: 对这个pod中的镜像的描述 spec: 字典无序 同一级可以调换顺序 :比如kind和apiVersion …...
电脑开机出现英文字母,如何解决这个常见问题?
电脑开机时出现英文字母的情况通常意味着系统在启动过程中遇到了问题。这些英文字母可能是错误信息、系统提示或BIOS设置问题。通过理解这些信息并采取适当的措施,您可以解决大多数启动问题。本文将介绍三种解决电脑开机出现英文字母问题的方法,帮助您恢…...
一张试卷
目录 问题 1: 1.时间 题目描述1 输入1 输出1 样例输入1 样例输出1 提示1 代码1 问题 2: 超酷的电话号码 题目描述2 输入2 输出2 样例输入2 样例输出2 提示2 代码2 问题 3:3.爸爸的数学题 题目描述3 输入3 输出3 样例输入3 样例输出3 提示3 代码3 问题 4: 4. 营养膳食 题目描述4…...
记一次 .NET某游戏币自助机后端 内存暴涨分析
一:背景 1. 讲故事 前些天有位朋友找到我,说他们的程序内存会偶发性暴涨,自己分析了下是非托管内存问题,让我帮忙看下怎么回事?哈哈,看到这个dump我还是非常有兴趣的,居然还有这种游戏币自助机…...
计算机考研|哪些985/211院校不歧视双非二本生?
说句残酷的话,能对某一专业做出贡献,那么你的水平肯定是很高的。如果普通学生,普通本科的话可能很难做到这一点。这也是现在考研风气比较强的原因,一部分专业能力不突出的学生来选择深造3年。 对于基础较差想要考计算机研究生的同…...
Spring Boot:简化 Java 应用开发的艺术
Spring Boot 是一种用于快速开发、运行和管理 Java 应用程序的开源框架。它简化了基于 Spring 的应用程序的配置和部署,使得开发者能够更加专注于业务逻辑的实现。本文将介绍 Spring Boot 的核心特性、优势以及如何在项目中使用 Spring Boot。 一、核心特性 自动配…...
elasticsearch安装与使用(2)-基于term匹配的简单搜索引擎搭建
把一篇pdf论文解析后,放入es数据库中,建立倒排索引表,并实现简单搜索。 1、pdf论文解析(英文) 安装pdf解析包 pip install pdfminer.sixdef extract_text_from_pdf(filename, page_numbersNone, min_line_length1):从pdf文件中提取文字:pa…...
速盾:ddos防护与高防ip区别?
在网络安全领域,DDOS 防护和高防 IP 都是重要的防护手段,但它们之间存在着一些明显的区别。 DDOS 防护是一种针对分布式拒绝服务攻击的防御策略。它通过多种技术和方法来识别和抵御 DDOS 攻击。常见的 DDOS 防护手段包括流量清洗、连接限制、协议分析等。…...
Java中StringBulider详解
StringBuilder 是 Java 中一个用来创建可变字符串的类。与 String 类不同,StringBuilder 对象能够被修改,不会创建新的对象,因此在需要进行大量字符串操作时,StringBuilder 更高效。以下是 StringBuilder 的详细讲解。 创建 Stri…...
基于springboot高校就业招聘系统的设计
管理员账户功能包括:系统首页,个人中心,就业咨询管理,毕业去向管理,简历管理,管理员管理,基础数据管理 辅导员账户功能包括:系统首页,个人中心,就业咨询管理…...
嵌入式C语言编码规范要点
1.函数命名方法 骆驼命名法(Camel) 帕斯卡命名法((pascal),也叫大驼峰命名法(Upper Camel Case) 匈牙利命名法 下划线命名法(也称为蛇形命名法) 详述见之前文…...
Python中的全局解释器锁:深入解析与应对策略
1. 引言 在Python的世界里,全局解释器锁(GIL)是一个经常被讨论的话题。它既是Python并发编程中的一个重要概念,也是许多开发者感到困惑的源头。本文将深入探讨GIL的工作原理、它对Python程序性能的影响 2. 全局解释器锁的历史背…...
【java计算机毕设】图书商城管理系统MySQL springboot vue html maven送文档
1项目功能介绍 【java计算机毕设】图书商城管理系统 Java Spring Boot vue HTML MySQL 赠送文档 PPT 2项目简介 系统功能: 图书商城管理系统包括管理员和用户两种角色。 管理员的功能包括在个人中心修改个人信息,以及在基础数据管理中管理会员等级类型和…...
【Java刷题】二叉树
相同的树 public boolean isSameTree(TreeNode p, TreeNode q) {if(p null && q null) {return true;} else if(p ! null && q ! null) {if(p.val ! q.val) {return false;} else {return isSameTree(p.left, q.left) && isSameTree(p.right, q.rig…...
【Linux】程序地址空间之动态库的加载
我们先进行一个整体轮廓的了解,随后在深入理解细节。 在动态库加载之前还要说一下程序的加载,因为理解了程序的加载对动态库会有更深的理解。 轮廓: 首先,不管是程序还是动态库刚开始都是在磁盘中的,想要执行对应的可…...
LabVIEW处理大量数据时,怎样确保数据的准确性和完整性?
在LabVIEW处理中,确保大量数据的准确性和完整性至关重要。以下是详细的多角度分析和建议,以确保在LabVIEW中处理大量数据时,数据的准确性和完整性: 1. 数据采集阶段 1.1 高精度硬件选择 选择高精度的数据采集硬件,如…...
容器是什么?
概念 容器可以被看作是一种轻量级的虚拟化技术。与传统虚拟化技术相比,容器不需要为每个应用程序提供单独的操作系统,它们共享宿主机的操作系统内核。这使得容器更加轻便和高效。 想象一下,容器就像是一艘艘可以在海洋中独立航行的货轮&…...
#15 从Stable Diffusion生成的艺术中寻找灵感
文章目录 前言1. Stable Diffusion简介2. 寻找灵感的途径2.1 深入探索主题2.2 结合多种艺术风格2.3 实验不同的创意组合 3. 灵感应用3.1 艺术创作3.2 设计项目3.3 故事讲述 4. 实践建议4.1 记录和迭代4.2 开放实验4.3 结合个人风格 结论 前言 在当今的数字时代,人工…...
git rebase
1. git rebase的意义 首先理解这个rebase,它的意思是re base,翻译过来就是“重新基于”。 意义是:重新整理当前分支的开发线,使其变成基于某个开发节点的开发线。 2. rebase用于并行开发 构造两个分支master和feature…...
Docker引起的漏洞问题
前言 测试环境上的中间件和java应用都是由docker进行部署的,但是因为docker的镜像访问有时候需要外网,由此引发了问题,在docker文件中 /usr/lib/systemd/system/docker.service 原有的配置为,可以看到进行了加密 ExecStart/usr/bin/dockerd --tlsverify --tlscacert/etc/docker…...
Oracle基本数据类型
在Oracle数据库中,数据类型是描述数据存储格式的属性。不同的数据类型允许存储不同种类的数据。以下是Oracle中的一些基本数据类型: 1. 字符数据类型 - CHAR(size): 定长字符数据,最大长度为2000字节。 - VARCHAR2(size): 变长字符数据…...
VS+QT+OCC创建坐标界面
1、安装并配置好项目后,填写如下代码: #pragma once#include <Standard_Handle.hxx> #include <V3d_Viewer.hxx> #include <OpenGl_GraphicDriver.hxx> #include <WNT_Window.hxx> #include <V3d_View.hxx> #include <…...
VUE2.7项目配置webpack打包-详细操作步骤
一、Webpack简介 Webpack是一个打包工具,可以把JS、CSS、Node Module、Coffeescrip、SCSS/LESS、图片等都打包在一起,因此,现在几乎所有的SPA项目、JS项目都会用到Webpack。 官网:https://webpack.js.org GitHub为https://git…...
Linux系统Docker部署Apache Superset并实现远程访问详细流程
目录 前言 1. 使用Docker部署Apache Superset 1.1 第一步安装docker 、docker compose 1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透,实现公网访问 3. 设置固定连接公网地址 前言 作者简介: 懒大王敲代码࿰…...
Cochrane Library循证医学数据库的介绍及文献下载
今天要讲的数据库是Cochrane Library循证医学数据库,我们先来了解一下该数据库: Cochrane Library是国际Cochrane Collaboration的主要产品,由英国Wiley InterScience公司出版发行。是一个提供高质量证据的数据库,是循证医学的证…...
冯喜运:6.12今日黄金原油行情还会涨吗?黄金原油独家操作策略
【黄金消息面分析】:据荷兰国际集团(ING)大宗商品策略师埃瓦?曼西(Ewa Manthey)称,黄金价格正面临来自美元走强和中国需求疲软的新阻力,但一旦美联储开始降息,黄金价格将恢复反弹。 【黄金技术面分析】:黄金…...
VM ubuntu终端使用Host代理的方法
1、设置网络地址转换NAT 2、在终端敲击如下命令 先敲击 ip route show 找到网关。再敲击如下命令: export http_proxyhttp://10.0.2.2:33210 export https_proxyhttp://10.0.2.2:33210 export HTTP_PROXYhttp://10.0.2.2:33210/ export HTTPS_PROXYhttp://10.0.2.…...
【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 破译犯罪时间(100分) - 三语言AC题解(Python/Java/Cpp)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 破译犯罪时间(100分) 🌍 评测功能需要订阅专栏后私信联系清…...
大模型学习之GLM结构
探索GLM:一种新型的通用语言模型预训练方法 随着人工智能技术的不断进步,自然语言处理(NLP)领域也迎来了革命性的发展。OpenAI的ChatGPT及其后续产品在全球范围内引起了广泛关注,展示了大型语言模型(LLM&a…...
做app一定要做网站吗/榜单优化
thrift需要使用对应语法编写接口用于生成对应语言的接口,本文简单介绍会用到的数据类型 基础类型 bool/byte/i16/i32/i64/double/string 其中没有无符号整型类型。 containers 集合类 list/set/map structs 自定义将多个字段封装起来的数据类型,每个字段…...
海南建设厅评审网站/学好seo
最近在体测系统中,用到了图表的知识,接下来就简单分享一下图表的制作过程。 1. 首先要安装angular2图表和Charts.js 输入命令: npm install ng2-charts --save npm install chart.js --save 在该页面所在module中添加:如&…...
为什么不自己做购物网站/赣州seo
2017-08-19 主要内容:CPU和GPU介绍,几种深度学习框架的介绍 1.CPU和GPU CPU一般核数目比较少,适合做通用的计算,速度比较快,共享系统的内存 GPU一般单个核心的速度比较慢,但是核心数目很多,几千…...
最容易做的门户网站/新网络营销
随着互联网的普及,即时通讯软件也渗透到了人们的日常生活和工作当中,而市面上的即时通讯软件现在有分为两种,一种是个人社交沟通软件,另外一种则是企业即时通讯。企业即时通讯软件是为了让企业内部方便沟通、管理及办公࿰…...
相亲网站做推广的照片是谁/培训机构需要哪些证件
一.概述 linux中不区分进程和线程,都认为是个任务,都是创建一个task_struct.如何区分?线程是共享相同地址空间,而进程是独占地址空间. 多线程共享同一进程的地址空间 优点: 通信方便,可以通过全局变量. 缺点: 访问共享数据时需要考虑同步和互斥. 二.线程共享资源: 可执行的指令…...
凡客建站登陆/网络运营与推广
1. Is_numeric类型转换缺陷 PHP提供了is_numeric函数,用来判断变量是否为数字。PHP弱类型语言的一个特性,当一个整型和一个其他类型行比较的时候,会先把其他类型intval数字化再比。 来看看代码: 访问之 首先对GET方式提交的参数id的值进行检验。id通过is_numeric函数来…...