如何进行代码数据算法测试

news2024/12/25 8:57:20

在此数据科学和机器学习教程中,获取有关如何从头到尾创建和运行分类模型的动手示例。本教程涵盖以下步骤:

  • 数据探索
  • 数据预处理
  • 拆分数据以进行训练和测试
  • 准备分类模型
  • 使用管道组装所有步骤
  • 训练模型
  • 对模型运行预测
  • 评估和可视化模型性能

建立

本教程包括一个用 Python 编写的 Jupyter Notebook。您可以使用具有 IBM Cloud 帐户的 Watson Studio 在 IBM Cloud 上运行笔记本。

  1. 注册或登录。

    • 激活 Watson Studio,方法是从 Try IBM Cloud Pak for Data 页面登录您的 IBM Cloud 帐户。
    • 访问 Watson Studio,方法是在 https://dataplatform.cloud.ibm.com 登录。
  2. 创建一个空项目。

    • 单击“创建项目”或“新建项目”。
    • 选择“创建空项目”。
    • 为项目命名。
    • 选择现有的对象存储服务实例或创建一个新的实例。
    • 单击创建
  3. 添加笔记本。

    • 单击“+添加到项目”。
    • 单击“笔记本”。
    • 单击“从网址”。
    • 提供名称
    • “选择运行时”下,选择“默认 Python 3.6 免费版”。
    • 输入为笔记本 URLhttps://raw.githubusercontent.com/IBM/ml-learning-path-assets/master/notebooks/classification_start_to_end_with_scikit_learn.ipynb
    • 单击“创建笔记本”。
  4. 运行笔记本。

    在打开的笔记本中,单击“运行”以一次运行一个单元格。本教程的其余部分遵循笔记本的顺序。

现在,您已经设置了笔记本,让我们继续开发分类模型,使用包含有关在线交易平台客户信息的数据集来预测客户是否会流失。

数据探索

在实际机器学习开始之前,必须执行几个步骤。首先,数据科学家必须分析将用于运行预测的数据的质量。数据的有偏差表示会导致模型偏斜。有几种方法可以分析数据。在本教程中,我们将进行最少的数据探索,刚好足以让您了解所执行的操作。然后,我们继续讨论本主题的核心主题。

关于数据集

在本教程中,我们使用包含在线交易平台客户信息的数据集来分类给定客户的流失概率是高、中还是低。这为了解如何从头到尾构建分类模型提供了一个很好的示例。预测将属于的三个类别是高、中和低。现在,让我们仔细看看数据集。

数据以.csv文件的形式提供给我们,并使用熊猫库导入。我们使用 numpy 和 matplotlib 来获取一些统计数据并可视化数据。

我们首先运行几行代码来了解每列的数据类型以及每列中的条目数。

性别列中的计数不匹配(见下图)在数据预处理步骤中处理。

我们使用 matplotlib 绘制了一个基本的条形图,以了解数据如何在不同的输出类之间拆分。如果我们对代表性数据不满意,现在是时候获取更多数据用于训练和测试了。

数据预处理

数据预处理是机器学习模型构建过程中的一个重要步骤,因为只有当训练的数据良好且准备充分时,模型才能表现良好。因此,在构建模型时,此步骤会消耗大量时间。

机器学习中有几个常见的数据预处理步骤,在本教程中,我们将介绍其中的一些步骤。scikit-learn提供的预处理选项的完整列表可以在scikit-learn数据预处理页。

我们首先确定不会为预测输出增加任何价值的列。虽然其中一些列很容易识别,但通常会聘请主题专家来识别其中的大部分。删除此类列有助于降低模型的维数。

必须针对每个列自定义应用的预处理技术。Sklearn提供了一个名为ColumnTransformer的库,它允许使用管道将这些技术的序列应用于选择性列。

处理数据集时的一个常见问题是缺少值。scikit-learn提供了一种方法,可以用适用于其上下文的内容填充这些空值。我们使用了 Sklearn 提供的类,并用列中最常用的值填充缺失值。SimpleImputer

此外,由于机器学习算法在处理数字时比在字符串上表现得更好,因此我们希望识别具有类别的列并将其转换为数字。我们使用Sklearn提供的类。一个热编码器的想法是创建二进制变量,每个变量代表一个类别。通过这样做,我们删除了通过仅将数字分配给类别而可能发生的任何序数关系。基本上,我们从包含多个类号的单个列转到仅包含二进制类号的多个列。OneHotEncoder

将标识数据集中的数字列,并将其应用于每个列。这样,每个值都用其列的平均值减去,然后除以其标准差。StandardScaler

