政安晨:机器学习快速入门(一){基于Python与Pandas}

news2024/11/19 1:31:33

对于刚接触ML(机器学习)的小伙伴来说,通过几篇文章能够快速登堂入室是非常及时且有用的,作者政安晨力求让小伙伴们,几篇文章内就可以达到这个目标,咱们开始!

机器学习简介

咱们先看一下Pandas:

Pandas是一个基于Python的开源数据处理库,旨在提供快速、灵活和简单的数据分析工具。它提供了大量的数据结构和函数,可以轻松地处理和操作结构化数据。Pandas的核心数据结构是Series和DataFrame,分别用于存储一维的标签数据和二维的表格数据。它还提供了丰富的数据处理和分析功能,包括数据清洗、筛选、分组、重塑、合并等。Pandas的设计和用法都非常直观,使得用户能够方便地进行数据处理和分析工作。

Python语言我就不多说了,想要Python快速入门的小伙伴,去订阅我的Python语言大讲堂栏目。

里面有几篇示例演绎的Python语言的快速入门

政安晨的Python语言大讲堂icon-default.png?t=N7T8http://t.csdnimg.cn/ZKv9R

好了,接下来:

学习机器学习的核心理念,并构建你的第一个模型

模型的工作原理

如果你是机器学习的新手,首先要采取的步骤是什么?

我们将先从机器学习模型的工作原理和使用方法的概述开始。

如果您以前进行过统计建模或机器学习,这可能会感觉很基础。不用担心,我们很快就会进入构建强大模型的阶段。

在接下来的情景中,您将在建模过程中构建模型:

您的表亲通过房地产投机赚了数百万元。他因为您对数据科学的兴趣而提出与您成为商业伙伴。他提供资金,您提供预测房屋价值的模型。

您问您的表亲他过去是如何预测房地产价值的,他说那只是凭直觉。但更深入的询问揭示出,他从过去看到的房屋中确定了价格模式,并将这些模式用于预测他正在考虑的新房屋。

机器学习的工作原理与此类似。我们将从一个被称为决策树的模型开始。还有更高级的模型可以提供更准确的预测。但决策树易于理解,它们是数据科学中一些最先进模型的基本构建模块。

为简单起见,我们将从最简单的决策树开始(下图就是简单决策树):

简单决策树

它将房屋分为只有两个类别,对于考虑中的任何房屋,预测价格是同一类别房屋历史平均价格。

我们使用数据来决定如何将房屋分成两组,然后再次使用数据确定每组的预测价格。

从数据中捕捉模式的这个步骤称为拟合或训练模型

用于拟合模型的数据称为训练数据。

模型的拟合细节(例如如何拆分数据)足够复杂,我们将在后面进行讨论。在模型拟合完成后,您可以将其应用于新数据,以预测额外房屋的价格。

改进决策树

以下两棵决策树中,哪一棵更有可能是通过拟合房地产训练数据得到的结果?

左边的决策树(决策树1)可能更有意义,因为它捕捉到了房屋卧室数量较多的房屋往往以更高的价格出售的现实情况(右边的决策树则没有正确拟合这个情况)。这个模型最大的缺点是它没有捕捉到影响房屋价格的大多数因素,比如浴室数量、地块大小、位置等。

可以通过使用更多“分裂”来捕捉更多的因素。这些被称为“更深”的树。考虑到每个房子的整体面积的决策树可能如下所示:

通过沿着决策树进行追踪,并始终选择与该房屋特征相对应的路径,您可以预测任何房屋的价格。该房屋的预测价格位于树的底部。我们进行预测的底部点被称为叶子节点。

决定叶子节点的分割和数值将取决于数据,所以现在是时候检查一下你将要处理的数据了。

初步数据探索

加载并理解您的数据

使用Pandas这样的工具

使用像Pandas这类工具,可以让你面对数据好似庖丁解牛。

您现在需要建立一个Python的虚拟环境,在这个环境里可以通过pip安装Pandas工具包,这个Python虚拟环境可以使用Conda工具建立,因为我的笔记本是Ubuntu系统,所以我选择使用了Miniconda软件来进行Python虚拟环境的构建,并使用Jupyter Notebook来进行程序演练。

