机器学习 | 四大常用机器学习Python库介绍

news2024/9/22 15:33:04

今天这篇我们介绍下Python中常用的机器学习库(机器学习、深度学习啥的,小编还是建议使用Python进行建模编写哈),也算是本公号机器学习的第一篇推文,主要内容如下:

  • 机器学习常用四大Python库

  • 关于机器学习的我想说的话

  • 所有完整代码都已整理之我们的线上课程,有需要的同学+v yidianshuyulove 咨询

深度学习常用四大Python库

这一部分我们简单介绍下Python中的常用的机器学习库,算是比较入门的介绍哈,具体包括Scikit-learn、Keras、TensorFlow和PyTorch,下面我们就一一简单介绍:

Scikit-learn

  1. 「官网」

网址:https://scikit-learn.org/stable/

  1. 「简单介绍」

Scikit-learn(sklearn)是机器学习中常用的第三方模块,其对常用的机器学习方法进行了封装,具体包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。主要特点:

  • 简单高效的数据挖掘和数据分析工具

  • 够在复杂环境中重复使用

  • 建立NumPy、Scipy、MatPlotLib之上

  1. 「官方样例及示图」

  • Classification(分类)

Classification

  • Regression(回归)

Regression

  • Clustering(聚类)

Clustering

更多内容,小伙伴们可参考上方官网哈

Keras

这个库也是小编较常使用的深度学习库,其高度集成式可帮助你快速搭建深度学习网络。值得一提的是,官方也提供了对应的中文网站哦,帮助大家更好的理解。

  1. 「官网」

网址:https://keras.io/zh/

  1. 「简单介绍」

Keras是一个由Python编写的开源人工神经网络库,在代码结构上由面向对象方法编写,完全模块化并具有可扩展性,其运行机制和说明文档有将用户体验和使用难度纳入考虑,并试图简化复杂算法的实现难度。特点如下:

  • 支持现代人工智能领域的主流算法,包括前馈结构和递归结构的神经网络,

  • 可通过封装参与构建统计学习模型。

  • 支持多操作系统下的多GPU并行计算。

  1. 「官方样例及示图」

  • 基于多层感知器 (MLP) 的 softmax 多分类:

import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD

# 生成虚拟数据
import numpy as np
x_train = np.random.random((1000, 20))
y_train = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=10)
x_test = np.random.random((100, 20))
y_test = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)

model = Sequential()
# Dense(64) 是一个具有 64 个隐藏神经元的全连接层。
# 在第一层必须指定所期望的输入数据尺寸:
# 在这里,是一个 20 维的向量。
model.add(Dense(64, activation='relu', input_dim=20))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy'])

model.fit(x_train, y_train,
          epochs=20,
          batch_size=128)
score = model.evaluate(x_test, y_test, batch_size=128)
  • 基于多层感知器的二分类

import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Dropout

# 生成虚拟数据
x_train = np.random.random((1000, 20))
y_train = np.random.randint(2, size=(1000, 1))
x_test = np.random.random((100, 20))
y_test = np.random.randint(2, size=(100, 1))

model = Sequential()
model.add(Dense(64, input_dim=20, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy',
              optimizer='rmsprop',
              metrics=['accuracy'])

model.fit(x_train, y_train,
          epochs=20,
          batch_size=128)
score = model.evaluate(x_test, y_test, batch_size=128)
  • 基于 LSTM 的序列分类

from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.layers import Embedding
from keras.layers import LSTM

max_features = 1024

model = Sequential()
model.add(Embedding(max_features, output_dim=256))
model.add(LSTM(128))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy',
              optimizer='rmsprop',
              metrics=['accuracy'])

model.fit(x_train, y_train, batch_size=16, epochs=10)
score = model.evaluate(x_test, y_test, batch_size=16)

通过以上样例可以发现,只需简单的集成化操作就可以构建出浅层甚至多层的神经网络模型,还是十分方便的。更多样例和操作方法,大家可参考官网哈~~

TensorFlow

  1. 「官网」

网址:https://tensorflow.google.cn/

  1. 「简单介绍」

TensorFlow是一个开放源代码软件库,用于进行高性能数值计算,是一个用于研究和生产的开放源代码机器学习库。其提供了各种 API,可供初学者和专家在桌面、移动、网络和云端环境下进行开发,采用数据流图(Data Flow Graphs)来计算。

  1. 「官方样例」 TensorFlow 官网提供详细而全面的教程和应用文章,大家可前往阅读。

PyTorch