如前所述,每种技术都按需要应用的列进行分组,并使用 .理想情况下,这在训练模型之前在管道中运行。但是,为了了解数据的外观,我们将数据转换为临时变量。ColumnTransformer

机器学习算法不能使用简单文本。我们必须将数据从文本转换为数字。因此,对于每个作为类的字符串,我们分配一个数字标签。例如,在客户流失数据集中,流失风险输出标签分类为高、中或低,并分配标签 0、1 或 2。为此,我们使用Sklearn提供的类。LabelEncoder

这些是应用于数据集的一些常用预处理步骤。您可以在数据预处理中获取详细信息。

拆分数据以进行训练和测试

预处理数据后,下一步是将数据拆分为多个部分,用于创建和训练模型以及测试和评估生成的模型。在训练和测试之间应该分配多少百分比的数据背后有几种理论。在本教程中,我们使用 98% 的数据进行训练,使用 2% 的数据进行测试。

准备分类模型

有几种流行的分类模型,并且已被证明具有很高的准确性。在本教程中,我们通过初始化 Sklearn 提供的库来应用随机森林分类器。作为此学习路径的一部分,我们使用 Python 和 scikit-learn 对 Learn 分类算法中的各种分类模型进行了详细的描述和比较。现在,我们将跳过随机森林如何工作的细节,并继续创建我们的第一个机器学习模型。

使用管道组装步骤

在此学习路径中,我们使用管道。管道是在机器学习流中设计数据处理的便捷方法。使用管道背后的想法在使用 Python 和 scikit-learn 的 Learn 分类算法中有详细说明。下面的代码示例演示如何使用 sklearn 设置管道。

训练模型

创建模型的最后一步称为建模,您基本上可以训练机器学习算法。在拆分数据步骤中拆分的 98% 的数据用于训练在上一步中初始化的模型。

对模型运行预测

训练模型后,即可进行一些分析。在此步骤中,为测试模型保留的 2% 的数据用于运行预测。数据被蒙住,没有任何输出,并如下图所示进行传递。收集预测输出以根据实际结果进行评估,这就是我们在下一步中要做的事情。

评估和可视化模型性能

使用实际结果进行比较上一步中获取的预测结果。生成多个评估指标来计算模型的性能。

 

总结

在评估提供令人满意的分数之前,您将通过调整所谓的超参数来通过评估步骤重复数据预处理。

在本教程中,你将获得一个动手示例,说明如何从头到尾开发基本的机器学习分类模型。

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

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

相关文章

解决 MacOS BigSur JD-GUI 打开失败的问题