(如果您想要参照着某个文档试一试的话,参考我下面这篇博客里开头部分的那些我的其它文章链接:详细讲了如何在windows或者Linux环境下创建与机器学习有关的环境

跟着演练快速理解TensorFlow(适合新手入门)icon-default.png?t=N7T8https://blog.csdn.net/snowdenkeke/article/details/135950931

安装Pandas工具包

现在我打开我的一个虚拟环境,安装好Pandas:

pip install pandas

然后,我在我的虚拟环境中启动Jupyter Notebook:

Jupyter Notebook启动后会打开系统默认浏览器并加载页面:

一切就绪,开始您的第一场数据探索。

任何机器学习项目的第一步是熟悉数据。

您将使用Pandas库来完成这一步。

Pandas是数据科学家用于探索和操作数据的主要工具。

大部分人在代码中将Pandas缩写为pd。我们使用以下命令来完成这一步:

import pandas as pd

在Jupyter中像这样输入(那样一行一行的格子成为单元格):

输入后执行,只要没有报错,即表示执行OK,如果该段程序有输出结果,则会在下方打印出来。

打开一个数据文件(.csv)

Pandas库中最重要的部分是DataFrame。DataFrame保存了一种类似于表格的数据类型。这类似于Excel中的工作表或SQL数据库中的表格。

Pandas具有针对此类数据进行操作的强大方法:

以墨尔本,澳大利亚的房价数据为例。在实践练习中,您将使用相同的流程来处理一个新的数据集,其中包含爱荷华州的房价数据。

这个数据集我已经放到了该文章的资源绑定中,小伙伴们下载后解压使用

文件路径可以拷贝到Jupyter的工作目录下,类似这样:./melb_data.csv

我们使用以下命令加载和探索数据:

把文件路径像我下面的这段代码这样赋值给变量。

# save filepath to variable for easier access
melbourne_file_path = './melb_data.csv'
# read the data and store data in DataFrame titled melbourne_data
melbourne_data = pd.read_csv(melbourne_file_path) 
# print a summary of the data in Melbourne data
melbourne_data.describe()

在Jupyter中执行上述代码如下:

解读数据描述

结果显示,每列原始数据集有8个数字。第一个数字是计数,显示有多少行具有非缺失值。

缺失值出现的原因有很多。例如,在调查一个卧室的房子时,可能不会收集到第二个卧室的大小。我们将会回到缺失数据的话题上。

第二个值是平均值。在其下方,标准差(std)是衡量数值分散程度的统计量。

要解释最小值、25%、50%、75%和最大值,可以想象将每一列按照从最小到最大值的顺序排序。第一个(最小)值就是最小值。如果从列表的首位往前推进四分之一的位置,你会找到一个大于25%的值和小于75%的值。那就是25%的值(发音为“25th percentile”)。50th和75th百分位数的定义类似,而最大值则是最大的数。

告一段落

至此,您已经了解了数据分析与机器学习,并熟悉了安装、导入Pandas库,而且还展示出了一段数据文件的描述。你看,并不难吧。

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

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

相关文章

Web APIs 2 事件

Web APIs 2 事件 事件监听案例:广告关闭案例:随机问答 事件监听版本事件类型案例:轮播图完整焦点事件键盘事件输入事件案例:评论字数统计 事件对象获取事件对象事件对象常用属性案例:评论回车发布 环境对象this回调函数…

6-2、T型加减速计算简化【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】,查看本系列全部文章 摘要:本节介绍简化T型加减速计算过程,使其适用于单片机数据处理。简化内容包括浮点数转整型数计算、加减速对称处理、预处理计算 一、浮点数转整型数计算 根据上一节内容已知 常用的晶振大小…

vscode 突然连接不上服务器了(2024年版本 自动更新从1.85-1.86)

vscode日志 ll192.168.103.5s password:]0;C:\WINDOWS\System32\cmd.exe [17:09:16.886] Got some output, clearing connection timeout [17:09:16.887] Showing password prompt [17:09:19.688] Got password response [17:09:19.688] "install" wrote data to te…

Excel——高级筛选匹配条件提取数据

一、筛选多条件 Q:筛选多个条件,并将筛选出的内容复制到其他区域 点击任意一个单元格 点击【数据】——【筛选】——【高级筛选】 选择【将筛选结果复制到其他位置】——在【列表区域】 鼠标选择对应的区域位置,条件区域一定要单独写出来&a…

vue2.0+使用md-edit编辑器

前言:小刘开发过程中,如果是博客项目一般是会用到富文本。众多富文本中,小刘选择了markdown,并记录分享了下来。 # 使用 npm npm i kangc/v-md-editor -Smain.js基本配置import VueMarkdownEditor from kangc/v-md-editor; import…

【观察】数据驱动AI的新纪元,联想凌拓的新使命

知名科技杂志《连线》创始主编凯文凯利曾预测:“在未来的 100 年里,人工智能将超越任何一种人工力量,将人类引领到一个前所未有的时代。” 确实如此,犹如历史上蒸汽机、电力、计算机和互联网等通用技术一样,近20年来&a…

【Kotlin】Kotlin环境搭建

