kagglePandas索引、选择和分配
Introduction选择要处理的 pandas DataFrame 或 Series 的特定值是几乎任何数据操作中的一个隐含步骤,因此在使用 Python 处理数据时需要学习的第一件事就是如何快速有效地选择与您相关的数据点。
import pandas as pdreviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)pd.set_option('display.max_rows', 5)
要开始此主题的练习,请点击此处。
Native accessors原生 Python 对象提供了良好的数据索引方式。Pandas 也继承了这些特性,这使得入门变得简单。
考虑一下这个 DataFrame:
In [2]:
reviews
Out[2]:
country
description
designation
points
price
province
region_1
region_2
taster_name
taster_twitter_handle
title
...
kagglePandas创建,读,写
Introduction在本微课程中,您将全面了解最流行的 Python 数据分析库 **pandas**。
在此过程中,您将使用真实数据完成几个动手练习。我们建议您在阅读相应教程的同时完成练习。
要开始第一个练习,请点击此处。
在本教程中,您将学习如何创建自己的数据,以及如何处理现有数据。
Getting started要使用 pandas,通常需要从以下代码行开始。
In [1]:
import pandas as pd
Creating dataPandas 中有两个核心对象:DataFrame 和 Series。
DataFrameDataFrame 是一个表。它包含一个由多个独立 条目 组成的数组,每个条目都有一个特定的 值。每个条目对应一行(或 记录)和一列。
例如,考虑以下简单的 DataFrame:
In [2]:
pd.DataFrame({'Yes': [50, 21], 'No': [131, 2]})
Out[2]:
Yes
No
0
50
131
1
21
2
在此示例中,“0,否”条目的值为 131。“0,是”条目的值为 50,依此 ...
kaggleIntrotoMachineLearning随机森林
Introduction决策树会给你带来艰难的决策。一棵深且有大量叶子节点的决策树会过拟合,因为每个预测都仅基于其叶子节点上少数房屋的历史数据。而一棵浅且叶子节点少的决策树则会表现不佳,因为它无法捕捉到原始数据中尽可能多的差异。
即使是当今最复杂的建模技术也面临着欠拟合和过拟合之间的矛盾。但是,许多模型都巧妙地运用了一些技巧,可以提升性能。我们将以随机森林为例。
随机森林使用多棵树,并通过对每棵树的预测取平均值来进行预测。它的预测准确率通常远高于单棵决策树,并且在默认参数下也能很好地工作。如果持续建模,你可以学习到更多性能更佳的模型,但其中许多模型对获取正确的参数非常敏感。
Example你已经看过几次加载数据的代码了。在数据加载结束时,我们有以下变量:
train_X
val_X
train_y
val_y
import pandas as pd # Load datamelbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'melbourne_data = pd.read_csv(me ...
kaggleIntrotoMachineLearning欠拟合和过拟合
完成本步骤后,您将理解欠拟合和过拟合的概念,并能够运用这些概念来提升模型的准确性。
Underfitting and Overfitting现在您已经掌握了可靠的方法来衡量模型的准确性,您可以尝试不同的模型,看看哪个模型的预测效果最佳。但是,您有哪些其他的模型呢?
您可以在 scikit-learn 的文档中看到,决策树模型有很多选项(比您长期所需的选项还要多)。最重要的选项决定了树的深度。回想一下本课程的第一课,树的深度衡量的是它在做出预测之前进行了多少次分裂。这是一棵相对较浅的树。
实践中,一棵树在顶层(所有房屋)和一片叶子节点之间进行 10 次分割的情况并不少见。随着树的深度增加,数据集会被切分成包含较少房屋的叶子节点。如果一棵树只有 1 次分割,它会将数据分成 2 组。如果每组再次分割,我们会得到 4 组房屋。再次分割每组房屋将创建 8 组。如果我们通过在每一层增加更多分割来使房屋组数量翻倍,那么到第十层时,我们将拥有 210210 组房屋。也就是 1024 片叶子节点。
当我们将房屋划分到许多叶子节点时,每片叶子节点上的房屋数量也会减少。房屋数量很少的叶子节点的预测结果会非 ...
kaggleIntrotoMachineLearning第一个机器学习模型
Selecting Data for Modeling你的数据集包含太多变量,你根本无法理解,甚至无法很好地打印出来。如何将如此庞大的数据精简到你能理解的程度呢?
我们将首先运用直觉挑选一些变量。后续课程将向你展示自动确定变量优先级的统计技术。
要选择变量/列,我们需要查看数据集中所有列的列表。这可以通过 DataFrame 的 columns 属性(下面代码的最后一行)来实现。
In [1]:
import pandas as pdmelbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'melbourne_data = pd.read_csv(melbourne_file_path) melbourne_data.columns
Out[1]:
Index(['Suburb', 'Address', 'Rooms', 'Type', 'Price', 'Method', 'SellerG', 'Date', 'Distance', 'Postcode', 'Bedroom2', ' ...
kaggleIntrotoMachineLearning模型验证
你已经建立了一个模型。但它有多好?
在本课中,你将学习如何使用模型验证来衡量模型的质量。衡量模型质量是迭代改进模型的关键。
What is Model Validation你几乎需要评估你构建的每个模型。在大多数(但并非所有)应用中,模型质量的相关指标是预测准确度。换句话说,模型的预测是否接近实际情况。
许多人在衡量预测准确度时犯了一个很大的错误。他们使用训练数据进行预测,然后将这些预测与训练数据中的目标值进行比较。你稍后会看到这种方法的问题以及如何解决它,但让我们先思考一下如何做到这一点。
你首先需要以一种易于理解的方式概括模型质量。如果你比较 10,000 栋房屋的预测价值和实际价值,你可能会发现预测结果有好有坏。浏览一万个预测值和实际值的列表毫无意义。我们需要将其总结为一个指标。
有很多指标可以概括模型的质量,但我们先从平均绝对误差(也称为MAE)开始。让我们从最后一个词“误差”开始,来详细分析一下这个指标。
每栋房屋的预测误差为:
error=actual−predicted
因此,如果一栋房子的价格为 150,000 美元,而您预测其价格为 100,000 美元,则误差为 ...
kaggleIntrotoMachineLearning基础数据探索
Using Pandas to Get Familiar With Your Data任何机器学习项目的第一步都是熟悉数据。你需要使用 Pandas 库来实现这一点。Pandas 是数据科学家用来探索和操作数据的主要工具。大多数人在代码中将 Pandas 缩写为“pd”。我们使用以下命令执行此操作:
In [1]:
import pandas as pd
Pandas 库中最重要的部分是 DataFrame。DataFrame 保存的数据类型可以理解为表格。它类似于 Excel 中的工作表或 SQL 数据库中的表。
Pandas 拥有强大的方法,可以处理这类数据的大部分操作。
例如,我们将查看澳大利亚墨尔本的房价数据。在动手练习中,您将把相同的流程应用于一个新的数据集,该数据集包含爱荷华州的房价。
示例(墨尔本)数据位于文件路径 **../input/melbourne-housing-snapshot/melb_data.csv**。
我们使用以下命令加载和探索数据:
In [2]:
# save filepath to variable for easier accessmelb ...
kaggleIntrotoMachineLearning模型如何工作
Introduction我们将首先概述机器学习模型的工作原理及其使用方法。如果您之前做过统计建模或机器学习,这可能感觉比较基础。别担心,我们很快就会逐步讲解如何构建强大的模型。
本课程将引导您通过以下场景构建模型:
您的表弟通过房地产投机赚了数百万美元。由于您对数据科学的兴趣,他提出与您成为商业伙伴。他提供资金,您则提供预测各种房屋价值的模型。
您问您的表弟,他过去是如何预测房地产价值的,他说这只是直觉。但进一步的询问表明,他从过去看过的房屋中识别出了价格模式,并利用这些模式来预测他正在考虑的新房。
机器学习的工作原理与此相同。我们将从一种称为决策树的模型开始。有一些更高级的模型可以给出更准确的预测。但决策树很容易理解,而且它们是数据科学中一些最佳模型的基本构建块。
为了简单起见,我们将从最简单的决策树开始。
它仅将房屋分为两类。任何房屋的预测价格都是同一类别房屋的历史平均价格。
我们利用数据来决定如何将房屋分成两组,然后再确定每组的预测价格。从数据中捕捉模式的这一步骤称为拟合或训练模型。用于拟合模型的数据称为训练数据。
模型拟合的细节(例如如何拆分数据)非常复杂,我们将留待以后再讨 ...
THMCORS&SOP
Introduction跨域资源共享 (CORS) 是一种允许 Web 应用程序安全地从不同域请求资源的机制。这在 Web 安全中至关重要,因为它可以防止一个页面上的恶意脚本通过浏览器访问另一个网页上的敏感数据。
同源策略 (SOP) 是一种安全措施,用于限制网页与不同来源的资源进行交互。来源由方案 (scheme)、主机名 (hostname) 和 URL 端口定义。
目标
了解 CORS 和 SOP 的基本原理。
识别并理解 CORS 和 SOP 配置的安全隐患。
在受控环境中利用与 CORS 和 SOP 相关的漏洞。
了解并应用缓解和预防这些漏洞的措施。
先决条件
对 Web 应用程序架构和服务端脚本有基本的了解。
熟悉 Web 服务器配置和 HTTP 标头。
了解 JavaScript 的 XMLHttpRequest (XHR) 或 Fetch API。
Understanding SOP同源策略同源策略(SOP)是一种指示 Web 浏览器如何在网页之间进行交互的策略。根据此策略,只有当两个网页共享同一来源时,一个网页上的脚本才能访问另一个网页上的数据。此“来源”通过 U ...
25-5杂谈
五月在各种事情中过去了,还是比较难以想象这个月发生的事以及生活状态和角色的快速转变,但也很快就适应了。月末开始重获动力了。
THMLDAPInjection
IntroductionLDAP 是轻量级目录访问协议 (LDAP) 的缩写,是一种广泛使用的协议,用于通过互联网协议 (IP) 网络访问和维护分布式目录信息服务。LDAP 使组织能够集中管理用户、群组和其他目录信息,这些信息通常用于 Web 和内部应用程序中的身份验证和授权。
目标
深入了解 LDAP 及其在目录服务中的作用。
探索 LDAP 树形结构及其关键组件。
介绍 LDAP 注入、其影响以及如何利用它。
使学员掌握识别和缓解 LDAP 注入漏洞的知识和技能。
先决条件
对目录服务的工作原理(尤其是 LDAP)有基本的了解。
掌握 Web 应用程序安全原则和常见漏洞的基本知识。
熟悉 LDAP 的结构和组件,例如可分辨名称 (DN) 和属性。
熟悉 Web 应用程序安全测试工具和技术,例如 OWASP ZAP 或 Burp Suite。
Structure在 LDAP 中,目录条目被构建为对象,每个对象都遵循特定的模式,该模式定义了适用于该对象的规则和属性。这种面向对象的方法确保了一致性,并控制了如何在目录中表示和操作用户或组等对象。
使用 LDAP 的服务:
Micro ...
THMMulti-FactorAuthentication
Introduction多因素身份验证 (MFA) 在现代应用程序中发挥着重要作用。MFA 不再仅仅依赖于密码,而是增加了额外的防御层。本质上,MFA 是多种检查的组合。这些检查可能是您已知的信息(例如密码)、您拥有的信息(例如智能手机)以及您自身的信息(例如指纹)。通过使用这些层级,MFA 使威胁行为者更难以访问用户帐户或应用程序。
目标在本课程结束时,您将:
了解 MFA 的运行原理及其在增强应用程序安全态势方面的重要性。
探索 MFA 设置中使用的不同类型的身份验证因素。
深入了解实施 MFA 以保护敏感数据和系统的实际场景。
先决条件在开始本课程之前,您应该对以下概念有基本的了解:
熟悉身份验证机制的一般概念,包括密码和简单身份验证流程的工作原理。
熟练掌握 Linux 命令行的基本操作和使用技能。
完成 枚举与暴力破解 房间测试。
How MFA Works在当今的数字时代,保护敏感数据和系统的安全比以往任何时候都更加重要。多重身份验证 (MFA) 要求您提供两个或更多验证因素,从而为用户帐户提供额外保护。这使得攻击者访问用户帐户的难度显著增加。
需要注意的是,2FA ...