其实这个库吧,在我刚接触深度学习时还不是特别大众化,但在我 快毕业时,其越来越被接受和使用,我想这与其可高度自定义化操作特点有关。

  1. 「官网」

网址:https://pytorch.org/

  1. 「简单介绍」

PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能:

  • 具有强大的GPU加速的张量计算(如NumPy)。

  • 包含自动求导系统的深度神经网络。

「特点如下:」

  • PyTorch是相当简洁且高效快速的框架。

  • 设计追求最少的封装。

  • 设计符合人类思维,它让用户尽可能地专注于实现自己的想法。

  • 与google的Tensorflow类似,FAIR的支持足以确保PyTorch获得持续的开发更新。

  • PyTorch作者亲自维护的论坛 供用户交流和求教问题。

  • 入门简单。

  1. 「官方样例」

  • TRAINING A CLASSIFIER(分类训练)

网址:https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#sphx-glr-beginner-blitz-cifar10-tutorial-py

  • TORCHVISION OBJECT DETECTION FINETUNING TUTORIAL(目标检测)

网址:https://pytorch.org/tutorials/intermediate/torchvision_tutorial.html

Mask R-CNN adds an extra branch into Faster R-CNN, which also predicts segmentation masks for each instance.

更多优秀案例,大家可阅读PyTorch官网。

关于机器学习的我想说的话

其实对于机器学习或者深度学习,小编的建议还是熟练掌握Scikit-learn、Keras以及PyTorch,这里不是要求掌握到自己熟练编写网络层,但要对其原理有所了解,使自己可以对其进行简单的修改。因为我们实际工作中用到的模型早已经成熟或者开源,大家完全可以去Github上进行下载和解读。但对一些科研需求,则需要自己进行代码 修改甚至相关网络层的编写。本公号后续推出的机器学习相关推文也会从简至难,也会有完整的流程化步骤帮助大家更好地将理论应用到实际上。

最后,给正在追求精度的模型小伙伴说句话:“这玩意吧~精度和结果有时候真得看运气”,具体原因就不说了,有经验的我们会心一笑即可

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

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

相关文章

Linux系统Docker部署RStudio Server

文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问…

公网IP怎么获取?

公网IP是网络中设备的唯一标识符,用于在Internet上进行通信和定位。对于普通用户来说,了解如何获取自己的公网IP是很有必要的,本文将介绍几种获取公网IP的方法。 方法一:通过路由器查询 大多数家庭和办公室使用的路由器都会有一个…

Java集合-ArraysLIst集合

集合是“由若干个确定的元素锁构成的整体”,在程序中,一般代表保存若干个元素(数据)的某种容器类。在Java中,如果一个Java对象可以在内部持有(保存)若干其他Java对象,并对外提供访问接口,我们把这种Java对象的容器称为…

计算机视觉基础知识(一)--数学基础

向量 线性变换 矩阵 充满数字的表格 矩阵加减法 要满足两个矩阵的行数与列数一致;加法交换律:ABBA 矩阵乘法 要满足A的列数等于B的行数; 单位矩阵 是一个nxn矩阵;从左到右对角线上的元素值为1;其余元素为0;A为nxn矩阵,I为单位矩阵,;单位矩阵在乘法中的作用相当于数字1; 逆矩…

【windows】环境下部署 java 项目

文章目录 前言一、工具:winsw二、使用步骤1.winsw文件2.修改后的winsw文件3.修改testJava.xml文件 三、运行1.注册服务2.注销服务 总结 前言 有时我们部署的环境是 Windows,需要借用 winsw 将 java 发布成服务形式。 提示:以下是本篇文章正文…

go linux监测文件变化