1 前言 Kotlin 是一种现代但已经成熟的编程语言,由 JetBrains 公司于 2011 年设计和开发,并在 2012 年开源,在 2016 年发布 v1.0 版本。在 2017 年,Google 宣布 Kotlin 正式成为 Android 开发语言,这进一步推动了 Kotl…

“极简壁纸“爬虫JS逆向·实战

文章目录 声明目标分析确定目标目标检索 代码补全完整代码 爬虫逻辑完整代码 运行结果 声明 本教程只用于交流学习,不可用于商业用途,不可对目标网站进行破坏性请求,请遵守相关法律法规。 目标分析 确定目标 获取图片下载链接 目标检索…

JVM 性能调优 - JVM 参数基础(2)

查看 JDK 版本 $ java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode) 查看 Java 帮助文档 $ java -help 用法: java [-options] class [args...] …

PDF文件格式(一):新版格式交叉引用表

PDF交叉引用表是PDF的重要组成部分,本文介绍的是新交叉引用表,这种引用表的格式是PDF的obj格式,内容是被压缩存放在obj下的stream中,因此比常规的引用表格式复杂。下面就开始介绍这种交叉引用表的格式和解析的方法: 1…

基于Vue2用keydown、setTimeout事件实现连续按键(连击)任意键(或组合键)3秒触发自定义事件(以F1键为例)

核心代码 <template></template> <script> export default {created() {//监听弹起快捷键addEventListener("keyup", this.keyup);},destroyed(d) {//移除监听弹起快捷键removeEventListener("keyup", this.keyup);},methods: {keyup(…

leetcode(双指针)283.移动零(C++)DAY3

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 示例 1: 输入…

abap - 发送邮件,邮件正文带表格和excel附件

发送内容 的数据获取&#xff1a; 正文部分使用cl_document_bcs>create_document静态方法实现 传入参数为html内表结构 CLEAR lo_document .lo_document cl_document_bcs>create_document(i_type HTMi_text lt_htmli_length conlengthsi_subject lv_subje…

分享springboot框架的一个开源的本地开发部署教程(若依开源项目开发部署过程分享持续更新二开宝藏项目PostgresSQL数据库版)

1首先介绍下若依项目&#xff1a; 若依是一个基于Spring Boot和Spring Cloud技术栈开发的多租户权限管理系统。该开源项目提供了一套完整的权限管理解决方案&#xff0c;包括用户管理、角色管理、菜单管理、部门管理、岗位管理等功能。 若依项目采用前后端分离的架构&#xf…

Zephyr NRF7002 实现AppleJuice

BLE的基础知识 ble的信道和BR/EDR的信道是完全不一样的。但是范围是相同的&#xff0c;差不多也都是2.4Ghz的频道。可以简单理解为空中有40个信道0~39信道。两个设备在相同的信道里面可以进行相互通信。 而这些信道SIG又重新编号&#xff1a; 这个编号就是把37 38 39。 3个信道…

idea(2023.3.3 ) spring boot热部署,修改热部署延迟时间

1、添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency>载入依赖 2、设置编辑器 设置两个选项 设置热部署更新延迟时…

seatunnel数据集成(一)简介与安装

seatunnel数据集成&#xff08;一&#xff09;简介与安装seatunnel数据集成&#xff08;二&#xff09;数据同步seatunnel数据集成&#xff08;三&#xff09;多表同步seatunnel数据集成&#xff08;四&#xff09;连接器使用 1、背景 About Seatunnel | Apache SeaTunnel …

构建高效直播美颜系统:美颜SDK集成与性能优化指南

如今&#xff0c;美颜技术的广泛应用成为各类直播平台的标配之一。今天&#xff0c;小编将与大家进一步讨论如何构建高效的直播美颜系统&#xff0c;重点关注美颜SDK的集成和性能优化方面。 一、美颜SDK的选择与集成 选择合适的美颜SDK是构建高效直播美颜系统的第一步。不同的…

Go语言每日一练 ——链表篇(三)

传送门 牛客面试笔试必刷101题 ---------------- 链表中的节点每k个一组翻转 题目以及解析 题目 解题代码及解析 package main import _"fmt" import . "nc_tools" /** type ListNode struct{* Val int* Next *ListNode* }*//*** 代码中的类名、方…

MongoDB从入门到实战之Docker快速安装MongoDB

前言 在上一篇文章中带领带同学们快速入门MongoDB这个文档型的NoSQL数据库&#xff0c;让大家快速的了解了MongoDB的基本概念。这一章开始我们就开始实战篇教程&#xff0c;为了快速把MongoDB使用起来我将会把MongoDB在Docker容器中安装起来作为开发环境使用。然后我这边MongoD…