前言JD-GUI是一款轻量级的 Java 反编译工具,对于一些没有源码的 Jar 包,直接拖进去就可以反编译源码,十分的方便。 在 MacOS 还是 Mojave 的时候,JD-GUI(下载地址)使用一切正常。 (apkTool下载地址 https://bitbucket.org/iBotP…

c++学习——运算符重载

运算符重载 **运算符重载的概念****加号运算符重载****减号运算符重载****左移运算符重载****右移运算符重载****赋值运算符重载****关系运算符重载****前置加加和后置加加** 运算符重载的概念 1.运算符重载,就是对已有的运算符重新进行定义,赋予其另一…

Spring Boot 框架整体启动流程详解

基于Spring Boot 版本:3.1 Java: 17 Spring Boot 的入口即为xxApplication类的main方法: SpringBootApplication public class SpringBootDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringBootDemoApplication.…

Android 13 wifi adb设置固定端口解决

Android 13 wifi adb设置固定端口解决 本文只管解决介绍不做代码层面具体分析。 文章目录 Android 13 wifi adb设置固定端口解决一、前言二、设置wifi 固定端口号三、打开 "无线调试"1、手动打开设置里面的开发者选项 里面的“无线调试”2、通过命令设置打开 "…

想面试Java后端,至少这些你都要会吧

跨越Java后端面试的最重要关卡,就是对技术知识的准备。但难点在于,后端技术栈的内容繁杂,你需要掌握一个广泛的领域。那么,为了保证你能够顺利面试Java后端岗位,下面分享我认为你必须要掌握的技术: 1. Jav…

【实验练习】基于SVM的实现鸢尾花(Iris)数据集分类 (Python实现)

题目 采用SVM方法实现鸢尾花(Iris)数据集分类 数据集 iris.name是关于数据集的属性说明; iris.data是实际的数据集,它包含三类数据,每类数据有50条数据。 要求 训练集:选取Iris数据集中80%的数据,即120个数据&…

小程序容器技术:数字门户的创新引擎

数字门户是指提供一站式访问和集成多个在线服务、信息和资源的网络平台。它通常是一个网站或应用程序,为用户提供广泛的功能和服务,如新闻、天气预报、电子邮件、在线购物、社交媒体、银行服务、电子支付、在线学习、政府服务等。数字门户的目标是通过集…

Laravel 招聘系统 - 求职者和雇主的解决方案

您是否正在寻找一个将求职者和雇主联系起来的解决方案?那就不要再找了!我们隆重推出 Laravel 招聘板,这是一个使用 Laravel 9.x 框架构建的尖端招聘板脚本。凭借其简洁而优雅的设计,该脚本旨在创建一个用于广告职位空缺、寻找合适…

【Python小技巧】Python操控Chrome浏览器实现网页打开、切换、关闭(送独家Chrome操作打包类源码、Chrome浏览器Cookie在哪里?)

文章目录 前言一、什么时候需要用Python控制浏览器?二、下载Chrome浏览器驱动文件1. 安装Chrome浏览器并查看版本2. 下载浏览器驱动文件3. 解压到python编译器目录(python.exe所在目录) 三、Python控制Chrome浏览器(附源代码&…

基于国产RK3588+多路H.265视频编解码 转码 3U VPX 方案

一、概述 3U VPX音视频转码模块是信迈科技推出的基于RK3588平台用于音视频的编解码、转码,本模块SDI视频、模拟音频输入,视频进行分辨率和帧率的变换,音频进行采样率和码率等的变换,网口输入的视频流进行解码或者转码&…

Linux——进程优先级环境变量

目录 1、进程优先级 1.1 基本概念 1.2 查看系统进程 1.3 PRI and NI 1.4 PRI vs NI 1.5 查看进程优先级的命令 1.6 其他概念 2、环境变量 2.1 基本概念 2.2 常见环境变量 2.3 查看环境变量方法 2.4 测试PATH 2.5 测试HOME 2.6 和环境变量相关的命令 2.7 环境变量…

Springboot配置文件中的明文密码漏洞

目录 一、背景 二、本地修复测试 1、maven中引入jasypt 2、编写加密解密工具类 3、修改配置文件,增加秘钥 4、秘钥放在启动项 三、生产实现 1、升级打包代码 2、生产yml修改明文密码处 3、修改启动命令 一、背景 最近接收到网安的系统安全…

c++类和对象【3】(static成员,友元内部类,匿名对象等)

文章目录 1.友元函数1.1友元函数1.2友元类 2内部类3.匿名对象4.拷贝对象的一些编译器优化5.static成员 1.友元函数 我们在类外面去访问类里的私有成员,就要突破类的访问限定因此就有了友元,它提供了一种突破封装的方式,但是友元会增加耦合度…

GPT时代,一定要收藏的结构化提问技巧

有一种被称为“SMART”的结构化提问方法,可以帮助你更好的组织和明确提出的问题。“SMART”是一个缩写,它代表了以下几个关键元素: S:Specific(具体) 确保问题具体明确,避免模糊或含糊不清的表…

基于SVPWM调制的三相整流器_Simulink仿真模型

文章目录 模型总览特性功能实现输入三相交流电压220Vac 经过三相整流器进行功率变换,输出电压750V,输出功率10kW,同时实现功率因数校正/PFC功能(控制输入电流与输入电压同相且为正弦电流),输入电流THD为1.3…

spring cloud搭建(zuul)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

路径规划算法:基于黏菌优化的路径规划算法- 附代码

路径规划算法:基于黏菌优化的路径规划算法- 附代码 文章目录 路径规划算法:基于黏菌优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法黏菌…

一百二十二、Git——Git上传代码(完善中)

方式一、用IDEA 第一步,IEDA拉项目 File——New——Project from Version Control——Git 输入URL,选择Directory,点击clone 第二步,把上传文件拉到IDEA项目,然后选中文件,右击Git,选择Reposity,如果上传…

中国人口增长预测

目录 问题分析 模型建立 Logistic模型 Leslie模型 模型求解 问题一 问题二 问题三 问题分析 问题 基本假设 (1)不考虑移民对人口总数的影响 (2)超过90岁按照90岁计算 (3)在较短时间内,平均…

深度学习预预训练与MMPretrain

MMPretrain算法库 优势: 含有各种主干网络模型自监督学习功能多模态学习功能丰富的数据集含有训练技巧和策略易用,例如可解释性分析、推理api 包含多种丰富任务的开箱即用推理api 图像分类图像语义描述视觉问答视觉定位检索 安装步骤 配置文件中含有…