go linux监测文件变化 文件改变内容有两种方式,效果一样,但执行方式有区别: 直接打开文件改,现在很多编辑器都是这样操作的先删除原来的,再新创建写入一个替代原来的。比如vi/vim.这种方式会打断linux inotify原有的监测(就好比…

解决maven远程仓库找不到问题

首先可以修改maven镜像,改成国内镜像 在上步行不通的情况下 可以进行下面的设置 首先jar包下载下来,打开maven的设置 将下面代码改成自己的实际,插入到3中 mvn install:install-file -Dfile{$jar包地址} -DgroupId{$jar包的groupid} -Dar…

web3时事粥报

比特币正成为更具有吸引力的通胀对冲工具 在通胀的宏观经济浪潮中,比特币正逐渐崭露头角,成为那些渴望多元化投资组合的投资者眼中的璀璨明星。Kooner 预测,2024年,各种宏观经济挑战可能进一步提升比特币、黄金和白银等资产的避险…

基于机器学习的曲面拟合方法

随着科技的不断发展,机器学习成为了最近最热门的技术之一,也被广泛应用于各个领域。其中,基于机器学习的曲面拟合方法也备受研究者们的关注。曲面拟合是三维模型处理中的重要技术,其目的是用一组数据点拟合出平滑的曲面&#xff0…

文生视频基础1:sora技术报告学习

sora技术报告学习 背景学后理解训练流程技术拆解编码解码扩散模型训练用数据 28号直播交流会后的一些想法自身的一点点想法 参考 原文地址:Video generation models as world simulators 背景 此项目的背景是基于Datawhale的关于sora技术文档的拆解和相关技术讲解…

安卓tcp ip通讯

废话不多说直接上代码 //权限 引入<uses-permission android:name"android.permission.ACCESS_NETWORK_STATE" /><!--允许应用程序改变网络状态--><uses-permission android:name"android.permission.CHANGE_NETWORK_STATE"/><!--允…

NumpyPython 笔记1 3.4

array.ndim 几维 array.shape 几行&#xff0c;几列 array.size 存在多少个元素 np.array 转化为矩阵 dtype 确定类型&#xff0c;并且确定精度64&#xff1f;32&#xff1f;16&#xff1f;数字越小&#xff0c;越不精确 二维 np.zeros 生成零矩阵&#xff0c;并且规…

java常用应用程序编程接口(API)——Instant,DateTimeFormatter,Period,Duration概述

前言&#xff1a; 整理下学习心得。打好基础&#xff0c;daydayup&#xff01; Instant Instant是时间线上的某个时刻/时间戳&#xff0c;通过获取Instant的对象可以拿到此刻的时间&#xff0c;该时间由两部分组成&#xff1a;1&#xff0c;从1970年1月1日00:00:00开始走到此刻…

驱动开发面试复习

创建字符设备 1 创建设备号 alloc_chrdev_region 2.创建cdev cdev_init 3.添加一个 cdev,完成字符设备注册到内核 cdev_add 4.创建类 class_create 5.创建设备 device_create 1.内核空间与用户空间数据 copy_from_user 和copy_to_user 俩个函数来完成。 copy_from_user 函数…

招聘人才小程序源码系统:多城市招聘平台+招聘会+职场咨询 带完整的搭建教程以及安装代码包

移动互联网的飞速发展&#xff0c;线上招聘已成为企业和求职者之间的重要桥梁。为了满足多城市、多行业、多岗位的招聘需求&#xff0c;以及提供一站式的求职服务&#xff0c;小编给大家分享一款“招聘人才小程序源码系统”。该系统不仅整合了多城市的招聘平台资源&#xff0c;…

ssm226基于jsp的快递管理系统的开发

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 一 、设计说明 1.1 研究…

动态库制作

win下扩展名为.dll(dynamic linking library) linux下前缀为dll 扩展名为.so(shared object) linux 下使用动态库步骤 1&#xff0c;制作动态库&#xff0c; libmath.so 2&#xff0c;在主程序中包含动态库&#xff08;就是添加头文件的方法&#xff09; 3&#xff0c;编译…

IO 与 NIO

优质博文&#xff1a;IT-BLOG-CN 一、阻塞IO / 非阻塞NIO 阻塞IO&#xff1a;当一条线程执行read()或者write()方法时&#xff0c;这条线程会一直阻塞直到读取到了一些数据或者要写出去的数据已经全部写出&#xff0c;在这期间这条线程不能做任何其他的事情。 非阻塞NIO&…

[Java 探索之路~大数据篇] 新时代大数据流处理入门指南

本文主要介绍大数据基础&#xff0c;以及 flink 流计算 文章目录 【基础知识】1. 批处理与流处理1.批处理2.流处理 2. 为什么需要一个优秀的流处理框架1. 股票交易的业务场景2.生产者——消费者模型3. 流处理框架要解决的诸多问题&#xff08;1&#xff09;可扩展性&#xff08…

JS 对象数组排序方法测试

输出 一.Array.prototype.sort() 1.默认排序 sort() sort() 方法就地对数组的元素进行排序&#xff0c;并返回对相同数组的引用。默认排序是将元素转换为字符串&#xff0c;然后按照它们的 UTF-16 码元值升序排序。 由于它取决于具体实现&#xff0c;因此无法保证排序的时…