TowardsDataScience 博客中文翻译 2020(五百四十二)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

🤖交互式机器学习实验

原文:https://towardsdatascience.com/interactive-machine-learning-experiments-e9b29b0cb7b9?source=collection_archive---------28-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

TL;速度三角形定位法(dead reckoning)

嘿读者们!

我已经开源了新的🤖GitHub 上的交互式机器学习实验项目。每个实验包括🏋️ Jupyter/Colab 笔记本(看一个模特是如何被训练的)和🎨演示页面(在您的浏览器中查看模型运行情况)。

尽管模型可能有点笨(记住,这些只是实验,而不是生产就绪代码),但它们会尽力:

  • 🖌可以识别您在浏览器中绘制的数字或草图
  • 📸检测并识别您要在相机上展示的对象
  • 🌅对您上传的图像进行分类
  • 📝和你一起写一首莎士比亚的诗
  • ✊🖐✌️和你一起玩石头剪刀布游戏
  • 等等。

我已经使用 TensorFlow 2Keras 支持在 Python 上训练了模型,然后使用 ReactJavaScript 版本的 Tensorflow 在浏览器中使用它们进行演示。

模型性能

⚠️首先,让我们设定我们的期望。️该库包含机器学习实验,而不是生产就绪,可重复使用,优化和微调的代码和模型。这更像是一个学习和尝试不同机器学习方法、算法和数据集的沙箱或游乐场。模型可能表现不佳,存在过度拟合/欠拟合的情况。

因此,有时您可能会看到这样的情况:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

但是要有耐心,有时候模型可能会变得更聪明🤓给你这个:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

背景

我是一名软件工程师,在过去的几年里,我主要从事前端和后端编程。在我的业余时间,作为一种爱好,我决定挖掘机器学习的话题,让它对我自己来说不那么像魔法的和更像数学的*。*

  1. 🗓因为 Python 可能是开始尝试机器学习的好选择,所以我决定先学习它的基本语法。结果一个🐍学习 Python 的操场和 cheat sheet项目出来了。这只是为了练习 Python,同时在我需要的时候有一个基本语法的备忘单(比如dict_via_comprehension = {x: x**2 for x in (2, 4, 6)}等)。).
  2. 🗓学了一点 Python 之后,我想深入研究机器学习背后的基本数学。所以在通过了由吴恩达在 Coursera上开设的一门很棒的机器学习课程后🤖自制机器学习项目出来了。这一次,它是关于创建一个基本的机器学习数学算法的备忘单,如线性回归,逻辑回归,k-means,多层感知器等。
  3. 🗓下一个尝试玩基本机器学习数学的是🤖纳米神经元。它是关于 7 个简单的 JavaScript 函数,应该给你一种机器如何真正“学习”的感觉。
  4. 🗓在 Coursera 上完成了 Andrew Ng 的另一个令人敬畏的深度学习专业后,我决定用多层感知器、卷积和递归神经网络(CNN 和 RNNs)多练习一点。这一次,我决定开始使用一些机器学习框架,而不是从头开始实现一切。我最后用 TensorFlow 2 搭配 Keras 使用。我也不想太专注于数学(让框架为我做这件事),相反,我想做一些更实际、更适用的东西,一些我可以尝试在我的浏览器上玩的东西。结果新的🤖交互式机器学习实验出来了,我想在这里多描述一点。

技术堆栈

模特培训

  • 🏋🏻‍我用 Keras 里面的 TensorFlow 2 进行建模和训练。由于我对机器学习框架毫无经验,我需要从一些东西开始。TensorFlow 的一个卖点是它既有 Python 的风格,又有类似 API 的 JavaScript 风格。所以最终我用 Python 版本做培训,用 JavaScript 版本做演示。
  • 🏋🏻‍:我在本地使用 Jupyter 笔记本电脑在 Python 上训练 TensorFlow 模型,有时使用 Colab 让训练在 GPU 上更快。
  • 💻大多数模型都是在旧 MacBook 的 Pro CPU(2.9 GHz 双核英特尔酷睿 i5)上训练的。
  • 🔢当然,你不可能为了矩阵/张量运算而逃离数字

模型演示

  • 🏋🏻‍:我用 TensorFlow.js 对之前训练过的模型进行预测。
  • ♻️将 Keras HDF5 模型转换为 TensorFlow.js 图层格式,我使用了 TensorFlow.js 转换器。将整个模型(数兆字节的数据)传输到浏览器,而不是通过 HTTP 请求进行预测,这可能是低效的,但是请再次记住,这些只是实验,而不是生产就绪的代码和架构。我想避免使用专用的后端服务来简化架构。
  • 👨🏻‍🎨使用create-React-appstarter 在 React 上创建了演示应用程序,并使用默认风味进行类型检查。
  • 💅🏻为了造型,我用了材质 UI 。正如他们所说,这是“一箭双雕”,尝试一种新的风格框架(抱歉, Bootstrap 🤷🏻‍).

实验

简而言之,您可以通过以下链接访问演示页面和 Jupyter 笔记本:

多层感知器实验(MLP)

【MLP】多层感知器是一类前馈人工神经网络(ANN)。多层感知器有时被称为“香草”神经网络(由多层感知器组成),尤其是当它们只有一个隐藏层时。

手写数字识别

你画一个数字,模型试图识别它。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

手写草图识别

你画了一张草图,模特试图识别它。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

卷积神经网络(CNN)实验

一种 卷积神经网络(CNN,或 ConvNet) 是一类深度神经网络,最常用于分析视觉图像(照片、视频)。它们被用于检测和分类照片和视频上的物体,风格转换,人脸识别,姿态估计等。

手写数字识别(CNN)

你画一个数字,模型试图识别它。这个实验类似于 MLP 的实验,但是它使用了 CNN。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

手写草图识别(CNN)

你画了一张草图,模特试图识别它。这个实验类似于 MLP 的实验,但是它使用了 CNN。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

石头剪刀布(CNN)

你和模特玩石头剪子布游戏。这个实验使用的是从零开始训练的 CNN。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

石头剪刀布(MobilenetV2)

你和模特玩石头剪子布游戏。该模型使用迁移学习,基于 MobilenetV2

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对象检测(MobileNetV2)

你通过你的相机向模型展示你的环境,它会试图检测和识别物体。这个模型使用迁移学习,基于 MobilenetV2

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图像分类(MobileNetV2)

你上传一张图片,模型试图根据它在图片上“看到”的东西对它进行分类。这个模型使用迁移学习,基于 MobilenetV2

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

递归神经网络实验(RNN)

A 递归神经网络(RNN) 是一类深度神经网络,最常用于基于序列的数据,如语音、声音、文本或音乐。它们用于机器翻译、语音识别、语音合成等。

数字求和

你输入一个求和表达式(即17+38),模型预测结果(即55)。这里有趣的部分是,该模型将输入视为一个序列*,这意味着它知道当你键入一个序列11717+17+317+38时,它会将其“翻译”到另一个序列55。你可以把它想象成把西班牙语Hola序列翻译成英语Hello。*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

莎士比亚文本生成

你开始像莎士比亚一样键入一首诗,模型会像莎士比亚一样继续它。至少它会尝试这样做😀。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

维基百科文本生成

你开始键入一篇维基文章,模型试图继续下去。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

未来计划

正如我上面提到的,的主要目的是更像一个学习的游乐场,而不是生产就绪模型。因此,主要计划是继续学习和试验深度学习挑战和方法。下一个有趣的挑战可能是:

  • 情绪检测
  • 风格转移
  • 语言翻译
  • 生成图像(即手写数字)
  • 等等。

另一个有趣的机会是调整现有的模型,使它们更有性能。我相信它可能会更好地理解如何克服过度拟合和欠拟合,以及如果模型只是停留在训练集和验证集的60%精度水平上,而不想再改进的话,该如何处理模型🤔。

不管怎样,我希望你能从资源库中找到一些对模型训练有用的见解,或者至少能从演示中获得一些乐趣!

快乐学习!🤖

Python、Pandas 和 Plotly 的交互式地图

原文:https://towardsdatascience.com/interactive-maps-with-python-pandas-and-plotly-following-bloggers-through-sydney-c24d6f30867e?source=collection_archive---------12-----------------------

跟随博主在悉尼的足迹

在这篇文章和其他几篇文章中,我将探索 Python 和 Plotly,把一些不同的看起来很棒的图表放在一起。Plotly.js 是一个基于 Javascript 的可视化库,由一家名为 Plotly 的公司构建,他们也为各种语言提供了包装器,包括一个名为… plotly 的 python 包装器。

尽管它们的命名模式不尽如人意,但它们确实构建了一个非常强大、但仍非常可定制的库,我很想探索它能做什么。

你可以跟随我使用的源代码和数据,从这个 GitLab 库

位置,位置,位置

经常看文章,像美食博客,或者旅游博客,想:这些地方到底在哪里

在去年的圣诞假期,我有机会和我的伴侣一起回到悉尼,她从未去过澳大利亚,更不用说悉尼了。我来自悉尼,我想帮助她看到悉尼的“最好”,并像我们许多人一样欣赏它。

所以我读了一些旅游博客,看看第一次来的游客喜欢悉尼的什么。我突然意识到这样做会让游客很容易搞不清东西在哪里,哪些景点值得一看。计划每一天的日程将是一件痛苦的事,因为永远不清楚一个地方与另一个地方相比有多远。

我的解决方案是绘制一张地图,心中有三个目标:

  • 第一,建立一个互动地图,包括每一个标记的位置。
  • 第二,地图会有不同的标记来表示位置的类型。无论它是一个地标,一个位置(像一个郊区),还是一个交通枢纽。
  • 第三,显示有多少博客提到了这个位置,这样我们就可以筛选出更“重要”的。

Plotly 有我定制的可视化库。我已经看到它包含了一个惊人的地图框集成,这是我以前没有尝试过的。所以我想我会一石二鸟。

在开始之前

我假设您熟悉 python。即使你相对较新,这个教程也不应该太难。

你需要用一个简单的pip install [PACKAGE_NAME]pandasplotly安装到你的虚拟环境中。

如果你没有地图框令牌,给他们设置一个——我们会需要它。他们提供了一个非常自由的帐户,有非常合理的访问限制。

我将密钥保存在一个文件中,并使用以下命令加载它:

with open('mapbox_tkn.txt', 'r') as f: 
    mapbox_key = f.read().strip()

地图很有趣

介绍

尽管使用了 NLP 工具,整理这些信息还是有点困难,因为人们坚持在博客上拼错名字,或者只是用不同的名字称呼事物。(‘海港大桥’还是‘悉尼港湾大桥’?维多利亚女王大厦还是 QVB?)

本教程侧重于情节,而不是刮,所以我会提供loc_data.csv(所有数据和脚本可在我的 repo 这里)。该文件包含我们要查看的所有独特位置的数据。每个博客的数据都包含在名为blog_file[N].csvdata_csvs子目录中。

将 csv 文件加载到数据帧中,并查看其内容:

loc_df = pd.read_csv('mapping_blogs/loc_data.csv', index_col=0) print(loc_df.head())

您将看到有五列:索引、位置、纬度、经度和类型。

它们是索引号、位置名称字符串、以小数表示的纬度和经度以及位置类型。

数据清理

第一次检查时,“类型”列看起来是绝对的。一列中的所有唯一值都可以通过loc_df.type.unique()进行整理。它显示的是['Area', nan, 'Food/Drinks', 'Transport', 'Lodging']。的确如此!我记得 NaN 值是那些我无法归类的值。先给它们起个名字,Misc为杂。

最简单的方法是使用 pandas 的.fillna方法和inplace参数。loc_df.type.fillna('Misc', inplace=True)将完成此操作,并填入任何 NaN 值。

我们的第一张地图

到这个阶段,我们实际上已经有足够的信息来设计一些东西了!通过 plotly 的魔力,我们只需要为我们的第一张地图添加以下代码行:

import plotly.express as px 
fig = px.scatter_mapbox(loc_df, lat="lat", lon="lon", color="type")
fig.update_layout(mapbox_style="open-street-map") 
fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们的第一张地图!

类似这样的东西应该已经在你的浏览器上(或者在你的 Jupyter 笔记本上)打开了。是不是很酷?仅仅用了三行代码就画出了这个。Plotly Express 可以更快地创建情节。地图是交互式的,因此可以通过单击图例来缩放、平移、查看标记和隔离每个地块。

我们在这里做的是将整个数据帧传递给.scatter_mapbox函数,并指定数据所在的列。然后我们使用update_layout指定open-street-map样式(本指南中的列出了可用的样式)。

如果您想知道我们是如何将之前加载的mapbox_key变量传递给 Plotly 的,答案是我们没有。使用open-street-map风格意味着不需要地图框键,开放街道地图是一个免费的合作项目。

现在我们知道了如何制作一个基本的地图,让我们进入杂草中,仔细观察数据,并添加一些附加功能。

严肃的映射

鼠标悬停

在玩地图的时候,你可能注意到了鼠标悬停工具提示。它们很棒,但不是特别有用。所以让我们解决这个问题。我们想看看这个地方的名字,不太在乎确切的坐标。让我们指定参数hover_name='location',而不是hover_data=['type']

我还认为彩色地图有点分散了叠加的注意力,所以我把地图框样式改成了light,现在我们需要提供地图框键。最后,当我对悉尼市区最感兴趣的时候,我认为地图一开始就太高了。因此,让我们通过指定zoom参数来更改默认的映射区域。代码和生成的地图如下:

fig = px.scatter_mapbox(loc_df, lat="lat", lon="lon", color="type", hover_name='location', hover_data=['type'], zoom=12) 
# Now using Mapbox 
fig.update_layout(mapbox_style="light", mapbox_accesstoken=mapbox_key) 
fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

鼠标悬停弹出窗口很棒,但是(还)不太能提供信息

好吧,这是一个巨大的进步。现在我们已经实现了三个目标中的两个。对于最后一个,我们将不得不编译位置的计数。所以,回到数据框架。

寻找最受欢迎的目的地

我想看看哪些目的地或地点最受博客作者的欢迎。因此,在本节中,我们将统计每个位置被包含的次数。

第一步是统计主列表中的哪些位置在每个博客中,并对结果数据帧进行排序:

data_dir = 'data_csvs' 
data_files = [i for i in os.listdir(data_dir) if i.endswith('.csv')] for csv_file in data_files: 
    with open(os.path.join(data_dir, csv_file), 'r') as f: 
        locs_txt = f.read() 
    temp_locs = locs_txt.split('\n') 
    locs_bool = [loc_in_list(i, temp_locs) for i in list(loc_df['location'])] 
    loc_df = loc_df.assign(**{csv_file: locs_bool}) loc_df = loc_df.assign(counts=loc_df[data_files].sum(axis=1))
loc_df.sort_values(by='counts', inplace=True, ascending=False)

loc_in_list函数是我写的用来比较位置名称和列表的东西,考虑了包括/省略单词‘the’和各种撇号/引号的各种组合。

def loc_in_list(loc, loc_list): loc_list = list(set([i.strip().lower() for i in loc_list if len(i.strip().lower()) > 0])) 
loc_list += ['the ' + i for i in loc_list if i[:4] != 'the '] 
loc_list += [i[4:] for i in loc_list if i[:4] == 'the '] for t_char in ["'", "-"]: 
    loc_list += [i.replace(t_char, "") for i in loc_list if t_char in i] 
    loc_list += [i.replace(t_char, " ") for i in loc_list if t_char in i] loc = loc.replace("'", "'") 
loc = loc.strip().lower() loc_in_list_bool = (loc in loc_list) or (loc.replace("'", "") in loc_list) return loc_in_list_boolprint(loc_df.head())

再次查看数据帧,看起来我们得到了一个按出现次数排序的数据帧。《海港大桥》在每个榜单上都出现了 6 个!

我们可以添加一个sizing参数(和max_size来控制符号大小),并再次绘制地图:

fig = px.scatter_mapbox( loc_df, lat="lat", lon="lon", color="type", size="counts", hover_name='location', hover_data=['type'], zoom=12, size_max=15) 
fig.update_layout(mapbox_style="light", mapbox_accesstoken=mapbox_key) 
fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重叠位置

你们当中眼尖的人可能已经注意到了这些重叠的位置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对于像这样的地方,我将查看重叠的位置,只查看计数较高的名称的位置。

我简单地遍历每一行,寻找距离小于阈值的行:

loc_df = loc_df.assign(dup_row=0) 
loc_thresh = 0.0001 for i in range(len(loc_df)): 
    src_ind = loc_df.iloc[i].name 
    for j in range(i+1, len(loc_df)): 
        tgt_ind = loc_df.iloc[j].name 
        lat_dist = loc_df.loc[src_ind]['lat'] - loc_df.loc[tgt_ind]['lat'] 
        lon_dist = loc_df.loc[src_ind]['lon'] - loc_df.loc[tgt_ind]['lon'] 
        tot_dist = (lat_dist ** 2 + lon_dist ** 2) ** 0.5 
        if tot_dist < loc_thresh: 
            print(f'Found duplicate item "{loc_df.loc[tgt_ind]["location"]}", index {tgt_ind}') 
            for csv_file in data_files: 
                if loc_df.loc[tgt_ind, csv_file]: 
                    loc_df.loc[src_ind, csv_file] = True 
                if loc_df.loc[tgt_ind, 'location'] not in loc_df.loc[src_ind, 'location']: 
                    loc_df.loc[src_ind, 'location'] = loc_df.loc[src_ind, 'location'] + ' | ' + loc_df.loc[tgt_ind, 'location'] 
                    loc_df.loc[tgt_ind, 'dup_row'] = 1 loc_df = loc_df[loc_df.dup_row == 0] 
loc_df = loc_df.assign(counts=loc_df[data_files].sum(axis=1))
loc_df.sort_values(by='counts', inplace=True, ascending=False)

现在可以绘制数据了!我还关闭了显示栏和禁用编辑,这是我在所有绘图中使用的。

fig = px.scatter_mapbox(loc_df, lat="lat", lon="lon", color="type", size="counts", hover_name='location', hover_data=['type'], zoom=12, size_max=15) 
fig.update_layout(mapbox_style="light", mapbox_accesstoken=mapbox_key) 
fig.show( config={ 'displayModeBar': False, 'editable': False, }, )

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

看那个——桥上的点已经被连接起来,名字彼此相加,计数增加了!

因此,我们有一个交互式的,可按类别过滤的工具提示!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这就完成了这篇关于在地图上绘制散点图的文章。希望你对此感兴趣。

如果你喜欢这个,比如说👋/在 twitter 上关注,或关注更新。

Jupyter 笔记本中的交互式数据透视表

原文:https://towardsdatascience.com/interactive-pivot-tables-in-jupyter-notebook-fc74bad8aa67?source=collection_archive---------11-----------------------

使用 PivotTable.js 创建交互式数据透视表

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由 PixabayMudassar Iqbal 提供

Python 在很短的时间内获得了普及,但在某些情况下,它与数据的交互还不够,这正是 excel 领先的地方。对于模型的开发,最初的步骤是数据理解和探索性数据分析(EDA)。

对于 EDA,你需要灵活处理数据的能力。在创建数据透视表的情况下,Python 在与数据交互方面有所欠缺。在创建数据透视表方面,Excel 处于领先地位,因为它提出了表格的交互式和动态开发。

在 pandas 中创建数据透视表是一个燃烧过程。数据透视表的结构需要提前决定,相应地,脚本需要开发。要在数据透视表中进行一些操作,需要再次更改代码并运行脚本。这是一个燃烧过程,以产生洞察力,从而继续进行模型构建。

**pd.pivot_table(df, 
               values='Survived',
               index=['Pclass'],
               columns=['Sex'],
               aggfunc='sum'
              )**

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

**pd.pivot_table(df, 
               values='Survived',
               index=['Pclass','Embarked'],
               columns=['Sex'],
               aggfunc='sum'
              )**

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

数据透视表用于在 EDA 过程中获得关于数据的见解,要在 pandas 中生成数据透视表,需要为每个表操作代码,这使它有点燃烧。

在这里,PivotTable.js 发挥了作用,它有助于创建交互式数据透视表。

数据透视表. js:

PivotTable.js 是一个开源的 Javascript 数据透视表(又名数据透视网格、数据透视图表、交叉选项卡)实现,具有拖放功能。

安装:

**pip install pivottablejs**

用法:

(作者代码)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图片由作者提供),泰坦尼克号数据集的初始交互界面

现在尝试生成与本文前面使用 pandas 开发的相同的数据透视表。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图片由作者提供),

特点:

  • PivotTable.js 提供了从下拉列表中选择聚合函数的权限。
  • 数据透视表和热图的不同表示。
  • 几种类型的图,包括条形图、堆积条形图、折线图、面积图、散点图、树状图等。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图片由作者提供)

使用结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(来源)

结论:

在工作流中包含 PivotTable.js 使我们能够轻松地生成关于数据的见解。这个库提供了从数据透视表实时生成几个图的特性,这使我们能够在数据争论期间加快工作速度。

你可以在这里找到 PivotTable.js 的 GitHub 库。

参考资料:

[1] PivotTable.js 示例:【https://pivottable.js.org/examples/ T2

感谢您的阅读

交互式 Power BI 定制视觉效果,带 R

原文:https://towardsdatascience.com/interactive-power-bi-custom-visuals-with-r-a6a4ac998710?source=collection_archive---------10-----------------------

使用 ggplot、plotly 和 Power BI CLI 实现交互式视觉效果

有时候,正确的权力 BI 视觉就是不存在。最近,在尝试创建项目管理数据的执行摘要时,我碰到了这堵墙。

这个想法是一个报告页面,它将成为用户的首页——在他们进入其他报告页面的细节之前的一个快速路标,并且可以很容易地转换成演示文稿中的幻灯片。精简甘特图的尝试都是混乱而笨拙的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2003 年 SARS 爆发的一个很好的例子,因果联系的信息可能是强大的,但项目管理数据经常会使计算机屏幕超载。引起严重急性呼吸综合征的新型冠状病毒的分子流行病学(The Lancet)

Power BI R 脚本可视化

经过一番深思熟虑(玩),一个基本的水平时间线似乎工作得很好。它将关注项目里程碑,使用颜色来描述项目状态,并尽最大努力使项目相关文本尽可能易读。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

R script 可视化,开发快速,可定制(有时令人恼火)

微软的 AppSource 中似乎没有现成的可视化工具可以做到这一点,所以转向了 R Script 可视化工具。有了一点 R 知识,这些可以快速开发,并允许使用无限定制的 ggplot 来得到你想要的样子(注意,其他 R 绘图包是可用的)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

事情是这样结束的。项目数据已经被英国首相取代,项目状态颜色现在告诉我们他们属于哪个政党。这在你下一次变焦测验中可能会很有用。代码在这里。感谢 Ben Alex Keen,他有一篇关于在 r 中构建这种时间线的精彩文章。

正如预期的那样,R 视觉进入了报告。从直接在 R 中访问 JSON 数据转移到处理来自 Power BI R Script Visual 的数据需要一些变量重命名和格式化。视觉系统的 Power BI 友好代码在这里

这些 R 图唯一缺少的是一点交互性。你可以使用 Power BI 的切片器和过滤器来限制数据进入,但你不能悬停在上面并获得工具提示,或者放大感兴趣的部分。

Plotly

多亏了 plotly 包,我们可以将我们的 ggplot 对象转换成一些 html,并至少增加一些交互性。

g = ggplotly(p, tooltip = 'text') %>%
  layout(legend = list(
    orientation = 'h',
    y = 1.1,
    x = 0.1
  ));

Plotly 也会托管这些图表,你可以从 r 内部把它们推上来。

Sys.setenv(plotly_username = 'xxx')
Sys.setenv(plotly_api_key = 'xxxxxxxxxxx')api_create(g)

[## 辉格党,保守党,保守党,贵族党,自由党,工党,辉格党,保守党,贵族党,自由党…

弗雷德·塔斯克的互动图表和数据“辉格党,保守党,保守党,贵族党,自由党,工党,辉格党,保守党…

chart-studio.plotly.com](https://chart-studio.plotly.com/~fred_tasker/7.embed)

工具提示

和许多其他的剧情特色一样,我们现在有了一个悬停工具提示。在这个相当紧凑的图表中提供更多信息非常有用。这是在 geom_text 调用中使用虚拟美学定义的,名为“text”(gg plot 忽略此美学)。

#Tooltip for plotly
prime_ministers[,text:=paste0(
  name, ', ',  party, '<br>'
  ,format(start_date,'%d %b %Y'),' to ',format(end_date,'%d %b %Y')
)]# Show project text
p <- p +  geom_text(aes(label = name,
                        **text=text**,x=decade
                         ,y = text_position,colour=party), 
                     size = 3, family = 'sans',show.legend = F, fontface='bold')

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在对 geom_text 的最终调用中,使用虚拟“文本”美学将自定义工具提示从 ggplot 传递到 plotly 对象

古怪的行为

关于使用 ggplotly 完成这项任务的快速补充说明。

geom_label: 在我们使用 ggplotly 从 ggploty 到 plotly 的转换中,geom_label 不受支持,因此每个文本标签后面的透明矩形已被替换为字体颜色。

传说的命名也有一些奇怪的行为,比如“辉格党”变成了“辉格党,1”等等。这是由于 ggplot 对象同时具有颜色比例(用于文本和点)和填充比例(未使用,因为没有 geom_label)。手动填充比例被删除,但如果需要填充比例,这将是令人讨厌的。唯一的解决方案似乎是手动调整 plotly 对象 json。

将 R 代码打包到 Power BI 自定义可视化中

最后一步是让这个 plotly 对象进入 Power BI。

我们不能把我们的 R 代码直接粘贴到 R 脚本中。ggplotly 函数输出一个 HTML 对象,Power BI 需要一个 R plot 对象。

事实证明,不需要太多的工作,我们就可以创建我们自己的自定义视觉效果来导入到 Power BI 中。这里有一个快速的步骤。

1 - 安装 node.js

2 -用 Powershell 安装 powerbi-visuals-tools 包

*npm install -g powerbi-visuals-tools*

3 -创建一个 rhtml 模板

pbiviz new fredTimelineVis -t rhtml

4 -查找该命令创建的文件夹和文件(这取决于您的 Powershell 的工作目录)。然后找到 script.r 文件,用您自己的代码替换 ggplot 代码

在我的电脑上,rhtml 文件输出到 C:/Users/Fred tasker/fredTimelineVis。剧本。r 有一个示例 ggplot 块和一个 ggplotly 行,我用上面的替换了它们。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

包装总理们。替换脚本的 ggplot / ggplotly 位。powerbi-visuals-tools 创建的 r 文件。

几个注意事项:

  • 确保在脚本的顶部有正确的库声明。记住 R 包需要存在于 Power BI online 中,如果你打算在那里使用它的话
  • 来自 Power BI 的数据在 r 中被称为 Values 对象。

这是的剧本。本例中使用的 R 文件。

5 - 向 pbiviz.json 添加作者、描述和支持 URL

这很重要,因为如果不这样做,包编译将会失败。pbviz.json 将与您的脚本在同一个目录中。r 文件。

...
"description":***"Horizontal timeline visual build using ggplot and plotly in R"***,
"supportUrl":***"***[**https://medium.com/@fredtasker/interactive-power-bi-custom-visuals-with-r-a6a4ac998710**](https://medium.com/@fredtasker/interactive-power-bi-custom-visuals-with-r-a6a4ac998710)***"***,
"gitHubUrl":**"**[**https://github.com/fredwise/PM_timeline**](https://github.com/fredwise/PM_timeline)**"**},
...
"author":{"name":***"Fred Tasker"*,**"email":***"xxxx.com"***}
...

6——回到 PowerShell,导航到您的 script.r 目录并打包,准备好供 Power BI 使用。

就我而言:

cd C:\Users\FredTasker\fred_timeline_vispbiviz package

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

成功!

如果你遇到问题,这里有 R HTML 的微软帮助页面。

导入到 Power BI

既然定制的可视化已经打包,我们只需要将它导入到 Power BI 中,并将我们的数据字段放到可视化中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从编译包的 dist 目录中导入 pbiz vis 文件

这一切都非常令人兴奋。在 Power BI 中构建交互式自定义视觉效果的快速方法。

看看 Power BI 服务上的结果仪表板,您会看到 Power BI 的发布到 Web 目前不支持静态 R visual。要查看 PBIX 文件中的静态图和这里提到的所有其他脚本,请访问 GitHub。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们做的不仅仅是首相!随时联系我们聊天https://www.wisetechltd.com/

Jupyter 笔记本中的交互式报告

原文:https://towardsdatascience.com/interactive-reporting-in-jupyter-notebook-92a4fa90c09a?source=collection_archive---------3-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从新的角度看《纽约时报》的报道

Jupyter 笔记本是数据科学家箭囊中的重要一箭。这个开源应用程序是灵活,最重要的是交互。这是一个基本数据科学任务所需的工具,如数据清理、构建可视化、创建机器学习模型等。您可以在这里编写 Python 或 R 代码(取决于您使用的内核),将代码执行的结果保存在单元格中,并与其他人共享。

我无法想象没有 Jupyter 笔记本的工作。它们可以共享,设置快速,使用简单,即使您刚刚开始进入数据分析领域或学习 Python。

用 Python 分析数据

如果您经常使用 Python 处理数据,您可能会经常看到以汇总形式出现的数据。在 Python 中,你可以使用 pandas 库中的内置函数分组透视你的数据

一种经典的旋转方式是使用古老的pivot _ table方法。至于大多数 Python 方法,其语法简单易懂。

然而,数据透视表布局的逻辑越复杂,编写代码所需的时间就越多。此外,由此产生的透视表始终是静态的而不是交互式的。每次需要在透视网格上排列数据以便从不同的角度查看时,都需要重写代码。是的,这可能不涉及太多的变化,但是相反,你可以花时间关注你的数据,并对其有更好的理解。

今天,我将向您展示另一种在 Jupyter 笔记本中透视数据的方法**。掌握这种方法后,您将很快轻松地生成交互式报告。**

如何使 Python 中的透视数据具有交互性

我将要展示的方法最棒的一点是,您可以将生成的带有交互式数据可视化组件的笔记本保存到 HTML 中,并将其发送给您的朋友和队友。他们可以在浏览器中打开它,玩数据透视表和数据透视图,获得他们个人的见解,保存他们配置的报告并重新发送给您。这可能会使整个数据分析体验更有成效

我们将在 JupyterLab 工作,因为在那里运行笔记本电脑非常舒适。JupyterLab 只是 Jupyter 笔记本的一个用户界面。你在古典笔记本中使用的所有东西都在这里:笔记本、文件浏览器。但是 JupyterLab 提供了更多的扩展功能:你可以安装扩展,展开和折叠单元格,拖放它们——这是 Jupyter 可能缺少的功能。此外,文本编辑器提供了制表符自动完成功能。

在 JupyterLab 中构建报表

所以,运行你的 JupyterLab,让我们开始吧!

首先,让我们导入我们需要的 Python 库。其中包括 pandas、json 和 IPython 的显示模块。所有这些库都是 Anaconda 发行版附带的,但是如果您不使用它,您可能需要在全局范围内或者在您的虚拟环境中安装这些库。

  • pandas 是用 Python 处理数据结构的必备库。
  • IPython 是 Python 中用于交互式并行计算的 API。 display 是它的模块,为 IPython 中的显示工具呈现 API。
  • json 库提供了 json 编码和解码的 API。如果你曾经使用过“marshal”或“pickle”模块,你应该对它的 API 很熟悉。

对于数据可视化,我们将使用 Flexmonster 数据透视表&图表 ,这是一个 JavaScript 库。

数据呢?出于演示的目的,我选择了一个来自 T21 Kaggle 的‘牛油果价格’数据集。它是轻量级的,包含合理数量的字段。相反,你可以选择任何你喜欢的数据集。

加载你的数据。使用 pandas,将 CSV 数据读入 dataframe。删除列“未命名:0”—读取 CSV 文件时经常出现的索引列。

调用 dataframe 上的to_json()方法,将其转换为 JSON 字符串,并保存到json_data变量中。

'orient' '参数定义了预期的 JSON 字符串格式。这里我们将其设置为“记录”值。该值将对象转换为类似列表的结构,即[{column - > value},…,{column - > value}]。这正是 Flexmonster 使用的格式。

现在让我们使用嵌套字典创建 Flexmonster 的实例。在这里,我们指定所有必要的初始化参数,并将解码后的数据传递给组件。对于解码 JSON,我们使用json.loads()的方法。

如你所见,我们一次设置切片选项格式。我们可以跳过这一步,然后数据透视表将显示默认切片,但我认为最好从一开始就学习如何做。

现在我们使用json.dumps()将 Python 对象编码成 JSON :

下一步是定义一个函数**,该函数将数据透视表**直接呈现在单元格中。为此,我们将定义一个多行字符串,并将其传递给导入的 HTML 函数:

最后,我们可以将 JSON 传递给这个渲染函数,并调用它:

瞧吧!你看到的是页面上的交互透视表。数据集已准备就绪:您可以重新排列网格上的字段,更改聚合,设置筛选和排序,设置值的格式,并做一切事情来创建您独特的报表。此外,如果您错过了记录在数据框中显示的方式,您可以从透视模式切换到平面视图。通过这种方式,您将看到来自数据源的数据,但具有交互功能。

下面是数据透视表现在的样子:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此外,您可以尝试应用条件格式来关注最重要的值。

在 Jupyter 笔记本中制作仪表板

现在,让我们通过向笔记本添加更多元素来使我们的逻辑变得复杂一点。两个数据透视图将使我们的数据可视化更加通用。为此,我们将定义一个额外的函数,该函数接受多个 JSON 组件并将它们呈现在页面上。其逻辑与单个数据透视表相同。数据透视表组件的定义方式与数据透视表相同。

在数据透视表的报表切片中,我们可以设置 Top X filters ,它可以方便地限制数据透视表上显示的类别数量。这使得它们更加整洁和紧凑。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

万岁!现在你可以在你的 Jupyter 笔记本中享受一个交互式仪表盘!不要犹豫,生成一份关于你的数据分析报告,并与他人分享。

最后的想法

今天我们尝试了一种在 Jupyter 笔记本中操作和呈现数据的新方法,使用 Python 和 JavaScript 数据可视化库。如您所见,设置一切并不需要太多的代码和时间。

一旦你这样做了,你就可以在你已经习惯的工作空间中探索你的数据。

这种方法使您不必在每次需要以不同的方式查看数据时重写代码。与 Jupyter 笔记本的中心思想 齐头并进,使数据可视化和数据分析互动灵活。

你可以在 GitHub 上找到完整代码。👈

高级选项

为了满足您对仪表板中还可以增强哪些功能的好奇心,这里有一个主要功能的简要列表,您可以使用这些功能来改善您的报告:

  • 映射

很多时候,真实世界的数据既不整洁也不一致。字段可以用不同的大小写来命名,它们也可能包含不明显的缩写,等等。为了美化它,我们可以使用 映射——设置应用于数据源的视图配置的报表属性。其格式化功能带来的另一个好处是数据类型的显式设置。通过设置类型,您可以告诉组件按照您想要的方式处理字段,例如字符串、数字或日期。这将影响对字段层次结构可用的聚合的选择。

在 GitHub 示例中,您可以看到如何定义一个映射对象并将其设置到数据透视表。

  • 出口

数据透视表带有 JavaScript API 方法和事件。您可以使用[exportTo](https://www.flexmonster.com/api/exportto/?r=td2)方法在本地配置不同格式的保存报告或将报告保存到远程目的地,如服务器。

  • 计算值

要在报告中引入新的公式,您可以添加计算值

与 Plotly 交互的三元图

原文:https://towardsdatascience.com/interactive-ternary-plots-with-plotly-2af21e22e716?source=collection_archive---------43-----------------------

你知道多少种不同的颜色?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

里卡多·雷森德在 Unsplash 上拍摄的照片

Plotly Python (plotly.py)是基于 plotly javascript (plotly.js)构建的开源绘图库。我喜欢 plotly.py 的一点是,它提供了一个高级 API ( plotly express )和一个低级 API ( graph objects )来创建可视化。使用 plotly express,我们可以用很少的代码行创建一个动态的、信息丰富的图。另一方面,我们需要用图形对象编写更多的代码,但是对我们创建的内容有更多的控制权。

在本帖中,我们将使用 plotly express 创建三元图。三元图通过将数据点相应地放置在三角形中来描绘三个变量的比率。它给了我们一个观察值是否倾向于某个变量的概览。三角形的每个角都标有一个变量。因此,我们只能比较三个变量。

假设我们正在对三个汽车品牌进行大量测量。每个品牌在每个测量上都有一个等级。通过在三元图上绘制这些测量值,我们可以了解一个品牌是否比其他品牌更占优势。例如,一个品牌在安全相关措施方面可能很突出。

我找不到以多种不同方式比较汽车品牌的数据集,但我找到了一个有趣的数据集,它是一个具有 RGB 颜色值的数据集。每种颜色都由红、绿、蓝(RGB)组合而成。颜色根据这三种主色的比例而变化。

在 data.world 网站上的这里可以获得的数据集包括 746 种不同颜色的 RGB 值。我甚至不知道这些颜色是否存在。还有一些怪异的颜色名称,如“茜素深红”、“芭莎”、“木炭”。我们将使用三元图来了解这一大系列颜色的 RGB 成分。

让我们首先将数据集读入一个熊猫数据帧并查看它。

import numpy as np
import pandas as pddf = pd.read_csv("/content/colorhexa_com.csv")
print(df.shape)
df.head()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在,我只对颜色和 RGB 组件的名称感兴趣,所以我将只获取那些列并更改颜色的名称。

new_cols = {'Red (8 bit)':'Red', 'Green (8 bit)':'Green', 
'Blue (8 bit)':'Blue'}df.rename(columns=new_cols, inplace=True)
df = df[['Name', 'Red', 'Green', 'Blue']]df.head()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我还想为每个颜色名称添加一个标记,指示贡献最大的 RGB 颜色。我将使用嵌套循环,但也可以尝试自己的方式。

winners = []for i in range(len(df)):
  if df.iloc[i,1] > df.iloc[i,2] and df.iloc[i,1] > df.iloc[i,3]:
    winner = "Red"
  elif df.iloc[i,2] > df.iloc[i,3]:
    winner = "Green"
  else:
    winner = "Blue"
  winners.append(winner)df['winner'] = winners
df.head()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们首先创建一个简单的三元图,根据 RGB 分量值定位每种颜色。我们将使用 plotly express,它是 plotly python 的高级 API。

import plotly.express as pxfig = px.scatter_ternary(
df, a="Red", b="Green", c="Blue", hover_name="Name"
)fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

大多数颜色都在三角形的中心附近,但有一点倾向于红色。我们也有位于三角形边缘的颜色。这些颜色只包括三种 RGB 颜色中的两种。毫不奇怪,角上的颜色只包含一种成分。例如,海军蓝只有蓝色成分。

我们传递“名称”列 hover_name 参数,该参数允许在悬停在某个点上时查看颜色的名称。

我们可以通过使用颜色参数来使绘图看起来更好。有个头衔也不错。

fig = px.scatter_ternary(df, a="Red", b="Green", c="Blue", 
hover_name="Name",
color="winner", 
color_discrete_map = {"Blue": "blue", "Green": "green", "Red":"red"},
title="RGB Distribution of Colors")fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

代表数据点(数据帧中的行)的点具有相同的大小,但 plotly 也允许为点的大小增加信息能力。让我们使用一个内置数据集来展示如何使用大小参数。

df_election = px.data.election()
print(df_election.shape)
df_election.head()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个选举数据集包含 58 个地区的三位候选人获得的票数。“总数”一栏包括该区的总票数,我认为与该区的人口成比例。我们可以将“total”列传递给 size 参数,并看到某个特定的候选人赢得了更多的大选区。

fig = px.scatter_ternary(df_election, a="Joly", b="Coderre", c="Bergeron",
hover_name="district",
color="winner", size="total", size_max=15,
title="District Election Results")fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

“Coderre”遥遥领先。“乔利”赢得的选区面积相对较小。我意识到的一件有趣的事情是,Coderre 赢得的选区更倾向于乔利,而不是 Bergeron。当我们停留在数据点上时,我们看到乔利通常是第二个候选人。因此,乔利可能会得到更多的选票,尽管乔利赢得的选区似乎更小。让我们通过计算每位候选人的总票数来核实一下。

print("Total number of votes for Coderre is {}".format(df_election.Coderre.sum()))print("Total number of votes for Bergeron is {}".format(df_election.Bergeron.sum()))print("Total number of votes for Joly is {}".format(df_election.Joly.sum()))

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

是啊!乔利的票数比贝杰龙多。

除了大小,我们还可以使用数据点的形状来传递信息。例如,“结果”列有两个值:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们可以将该列作为参数传递给符号参数。

fig = px.scatter_ternary(df_election, a="Joly", b="Coderre", c="Bergeron",
hover_name="district",
color="winner", size="total", size_max=15,
title="District Election Results", 
symbol="result")fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们知道某个候选人是以多数还是多数获胜。

我们已经用 plotly 覆盖了三元图。当然,这只是这个神奇的图书馆的一小部分功能。我们可以使用 plotly 动态创建许多其他绘图类型。它的语法也很容易理解。在接下来的帖子中,我会尝试涵盖更复杂的情节。你也可以查看 plotly 文档,我认为它有很多不同的例子。就像任何其他主题一样,熟悉 plotly 的最好方法就是实践。因此,我建议创造大量的情节来提高你的技能。

感谢您的阅读。如果您有任何反馈,请告诉我。

任何二元分类器结果的交互式可视化——用 5 行 Python 代码

原文:https://towardsdatascience.com/interactive-visualization-of-binary-classification-in-5-lines-of-python-9c1f627ded8?source=collection_archive---------31-----------------------

用“混淆 _viz”制作一个有影响力的模型结果图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

[图片由作者提供]

TL;博士

给匆匆忙忙的人的 5 行代码:

片段:混淆的用法

简介

二进制分类是机器学习中最常见的任务。它也很通用,因为 n 类问题和回归问题都可以简化为二元情况(当然会丢失一些信息)。

假设您已经收集了数据,清理了数据并安装了分类器。可惜,工作结束的时候,工作才刚刚开始!事实上,你仍然需要处理很多东西:真阳性、假阳性、假阴性、准确度、精确度、召回率……而且,所有这些都要乘以可能的阈值数(很容易有数千个)。

这就是为什么我开始寻找一个单一的(可能是图形化的和交互式的)表示,包含关于二进制分类任务的所有相关信息。鉴于这种可视化是建立在混淆矩阵之上的,我把它叫做“混淆 _viz ”。

来自混乱的知识(矩阵)

用来评估分类优劣的最初级工具(可能是机器学习模型,也可能是确定性规则)叫做混淆矩阵。这是一个表格,显示了每个班级有多少人被正确或错误地分类。

例如,让我们对一些模拟数据做一个简单的分类问题:

片段:生成数据、拟合分类器和打印混淆矩阵。

这是混淆矩阵:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二元分类器的混淆矩阵。[图片由作者提供]

数字是“原始的”这一事实构成了混淆矩阵的优点和缺点。

  • 优势:因为——与更具体的度量标准(如精确度、召回率或提升率)相比——混淆矩阵的含义是任何人都能立即理解的,包括非技术利益相关者
  • 缺点:因为原始数字不那么容易解读

因此,可以采用几个选项来使混淆矩阵更具“表现力”。例如:

  1. 热图
  2. 按列规范化
  3. 按行规范化
  4. 总计标准化

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

混淆矩阵“操作”的一些简单例子。[图片由作者提供]

混淆矩阵的图形可视化

这些操作给出了模特表演的多面肖像。然而,问题是人类并不擅长存储大量的信息。这就是为什么我开始想知道如何得到一个有效的混乱矩阵的可视化,它可以“一目了然”地显示所有相关信息。

这种可视化的要求是:

  • 情节应该是二维的(当然),
  • 涉及真阳性、假阳性、真阴性和假阴性的绘图区域应该与它们的数量成比例。

经过一些尝试后,我开始定义一个对我的目标来说足够直观的可视化。根据它,上面的混淆矩阵应该是这样的:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

混乱矩阵的静态图。[图片由作者提供]

带有粉红色边框的正方形代表阳性总数(即真阳性+假阴性)。这就像仪表板的靶心:我们希望我们的模型能够在这里投出大部分飞镖。

带黑边的正方形准确地代表了模型的猜测:这些都是被标记为阳性的个体。因此,粉边方块和黑边方块之间的公共区域用绿色填充,代表真正的阳性。剩下的部分是由假阳性构成的,并被涂上红色。

一个问题,多个矩阵

但是事情要比这复杂一些。事实上,对于每个模型,我们并不只有一个混淆矩阵。其实我们有很多。这怎么可能呢?对于非技术涉众来说,这通常难以理解。

这完全取决于“概率阈值”这个概念。大多数分类算法的输出实际上不是每个个体的 0/1,而是一个介于 0 和 1 之间的数字,表示该个体成为阳性的可能性,我们称之为“概率”。

因此,最终的分类 0/1 不是自动的,而是从(商业)决策中派生出来的。决策在于确定概率阈值,高于该阈值的个体应被分类为 1。

让我们更清楚地说明这一点:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一个模型输出,许多混淆矩阵。[图片由作者提供]

**每一个可能的决策都与一个 0/1 的数组相关联。反过来,每个数组与不同的混淆矩阵相关联。**这就是为什么,对于一个单一的模型,我们可能有数千(甚至数百万!)的可能混淆矩阵:每个阈值一个。

因此,问题变成:我们能在一个单独的图中表示不同的混淆矩阵(或者至少它们的一个代表子集)吗?

通过使用 Plotly ,它可以通过一个滑块来完成:这就是交互图帮助我们的地方。这个想法是,当我们从左向右移动滑块时,相关的阈值增加,因此选择变得越来越“限制性”,也就是说,我们归类为阳性的观察数量越来越少。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

许多混淆矩阵的交互图(每个概率阈值一个)。注意:由于从 html 到 gif 的转换,一些颜色可能会改变。[图片由作者提供]

滑块指示什么是当前概率阈值(“P ≥阈值”)。

如果你留意精度和回忆,你会注意到它们有相反的行为:当滑块向右移动时,回忆减少,而精度提高。这很有意义:如果你只选择最危险的个体,你可能会更精确,但代价是识别出更小部分的阳性(即更小的回忆)。

一般来说,图形的交互特性允许您选择一个适合您的特定用例的阈值。

我可以用我自己的数据做这个吗?

其实很简单!

你所要做的就是在你的环境中 pip-安装包混淆 _ 即

片段:安装混淆 _viz。

这个包包含一个名为 ConfusionViz 的类,所以您只需在 Python 代码中导入它。下一个片段展示了如何使用 ConfusionViz:在笔记本模式下显示交互情节(命令*)。show()* )或将其导出为 html 文件(命令*)。to_html()* ),然后可以用任何浏览器打开。

片段:混淆的用法。

你只需要把 y_testprobas_test 换成你自己的数据,游戏就做好了!

感谢您的阅读!我希望这篇文章对你有用。

我感谢反馈和建设性的批评。如果你想谈论这篇文章或其他相关话题,你可以发短信给我我的 Linkedin 联系人

使用 Plotly 进行交互式可视化

原文:https://towardsdatascience.com/interactive-visualizations-with-plotly-ea3f8feb87d1?source=collection_archive---------43-----------------------

plotly.py 库简介

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由金莎·艾利斯Unsplash 上拍摄

Plotly Python (plotly.py)是一个基于 plotly javascript (plotly.js)构建的开源绘图库。它允许创建可以在 Jupyter 笔记本上显示的交互式可视化。可以使用 pip 或 conda 进行安装:

$ pip install plotly==4.8.0$ conda install -c plotly plotly=4.8.0

使用 plotly.py 创建图形基本上有两种方法:

  • 数字作为字典
  • 作为图形对象的图形

在本帖中,我们将介绍如何使用图形对象创建许多不同种类的绘图。安装后,我们可以导入图形对象:

import plotly.graph_objects as go

创建图形对象图形有不同的方法。一种方法是使用图形对象的图形构造器。让我们创建一个简单的散点图:

import numpy as npa=np.random.random(10)
b=np.random.randint(10, size=10)fig = go.Figure(data=go.Scatter(x=a, y=b, mode='markers'))fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们还可以使用 add_trace 在同一个图形上添加额外的轨迹:

fig = go.Figure(data=go.Scatter(x=np.arange(9), y=10*np.random.randn(10),mode='markers', name='markers'))fig.add_trace(go.Scatter(x=np.arange(9), y=np.random.randn(10),
mode='lines+markers', name='lines+markers'))fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

另一种创建图形的方法是 plotly express ,它是一个高级 API,用于生成图形对象图形。我们可以用下面的代码行导入它:

import plotly.express as px

让我们创建一个示例数据帧:

import pandas as pddf = pd.DataFrame({
'col_a':np.random.random(10)*5,
'col_b':np.random.randint(10, size=10),
'col_c':[4.5, 4.7, 4.8, 3.4, 3.7, 4., 5.1, 3.2, 4.4, 3.3],
'col_d':['a','a','b','a','a','b','b','c','c','c']
})df

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们可以在一个散点图上了解整个数据框架:

fig = px.scatter(df, x="col_a", y="col_b", color="col_d", size='col_c')fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

x 轴代表“col_a”,y 轴代表“col_b”。标记的大小给出了关于“col_c”的概念,而标记的颜色表示“col_d”中的信息。因此,一个散点图能够告诉我们关于数据集的很多信息。每个点(或标记)代表数据帧中的一行,我们可以将鼠标悬停在各个数据点上,以查看所有列的值。这是一个简单随机的数据集。当我们处理真实数据集时,图形交互可视化的特性变得更加有用。

Plotly 包含著名的虹膜数据集,我们可以通过一行代码访问它:

df_iris = px.data.iris()fig = px.scatter(
df_iris, x="sepal_width", y="sepal_length", color="species",
size='petal_length', hover_data=['petal_width']
)fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上面的散点图告诉我们不同的物种是如何聚集在一起的,以及物种之间的差异。

也有可能在单独的支线剧情中表现不同的物种。我们需要做的就是添加 facet_colfacet_row 参数。顾名思义,facet_col 将支线剧情创建为列,而 facet_row 将支线剧情创建为行。

fig = px.scatter(
df_iris, x="sepal_width", y="sepal_length", color="species", facet_col="species", title="Species Subplots"
)fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

fig = px.scatter(
df_iris, x="sepal_width", y="sepal_length", color="species", facet_row="species", title="Species Subplots"
)fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在一个图形被渲染之后,我们可以使用 update_layout() 来更新布局。请考虑下图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们可以用下面的代码更新标题的字体大小:

fig.update_layout(title_text="Sample Dataset - Updated",
                  title_font_size=20)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

另一种创建支线剧情的方法是使用make _ 支线剧情:

from plotly.subplots import make_subplotsfig = make_subplots(rows=1, cols=2)fig.add_scatter(y=np.random.random(10), mode="markers",
                marker=dict(size=15, color="Blue"),
                name="A", row=1, col=1)fig.add_bar(y=np.random.randint(10, size=10),
            marker=dict(color="LightBlue"),
            name="B", row=1, col=2)fig.show()

我们使用参数指定了支线剧情的数量和它们的位置。然后,我们添加定义地块并指定位置。我们还可以通过将字典传递给标记参数来指定标记的大小和颜色。用上面的代码段生成的图形是:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们已经介绍了 plotly.py 库的一些基本组件。当然,这只是用 plotly 可以做到的一点点。我们可以使用 plotly 动态创建许多其他绘图类型。它的语法也很容易理解。在接下来的帖子中,我会尝试涵盖更复杂的情节。你也可以查看 plotly 文档,我认为它有很多不同的例子。就像任何其他主题一样,熟悉 plotly 的最好方法就是实践。因此,我建议创造大量的情节来提高你的技能。

感谢您的阅读。如果您有任何反馈,请告诉我。

互动:可视化咖啡因和就寝时间

原文:https://towardsdatascience.com/interactive-visualizing-caffeine-bedtime-4c256d562193?source=collection_archive---------6-----------------------

咖啡因会在你体内停留多久?早上喝咖啡影响晚上睡眠吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

大脑喜欢咖啡。(图片来自作者+ VectorStock )

我睡眠有问题。医生经常警告我,咖啡因可能是罪魁祸首。有一次,2015 年,我甚至还听了他们的话。我戒了大约 3 周的咖啡。后来我意识到,不喝咖啡的时候,我是一个非常令人讨厌的人。所以我又回到了酱汁。

我没有完全戒掉咖啡,而是定下了一个折中的规则:
下午 3 点以后不喝咖啡

采用这个规则并没有明显地帮助我的睡眠,但至少它给了我一个对医生有效的反驳。更好的是:我不需要改变任何行为来适应这个规则。

大多数日子,早上晚些时候,我会走到咖啡店,点一杯我能拿的最大杯的冰咖啡。然后,我会走回我的办公桌,等待液体“焦点”发挥作用。偶尔,当会议礼仪要求时,我也会喝一杯下午茶。

这个惯例完全符合下午 3 点的规则。

Covid…

然后 Covid 发生了。显然 Covid 是可怕的,但对我来说,一线希望是打乱了我的咖啡日常生活。

当纽约关闭时,我的鱼缸大小的咖啡就不容易买到了。如果没有步行去咖啡店或与同谋喝咖啡的习惯,吸引力就丧失了。所以我换成了茶,在早上早些时候。

进入疫情大约一个月后,我注意到我睡得更好了!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这又持续了几个星期,直到我们发现了终极懒人咖啡:威格曼的辉煌预制壶。

突然我又睡不着了。肯定不是因为咖啡吧?下午 3 点的规则有问题吗?

咖啡因会一直伴随着你。

我明白,至少在理智上,咖啡因的半衰期意味着一天中的晚些时候,一些咖啡因可能仍会在我的大脑中浮动,但直到 Covid 中断之前,我从未多想它。

当不眠之夜回来时,我开始怀疑。我在 Observable 上画了一个粗略的半衰期模型,调整了参数,加入了我平时喝咖啡的习惯……很明显,我的下午 3 点规则完全是垃圾。

显然,喝一杯热浴缸大小的咖啡感觉很棒,至少现在是这样。但是早上的咖啡因仍然会干扰你晚上的睡眠。直到我亲眼看到它的表演,它才真正被理解。

为了让咖啡因的动力学更深入人心(这样你就不必等到下一个疫情来学习我学到的课程),我制作了一个模拟器,模拟咖啡因在你体内停留多长时间,以及它如何影响预计的“就寝时间”

自己试试这里:咖啡因模拟器

让我们看几个熟悉的场景…

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上午 10 点喝下 20 盎司咖啡后,全天的咖啡因水平。在这种情况下,到凌晨 2 点,咖啡因含量才会降到 50 毫克以下。(这里可以试试这个。)

上面的图表近似于我以前喝咖啡的习惯。上午 10 点,我会喝一大杯 20 盎司的冰咖啡。这在接下来的一个小时里会大大增加咖啡因的含量,并持续一整天(直到晚上)。相比之下,20 盎司相当于一杯星巴克“大杯”,其中含有高达 410 毫克的咖啡因。(顺便说一句,这超过了美国食品和药物管理局推荐的每日限量 10 毫克。)

表情符号的蓝线表示咖啡因含量低于 50 毫克。这是一个宽松的估计,当你的身体已经“清除”了足够的物质,可以不受干扰地睡觉。(更多关于这个 50 毫克的“睡眠阈值”在下面。)

我从未充分体会到的是:半衰期为 5 小时,在10am (400mg caffeine, assuming Starbucks equivalent)喝 20 盎司的咖啡就像在3pm (200mg caffeine)喝 10 盎司的咖啡。这就像在8pm (100mg caffeine)喝一杯 5oz 的咖啡。也就是说,你的身体需要 5 个小时来过滤掉最初一半的咖啡因,然后再用 5 个小时来清除下一个季度,再用 5 个小时来清除下一个八分之一,以此类推。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在早上 8 点、10 点和 12 点喝下 3 杯 8 盎司的咖啡后,全天的咖啡因水平。在这种情况下,到凌晨 3 点,咖啡因含量才会降到 50 毫克以下。(这里可以试试。)

这不一定是超大号杯子的问题。在上面的场景中,不是一次喝完所有的咖啡,而是在上午 8 点、10 点和中午将大致相同量的咖啡因分散到 3 个较小的 8 盎司的杯子中。结果是一样的,因为每杯咖啡都增加了你体内已经存在的咖啡因。在上面的场景中,咖啡因(400 毫克)的峰值出现在下午 1 点左右,所以在你清除足够的咖啡因进入良好睡眠之前,已经是凌晨 3 点了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在早上 8 点、10 点和下午 4 点喝下 3 杯 8 盎司的咖啡后,全天的咖啡因水平。在这种情况下,到早上 5 点,咖啡因水平才降到 50 毫克以下。(你可以试试这里。)

然后是死亡之吻:下午茶。假设你早上很自律,限制自己在早上 8 点和 10 点只喝两杯。但是你会在下午 4 点和一个朋友一起喝咖啡。即使是一小杯咖啡,你现在也要看到凌晨 5 点,直到咖啡因含量回落到 50 毫克以下。

咖啡因的最佳含量是多少?

为了赢得咖啡因游戏,你想让你的水平在白天“足够高”,然后在睡觉前“足够低”。这取决于几个因素:

  • 什么叫“够高?”你到底需要多少咖啡因?
  • 你的半衰期是多少?你代谢咖啡因的速度有多快?
  • 什么叫“够低?”你对咖啡因的睡眠阈值是多少?

250 毫克的好消息。

一项研究( src )比较了服用 250 毫克和 500 毫克咖啡因的效果。据作者称:

“较低剂量的咖啡因比较高剂量产生更有利的主观效果(兴奋、平静、愉快),而 500 毫克剂量后的不愉快效果(紧张、紧张、焦虑、兴奋、易怒、恶心、心悸、不安)超过了 250 毫克剂量。与安慰剂相比,较低剂量的咖啡因提高了数字符号替代测试和敲击速度测试的表现;高剂量的咖啡因产生的效果不如低剂量的好。”

因此,250 毫克似乎是一个很好的时间,500 毫克不太多。

如何达到 250 毫克?下面是一些通用的经验法则。(选择这些例子是因为在我的脑海中,我仍然是 14 岁,试图整夜保持清醒来玩 Everquest)。

棘手的是:这些报道的数字并不十分可靠:

  • 例如,5 小时能量似乎特别含糊不清:“常规强度的 5 小时能量饮料含有大约 8 盎司顶级咖啡的咖啡因。”当你考虑到“顶级咖啡”中咖啡因的易变性时,这是令人担忧的…
  • 你可能会从星巴克更确定的答案(16 盎司= 310 毫克)中得到安慰,但你会失望的。2003 年,佛罗里达大学的一组研究人员连续 6 天去同一家星巴克,他们每次都点了同样的 16 盎司星巴克混合早餐,然后测量咖啡的咖啡因含量。在这 6 个样品中,咖啡因含量从 259 毫克到 564 毫克不等。所以这有点像赌博:一大杯混合早餐会带来“兴奋、平静、愉快”还是“烦躁、恶心、心悸”?
  • 这两家公司都比麦当劳好,麦当劳只会做出如下承诺:“我们目前不会报告我们咖啡中的咖啡因含量——但我们可以向你保证一杯明亮而平衡的咖啡。” ( src )

所以,如果你想要更稳定的咖啡因剂量,为什么不从一罐冰镇的 Surge 开始你的一天呢?

代谢咖啡因。

如前所述,你的身体代谢咖啡因的半衰期是一个时间表。虽然咖啡因的典型半衰期是 5 个小时,但这可能因人而异,在 1.5 到 9.5 小时之间。

为了更好地感受这种分布,我们将查看两项不同研究的半衰期测量结果( srcsrc ),探索咖啡因对 41 人的影响,这些人被分为吸烟者、非吸烟者和服用口服避孕药的人群。在这两项研究中,研究人员给受试者一剂咖啡因,做一些科学研究来确定一段时间后还有多少咖啡因,然后报告半衰期。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

srcsrc 测得的半衰期直方图。

41 名参与者的平均半衰期约为 5.5 小时。正如你在上面看到的,测量的半衰期在实验组内部和实验组之间是不同的。在两组之间,我们可以看到吸烟者代谢咖啡因最快(2 至 6 小时),而采取避孕措施的人代谢最慢(7 至 9 小时)。

如果你既不吸烟也不避孕(或者,如果你是吸烟者和避孕者),以上并没有给你太多的指导。但如果你怀疑自己对咖啡因特别敏感,你可能会代谢得更慢,这意味着半衰期更长(反之亦然)。

咖啡因的睡眠阈值

许多研究(和讨厌的医生)表明咖啡因会对你的睡眠有害。但是,我们到底能承受多少,同时还能睡个好觉呢?我们需要保持的咖啡因阈值是多少?我们已经从 3 篇论文和 FDA 的一般建议中获得了一些不同的数据点,可以用来对这个数字进行三角测量。

第一项研究( src )让受试者在典型的就寝时间前 0、3 和 6 小时服用 400 毫克咖啡因,然后观察他们的睡眠。他们发现,即使在就寝前 6 小时,咖啡因也“相对于安慰剂对睡眠障碍有显著影响”例如,受试者需要两倍的时间才能入睡,每晚平均少睡 41 分钟。

  • 鉴于咖啡因的半衰期为 5 小时,睡前 6 小时摄入 400 毫克咖啡因意味着受试者在就寝时体内仍有约 217 毫克咖啡因。所以我们想在睡觉前体重至少低于 217 毫克。

第二项研究( src )让受试者在睡前 3 小时服用 100 毫克,然后在睡前 1 小时再服用 100 毫克。这个*“睡眠潜伏期延长,睡眠效率降低,睡眠持续时间减少。”*

  • 同样,假设咖啡因的半衰期为 5 小时,睡前 3 小时摄入 100 毫克咖啡因就意味着还剩 75 毫克。睡前 1 小时再摄入 100 毫克咖啡因是 94 毫克。所以在就寝时,这些受试者体内仍有 72 毫克+94 毫克= 166 毫克的咖啡因。所以我们想在 166mg 以下。

第三项研究( src )在就寝前 16 小时给受试者服用 200 毫克咖啡因*,而仍然报告*“睡眠效率和总睡眠时间明显减少”vs .安慰剂。

  • 假设半衰期为 5 小时,200 毫克咖啡因在 16 小时后还剩 24 毫克。因此,为了避免这项研究中提到的睡眠影响,我们希望我们体内剩余的咖啡因低于 24 毫克。

后一项研究大致符合 FDA 的指导方针( src )。"晚餐时喝杯咖啡可能会让你在就寝时保持清醒."在美国食品和药物管理局的奇妙世界里,“一杯咖啡”不是星巴克的庞然大物,它是一杯 8 盎司的咖啡,含有 90 毫克咖啡因。如果我们假设晚餐时间是下午 6 点,就寝时间是晚上 11 点,那么 5 小时后 90 毫克的咖啡在就寝时间仍有 49 毫克的咖啡因在你的体内。(因此模拟器的默认“睡眠阈值”参数为 50 毫克)。

你对咖啡因的耐受力可能会有所不同,但根据上述研究,我们可以看到,即使只有 24 毫克的咖啡因残留也会影响你的睡眠。

那么,什么对你最合适呢?

自己去发现吧!现在你知道了参数,你可以使用模拟器来尝试不同的咖啡摄入场景,看看这对你的预期就寝时间意味着什么。

自己试试这里:咖啡因模拟器

我是谁?不,不,你是谁?!

嗨!我是伊莱·霍德。我帮助客户设计和开发忙碌的人和他们杂乱的数据之间的有效接口。如果你是一名创始人、创客、讲故事者、非营利行善者或商业领袖,正在思考数据、设计和用户心理的交集,我很乐意联系并聆听你的故事。

你可以给我发电子邮件到 eli@3isapattern.com T21,或者在推特上关注我。

互动:可视化新冠肺炎测试的准确性

原文:https://towardsdatascience.com/interactive-visualizing-covid-19-test-accuracy-4a24b4e1ffbf?source=collection_archive---------23-----------------------

最常见的新冠肺炎测试有多准确?“准确”到底是什么意思?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图片鸣谢:作者+ ProPublica 可爱的 Wee People 项目)

不久前我和我爸爸聊天。他听说了一些关于新冠肺炎测试准确性的古怪事情:它们是如此不准确,以至于“你还不如抛硬币”

这听起来不对,但我意识到我自己对测试准确性的理解有点模糊。

因此,为了澄清,让我们了解一下新冠肺炎测试,它们是如何测量的,以及这对检测人群中的感染意味着什么。

在这里自己试试:新冠肺炎测试模拟器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1000 人

为了了解测试准确性的影响,我们将在一小部分人群中进行一些实验。以上是 1000 人。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1000 人,其中 2%有新冠肺炎(橙色)。

为了便于统计,我们假设 2%的人口患有新冠肺炎。这是这种疾病的“患病率”你可以看到上面这组中大约有 2%的人被感染了(橙色)。

(注:2%偏高。相比之下,北达科他州是“热点地区”,虽然我们不知道该州目前的实际流行情况,但在过去 10 天里,北达科他州的 762,062 名公民(或人口的 0.7%)有 5,793 例新病例。

为了了解最常见的新冠肺炎测试之间的准确性差异,我们将模拟如果我们测试我们人口中的所有 1,000 人,这些测试可能会如何执行。我们来看看 5 种不同的测试:

  • RT-PCR:“金标准”
  • 快速抗原:快速,但不稳定
  • 快速分子:快速但可靠(也许)
  • 抗体:用于几周后检测 Covid
  • 抛硬币:如果我们只是抛硬币呢?

测试准确度

在我们进入测试本身之前,让我们了解一下检测感染的“准确性”意味着什么。测试的准确性由两部分组成:敏感性和特异性。

  • 敏感度衡量的是实际患有该疾病的人检测报告为“阳性”的频率。
  • 特异性衡量没有患病的人检测报告为“阴性”的频率。

为了理解这些指标,我们将把我们的人口分为实际上健康的人和实际上感染的人(注:这在现实生活中显然是不可能的,因此首先需要进行测试)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上面是所有 980 名健康人。再说一遍,黑色是健康的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里有 20 名感染者。橙色表示受感染。

特征

特异性衡量测试对未感染的人(即健康人)的诊断准确度。换句话说:特异性衡量一项测试区分“真阴性”和“假阳性”的能力。

要理解“特异性”,我们只需要看看我们的健康人群。下面我们将看到一个 95%特异性的假设测试是如何将我们的 980 名健康人分开的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

931 真阴性。这些是被正确诊断为阴性的健康人。

给定一个 95%特异性的测试,我们的 980 个健康人中的 931 个(95%)将被正确诊断为阴性(如上)。这些是“真正的否定”

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

49 次误报。这些是被错误诊断为阳性的健康人。

不幸的是,在 95%的特异性测试中,我们的 980 名健康人中有 49 人(5%)会被错误地诊断为阳性。这些是“误报”

假阳性是坏消息,因为这些人会被不必要地隔离,并可能从实际患病的患者那里夺走大量医疗资源。

灵敏度

敏感度衡量的是一项测试对 T4 实际上被感染的人的诊断有多准确。换句话说:敏感度衡量的是一项测试区分“真阳性”和“假阴性”的能力。

要理解“敏感”,我们只需要看看我们的感染者。下面我们将看到一个 80%灵敏度的假设测试如何将我们的 20 名感染者分开。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

16 个真阳性。这些是被正确诊断为阳性的感染者。

给定一个 80%敏感的测试,我们的 20 个感染者中的 16 个(80%)将被正确诊断为阳性(如上)。这些是“真正的积极因素”

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4 假阴性。这些感染者被错误地诊断为阴性。

不幸的是,在 80%的敏感性测试中,20 名感染者中有 4 人(20%)会被错误地诊断为阴性。这些是“假阴性”

假阴性很麻烦,因为如果有人认为他们实际上被感染时是健康的,他们可能会放松警惕,不知不觉地感染周围的人。

分析与临床表现

最后要考虑的是测量是指测试的“分析”还是“临床”表现。

  • “分析”性能是测试在理想条件下的表现。
  • “临床”表现是测试在实践中的表现。

临床表现取决于许多因素,例如样本的采集方式。例如,当 PCR 测试基于鼻咽拭子(用棉签穿过你的鼻子戳你的大脑)时,它们的灵敏度较低(73%的灵敏度),而基于唾液样本的聚合酶链式反应测试(咳痰)则更灵敏(97.2%的灵敏度)( src )。

下面,我尽可能报告分析和临床测量。但是为了我们的实验,我们将使用“分析”性能,因为该度量更容易获得。

实际结果可能有所不同…

当测试一个 1000 人的实际样本时,结果会有很大差异。比如说…

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们对 1000 人进行假设性测试(80%灵敏度,95%特异性)的测试结果示例。最上面一组测试为阴性(包括真阴性和假阴性)。底部组测试为阳性(包括真阳性和假阳性)。

上面你可以看到我们的 1,000 人除以他们的测试结果(对于我们的假设测试)。测试结果呈阴性的人在第一组。测试呈阳性的人在最底层。

你会注意到在最上面的一组中有几个受感染的(橙色)人。这些是假阴性。这是测试灵敏度不理想的结果。当一项检测的灵敏度较低时,更多实际被感染的人会得到不正确的阴性结果。

你还会注意到底层群体中有一些健康的(黑人)人;这些都是假阳性,这是测试特异性不完善的结果。当一项检测的特异性较低时,更多未被感染的人会得到不正确的阳性结果。

测试测试

现在我们已经了解了测试准确性的不同度量标准(特异性和敏感性),让我们来看看真实测试的一些测量方法,看看它们在我们的人群中表现如何。

诊断测试(针对当前感染)

诊断测试告诉你在测试时疾病是否存在。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

示例测试结果,在我们 1000 人的人口中模拟 RT-聚合酶链式反应测试(w/ 99%灵敏度,99%特异性)。最上面一组测试为阴性(包括真阴性和假阴性)。底部组测试为阳性(包括真阳性和假阳性)。

RT-PCR ( “逆转录聚合酶链反应”)

PCR 测试是最常见的测试类型。尽管 CDC 在这些方面的第一次尝试是错误的( src ),PCR 测试被认为是“黄金标准”和最准确的。缺点:它们需要训练有素的人员、昂贵的设备和几个小时才能完成( src )。

  • 准确性:分析性能接近 100%的灵敏度、100%的特异性( srcsrc ),而临床灵敏度的范围可以是 66% - 97% ( srcsrc ),这取决于样本的采集方式和采集时间。
  • 费用 : $60 - $300,无保险( src )
  • 时机:在夏季,这些可能需要几个星期才能收回。最近,如果你去纽约的紧急护理中心,你可以在 3 - 4 天内得到结果
  • 工作原理:PCR 测试是一种“分子”测试。它们与新冠肺炎的 DNA 序列相匹配。
  • 示例系统: BD Max雅培 m2000赛默飞世尔 TaqPath罗氏科巴斯

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

示例测试结果,模拟对我们 1000 人的人口进行的快速抗原测试(灵敏度为 56%,特异性为 99%)。最上面一组测试为阴性(包括真阴性和假阴性)。底部组测试为阳性(包括真阳性和假阳性)。

快速抗原检测

从 5 月份开始,快速抗原检测在最近变得可行。它们在现场更容易操作,并且可以在大约 15 分钟内返回结果( src ),但是它们通常不太准确。这些测试的部分假设是它们可以更频繁地执行;即使他们不太敏感,更频繁的测试从长远来看也是有效的( src )。

  • 准确性:荟萃分析显示平均分析性能为 56.2%的敏感性和 99.5%的特异性( src )。在另一项关于临床表现的研究中,敏感度下降至 30.2% ( src )。
  • 费用:25-100 美元,不含保险
  • 计时:大约 15 分钟
  • 工作原理:抗原测试寻找新冠肺炎蛋白。
  • 示例系统: BD 验证器Abbott BinaxNow

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

示例测试结果,模拟对我们 1000 人的人口进行的快速分子测试(灵敏度为 95%,特异性为 99%)。最上面一组测试为阴性(包括真阴性和假阴性)。底部组测试为阳性(包括真阳性和假阳性)。

快速分子检测

FDA 早在三月份就批准了 Abbot ID NOW 测试。这是他们在白宫用的测试( src )。(我们都知道结果如何。)与其他快速测试一样,这些测试在现场进行,可在 5-13 分钟内返回结果。他们也应该比抗原测试更准确,但一些研究表明,它并不像广告宣传的那样准确。

  • 准确性:荟萃分析显示典型的分析性能为 95.2%的敏感性和 98.9%的特异性( src )。NYU 的一项实验显示,灵敏度可以低至 52% ( srcsrc )。
  • 时间:5 - 13 分钟
  • 工作原理:像 PCR 测试一样,快速分子测试与新冠肺炎 DNA 序列相匹配。
  • 示例系统:方丈 ID 现

抗体测试(针对既往感染)

抗体测试确定病人是否在过去某个时候被感染。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

示例测试结果,模拟对我们 1000 人的人口进行的抗体测试(灵敏度为 93%,特异性为 95%)。最上面一组测试为阴性(包括真阴性和假阴性)。底部组测试为阳性(包括真阳性和假阳性)。

血清学/抗体/血液测试

血清测试在初次感染后 1 至 3 周检测疾病( src )。它们通常是准确的,您将在 3 到 7 天内得到结果。

  • 准确性:对于血清学/抗体测试(ELISA),一项研究显示敏感性在 86% - 100%之间,特异性在 89% - 100%之间( src )。
  • 费用:50-135 美元,不含保险
  • 时间:3 - 7 天
  • 工作原理:抗体测试检测你身体用来对抗新冠肺炎病毒的抗体。

抛硬币测试

显然抛硬币不是探测新冠肺炎的有效方法(爸爸!),但是让我们看看那看起来像什么:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

示例测试结果,模拟对我们 1000 人的人口进行硬币翻转测试(50%灵敏度,50%特异性)。最上面一组测试为阴性(包括真阴性和假阴性)。底部组测试为阳性(包括真阳性和假阳性)。

正如所料,您可以看到大约相同数量的人测试为阳性和测试为阴性,受感染的人(橙色)均匀地混合在两组中。

“抛硬币”

这种“抛硬币”的想法从何而来?如果你用谷歌搜索“covid 测试抛硬币”,你会看到几个可信的 来源使用这个类比。

例如,这位科学美国人解说写道:

“如果有一个灵敏度和特异性都达到 99%的近乎完美的测试会怎么样?看起来很棒,不是吗?如果在一个患病率为 1%的国家使用这种测试,那么阳性测试的预测值将只有 50%——扔硬币决定!”

提交:

“但即使是这些测试的准确性也取决于人口中实际接触过病毒的人的百分比。例如,在感染率为 5%的人群中,一项特异性为 95%、灵敏度为 95%的测试将返回与真阳性相同数量的假阳性,这使得任何单个结果都不会比掷硬币更有用。”

这些例子是真实的,但有点令人困惑。重要的是要看看他们如何限定“抛硬币”的说法。在这两个例子中,他们指的是测试的阳性预测值,即“如果我得到阳性测试结果,我实际上有 covid 的概率是多少?”

这不同于说“测试提供的信息并不比医生向空中扔硬币多”,但它确实提出了一个关于测试在实践中如何使用的重要问题。

在现实生活中,仅凭测试结果不足以诊断一个人。您还必须考虑他们的背景和此人先前感染的可能性(例如,患者是否有可能已经被感染?他们是否接触过其他确诊患者?他们有症状吗?).

例如,假设事先不知道患者接触情况的阳性结果有 50%的机会是真阳性,但如果你知道那个人以前接触过,阳性测试结果更有可能是真的。或者,在一个低患病率的人群中,如果一个以前没有接触过的患者得到了阳性结果,你可能会有点怀疑这是假阳性。

这也解释了为什么你可能会看到疾病控制中心改变他们的筛选标准;随着 Covid 患病率的上升和下降,我们之前的暴露概率和检测策略也会随之改变。

外卖食品

  • 评估测试准确性需要考虑两个方面:敏感性和特异性。
  • 每种测试都有不同的权衡,但即使是最不敏感的测试(快速抗原测试)也比掷硬币好得多。
  • 为了真正理解检测的有效性,你必须考虑它在临床实践和人群先前感染概率中的准确性。

我是谁?不,不,你是谁?!

嗨!我是伊莱·霍德。我帮助客户设计和开发忙碌的人和他们杂乱的数据之间的有效接口。如果你是一名创始人、创客、讲故事者、非营利行善者或商业领袖,正在思考数据、设计和用户心理的交集,我很乐意联系并聆听你的故事。

你可以发电子邮件到 eli@3isapattern.com 给我,或者在推特上关注我。

特别感谢 Laura Gast 的流行病学观点和患者反馈!

用 IGViz 交互式绘制图形网络

原文:https://towardsdatascience.com/interactively-plot-graph-networks-with-igviz-c75da26858ec?source=collection_archive---------44-----------------------

使用 Plotly 轻松查看图形网络

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自 @jusspreme 的 Justin Jairam 拍摄的照片

在过去的几个月里,我开始探索使用图形网络来检测网络安全中的恶意和非恶意行为。我发现处理图形的一个主要难点是以简洁、视觉上吸引人的方式可视化网络、节点属性和边。默认的绘图选项建立在 Matplotlib 上,这对于这种类型的可视化来说是次优的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用 Matplotlib 的默认图形绘制

我不想摆弄 Matplotlib axes API,手动定制图表或创建一次性函数,而是想要一些更健壮、开箱即用、视觉上更吸引人和简洁的东西,同时最大限度地增加图表上可以显示的信息量。

进来的是我最喜欢的可视化库 Plotly。Plotly 已经有了一些关于如何可视化图形的文档,但这仍然是一个相当漫长的过程,并且只针对非定向图形。目标是找到(或创建)一个遵循.plot标准的统一 API,并对图形进行一些定制。因此,我做了这个叫做交互式图形可视化(igviz) 的包。

**注意:**目前仅支持 Networkx,但下一步将扩展到 Apache 的Graphx

要查看任何情节的交互性,您可以在这里查看

使用

安装运行pip install igviz

import networkx as nx
import igviz as ig

出于演示目的,创建一个随机图,为每个节点分配一个名为prop的属性,并将值设为 12。

G = nx.random_geometric_graph(200, 0.125)
nx.set_node_attributes(G, 12, "prop")

默认情况下,节点的大小和颜色由其自身的度数决定。节点的度就是它拥有的边(连接两个节点的线)的数量。悬停在节点上可以看到节点的度数!

**注意:**这也适用于有向图和多重图。有向图将显示从节点到节点的箭头。

fig = ig.plot(G)
fig.show()# ig.plot(G) also works.

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用 IGViz 的默认图形绘制

**提示:**谈到可定制性,您可以将节点的大小(size_method)更改为静态的,基于节点的属性或您自己的定制大小方法。

**提示:**颜色可以改变(color_method)为静态颜色(十六进制、纯文本等)。),基于节点的属性或您自己的自定义颜色方法。

还有更多的选项,还会有更多的选项,但这些选项会极大地影响图表的可视化和信息。

自定义图形外观

这里所有的节点都被设置为相同的大小,颜色被设置为浅红色,同时在悬停时显示prop属性。

**提示:**要在悬停时显示节点的属性,请为您想要显示的节点属性的node_text参数指定一个列表。默认情况下,仅显示度数。

fig = ig.plot(
    G, # Your graph
    title="My Graph",
    size_method="static", # Makes node sizes the same
    color_method="#ffcccb", # Makes all the node colours black,
    node_text=["prop"], # Adds the 'prop' property to the hover text of the node
    annotation_text="Visualization made by <a href='https://github.com/Ashton-Sidhu/plotly-graph'>igviz</a> & plotly.", # Adds a text annotation to the graph
)

fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

提示:如果你想在一条边上悬停时显示边属性,调用ig.plot时添加show_edgetext=True

这里,调整大小和颜色的方法基于每个节点的prop属性,我们在悬停时显示prop属性。

fig = ig.plot(
    G,
    title="My Graph",
    size_method="prop", # Makes node sizes the size of the "prop" property
    color_method="prop", # Colors the nodes based off the "prop" property and a color scale,
    node_text=["prop"], # Adds the 'prop' property to the hover text of the node
)

fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

要添加您自己的大小和颜色方法,请将与图中每个节点相关的颜色或大小列表传递给size_methodcolor_method参数。

**提示:**要改变色阶,改变colorscale参数!

color_list = []
sizing_list = []for node in G.nodes():
    size_and_color = G.degree(node) * 3 color_list.append(size_and_color)
    sizing_list.append(size_and_color)fig = ig.plot(
    G,
    title="My Graph",
    size_method=sizing_list, # Makes node sizes the size of the "prop" property
    color_method=color_list, # Colors the nodes based off the "prop" property and a color scale
    node_text=["prop"], # Adds the 'prop' property to the hover text of the node
)fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

布局

您可以通过指定布局类型来更改图表的组织和布局方式。Networkx 附带了可以使用的预定义布局,我们可以通过layout应用它们。

默认情况下,igviz 寻找pos节点属性,如果它不存在,它将默认为随机布局。

支持的布局有:

  • 随机(默认):在单位正方形内随机均匀放置节点。对于每个节点,通过在区间[0.0,1.0]上均匀随机地选择每个 dim 坐标来生成位置。
  • 圆形:在一个圆上定位节点。
  • kamada :使用 Kamada-Kawai 路径长度成本函数定位节点。
  • 平面:如果可能的话(如果图形是平面的),定位没有边相交的节点。
  • spring :使用 Fruchterman-Reingold 力定向算法定位节点。
  • :使用图拉普拉斯的特征向量定位节点。
  • 螺旋:在螺旋布局中定位节点。
fig = ig.plot(
    G,
    title="My Graph",
    layout="kamada"
)

fig.show()

要添加您自己的pos属性,您可以通过nx.set_node_attributes功能进行设置。

pos_dict = {
    0: [1, 2], # X, Y coordinates for Node 0
    1: [1.5, 3], # X, Y coordinates for Node 1
    ...
}

nx.set_node_attributes(G, pos_dict, "pos")

fig = ig.plot(G)

fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

反馈

我鼓励所有关于这个帖子或 Igviz 的反馈。你可以给我发电子邮件到 sidhuashton@gmail.com 或者在帖子上留言。

如果你喜欢这个项目,请给它一个以及关注我在推特上的更多更新!

任何错误或功能请求,请在 Github repo 上创建一个问题。我欢迎所有功能请求和任何贡献。如果你想为一个开源项目做贡献,这个项目是一个很好的开端——如果你需要帮助,可以随时给我发消息。

我本周(4 月 11 日)看到的有趣的 AI/ML 相关文章

原文:https://towardsdatascience.com/interesting-ai-ml-articles-i-came-across-this-week-18a1cde18629?source=collection_archive---------35-----------------------

由于我们大多数人都有更多的空闲时间,高亮显示的文章对那些想学习新东西或只想寻找分散注意力的内容的人来说是有用的

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

包括文章的封面图片

与 2020 年的其他任何一周相比,我在媒体上花了更多的时间,对于许多读者来说也是如此。

我们中的许多人目前都处于禁闭状态,正在寻找打发时间的方法。我们中的一些人在寻找关于正在进行的疫情的可靠信息和建议,而我们中的大多数人宁愿分心。

下面是我在 Medium 上看到的一些文章,它们符合我上面提到的标准。我建议在这篇文章中找到一两篇适合你的文章,并探究它们的内容。

所选文章写得很好,结构清晰,包含不同类型的机器学习爱好者感兴趣的内容。

享受吧。

14 天隔离期间要做的 14 个数据科学项目

随着全球主要国家和城市实施封锁,这一时期是数据科学家和机器学习从业者提高现有技能和研究投资组合的绝佳机会。

这就是为什么 Terence Shin 的文章是一篇适时的文章。特伦斯为读者提供了 14 个项目,他们可以在这个不确定的时期着手处理。

特伦斯在文章的开头表达了对全球成千上万正在抗击疫情冠状病毒的医疗专业人员的感谢。

本文中的项目分为三个部分,即:可视化、探索性数据分析和预测建模。每个项目的难度也有记录。初学者可以完成至少七个标有“简单”的项目。

文章中的项目主题的变化非常相关,准备探索冠状病毒和基于全球气候的数据集。

我将把这篇特别的文章推荐给数据科学领域的初学者,或者任何想在他们的投资组合中增加一些项目的人。

[## 14 天隔离期间要做的 14 个数据科学项目

2020 年发展新技能和强化你的投资组合的终极项目清单

towardsdatascience.com](/14-data-science-projects-to-do-during-your-14-day-quarantine-8bd60d1e55e1)

冠状病毒:我们的立场和我们下一步该做什么 Lex Fridman

Lex Fridman 是一个许多机器学习实践者可能已经熟悉的人。

他最近写了一篇文章,提供了关于冠状病毒疫情的重要统计信息。书面材料中的统计数据主要集中在美国,包括疫情对美国经济影响的信息。它还强调了美国医疗机构面临的困难。

在他的最新文章中,Lex 提供了宝贵的信息和建议,告诉我们作为个人,如何在帮助整个人类度过疫情方面发挥作用。阅读这篇文章,显而易见,我们都有一个角色要扮演,每个人都间接对周围人的健康和安全负责。

文章中提供的信息附有大量可信的资源。这些资源为读者提供了关于持续使用口罩及其有效性的问题的深入细节。他甚至包括视频,提供更多关于口罩使用和有效性的信息。

我强烈推荐这篇文章被阅读和分享;所提供的知识可以在这个前所未有的时代保护你和你的家人的安全。

[## 冠状病毒:我们的立场和下一步该做什么

一些观点基于现有的最佳科学和数据,关于我们的立场和我们下一步应该做什么。

medium.com](https://medium.com/@lexfridman/coronavirus-where-we-stand-and-what-we-should-do-next-2da929dbdab4)

关于人工智能和大数据的前 20 部电影

许多媒体作家已经意识到,人们现在在封锁期间有更多的空闲时间。

Benedict Neo 就是其中之一,他写了一篇有趣的文章,列出了面向人工智能和数据科学的电影。

我自己看了列表,我已经看了 90%的电影,我很感激《黑客帝国》被包括在内(额外鼓掌!)。

《星球大战》、《机械战警》和《终结者》等经典作品都包括在内,还有《查皮》、《星际穿越》和《她》等更现代的杰作。

对于每一部呈现的电影,本尼迪克特都写了一个总结,没有任何剧透。此外,每个摘要中都包含一个声明,说明每部电影探索了人工智能和数据科学的哪个方面;有些是基于人工智能的社会影响和其他焦点技术的影响。

我有点震惊的是 改碳 竟然没有列入名单。然而,这是一本好书。

[## 关于人工智能和大数据的 20 大电影。

这里有一些人工智能和大数据电影,你应该在新冠肺炎封锁期间在家观看。

towardsdatascience.com](/top-20-movies-about-machine-learning-ai-and-data-science-8382d408c8c3)

脸书开源架构的个性化神经推荐系统

这篇文章是面向更专业的读者的。

Jesus Rodriguez 对脸书用于个性化推荐系统的深度神经网络(DNN)架构进行了深入的总结和评估。

这篇文章提到了这样一点,当谈到个性化推荐系统的实现时,没有一种标准化的方法可以利用。

Jesus 提到脸书发布了他们的 DNN 推荐系统架构:RMC1、RMC2 和 RMC3 对于任何着手实现推荐系统的人来说都是合适的可配置蓝图。

我觉得这篇特别的文章很有见地,因为它包括了视觉插图,突出了脸书的三个 DNN 主题架构之间的差异,并提供了关键差异的文本解释。

[## 个性化神经推荐系统的脸书开源架构

一份新的研究报告和参考架构总结了评估用于个性化服务的 DNN 系统的经验

towardsdatascience.com](/facebook-open-sources-architecture-for-personalized-neural-recommendation-systems-4f3668876660)

本周(8 月 15 日)你应该阅读的有趣的人工智能/人工智能文章

原文:https://towardsdatascience.com/interesting-ai-ml-articles-you-should-read-this-week-aug-15-a050217b1c42?source=collection_archive---------34-----------------------

安全性、数据隐私和对象检测只是本周有趣的 AI/ML 相关文章中涵盖的几个主题,您不应错过。

随着直观的、新的和侵入性的技术的出现,安全和隐私将永远是人们讨论的话题,这些技术模糊了隐私的界限。

安全是国家一级的优先事项,隐私被视为个人的基本人权。

尽管数据科学家和机器学习工程师可能不是强制实施安全措施的必要倡导者,但我们确实应该对这一主题有一个高层次的认识。

关于这一点,本周的文章涉及以下内容:

  • 数据隐私的大网及其失手

  • 详细探索解决物体检测的流行深度学习方法

  • 一个机器学习工程师历程的回顾。从学习者到教育者。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

提到的有趣文章的封面图片

阿伦·卡彭特的数据收集伦理

了解数据隐私法不断变化的面貌,以及普遍存在的漏洞。

阿伦·卡彭特揭示了数据隐私监管中适应性的重要性,他展示了监管机构在处理个人和私人数据方面众所周知的失误。

阿伦的文章深入研究了数据隐私法从 HIPAA (1996 年)综合最终规则(2013 年)到更现代的 GDPR 的演变。

阿伦发表声明,暗示模糊的界限和模糊的隐私法导致的模糊性,使一个组织难以跨越患者隐私的界限。

尽管如此,本文的第一部分阐述了政府和监管机构为与技术进步和信息收集同步更新数据隐私法所做的努力。

本文的第二部分揭示了最初提出的数据隐私法的明显不适应性,这些法律对卫生组织持有的数据施加了限制。

阿伦讨论了过时的数据隐私法的失败,因为这些法律没有考虑到几十年后将出现的社交媒体网络和组织,这些网络和组织将聚合这些平台用户的健康数据和信息。

阿伦在文章的最后提到了不可避免的即将到来的数据隐私疏忽,这主要源于技术的不断发展,而不是管理机构的疏忽。

这篇文章向读者传达的最后一个信息是,数据保护的责任从管理机构转移到了个人身上。Aren 提供了一套指导方针,数据科学家和个人可以利用这套指导方针来培养对道德来源数据标准的认识。

非常适合阅读:

  • 对数据隐私感兴趣的个人
  • 数据科学家/数据分析师

** [## 数据收集的伦理

您的数据来源是否符合道德规范?

towardsdatascience.com](/the-ethics-of-data-collection-9573dc0ae240)**

我们在黑帽 2020 上看到的最可怕的事情

一篇文章形式的展览,介绍了读者和安全专家在今年的 BlackHat 活动中应该了解的有价值的演讲、工具和技术。

安全和隐私始终是一个随着更先进的技术和工具的发展而变化的话题。

在 2020 年,我们观察到了基于国家安全和数据隐私问题对大量使用的移动应用程序的审查。

由于新冠肺炎的限制和安全措施,一年一度的黑帽安全会议在网上广泛举行。 PCMag 撰写了一篇文章,简要介绍了在此次活动中脱颖而出的演讲、技术和工具。

准备阅读一些工具的汇编,这些工具颠倒了被跟踪者和跟踪者之间的角色;或者探索卫星无线网络安全漏洞的工具。

PCMag 汇编文章还包括安全专家的一系列演讲,传达他们在国家层面的安全担忧和经验。其中一些会谈包括探讨美利坚合众国选举期间与安全有关的话题。

在 PCMag 的编辑列表中,最让我印象深刻的是类似间谍的设备的亮相,这些设备采用日常用品的形状,如灯。

非常适合阅读:

  • 安全爱好者
  • 安全专家

** [## 我们在黑帽 2020 看到的最恐怖的事情

每年,黑客和研究人员都聚集到拉斯维加斯参加黑帽安全会议(有些人留下来参加…

medium.com](https://medium.com/pcmag-access/the-scariest-things-we-saw-at-black-hat-2020-7406f8f1d19a)**

你应该阅读的 12 篇论文,以了解深度学习时代的对象检测,作者:伊森·颜佳·李

解决物体检测的流行深度学习方法的详细探索

对象检测是基于计算机视觉的重要任务之一,研究人员和学者已经设计了算法和基于启发式的方法。

最近,用于解决对象检测的大多数解决方案都植根于深度学习技术和方法的利用。

伊森·颜佳·李撰写了一篇文章,探讨了过去十年来解决物体检测的深度学习方法的发展。

Ethan 的文章首先简要解释了对象检测问题;还包括正确理解文章内容所需的必备知识。

每个包含的深度学习方法都配备了以下内容:它被引入的年份;该技术的相应研究论文的链接,更重要的是对该方法如何工作和实现的详细解释。

Ethan 能够压缩与所展示的技术相关的重要信息,而不会创建让大多数普通读者感到厌烦的冗长的技术分析,这给我留下了非常深刻的印象。

每一种介绍的方法都用图像来补充,说明一种技术的对象检测方法或算法过程。

本文中包含的对象检测技术的示例有 Yolo、RCNN、Overfeat 和 RetinaNet。

为了结束这篇写得很好的文章,Ethan 包括了一些值得注意的深度学习方法,这些方法补充了前面提到的技术,或者提供了对对象检测问题的进一步见解,并提出了解决方案。

非常适合阅读:

  • 数据科学家
  • 深度学习从业者

** [## 你应该阅读的 12 篇论文,以了解深度学习时代的对象检测

快速浏览十年来最好的物体检测论文,帮助你学习更高级的计算机视觉

towardsdatascience.com](/12-papers-you-should-read-to-understand-object-detection-in-the-deep-learning-era-3390d4a28891)**

我将如何重新开始学习机器学习(3 年内)作者丹尼尔·伯克

回顾机器学习工程师从学习者到教育者的历程。

丹尼尔·伯克在在线机器学习社区中迅速成为一个熟悉的名字。多年来,丹尼尔发布了许多文章、视频、课程和材料,为机器学习学生和从业者提供了对机器学习行业不同方面的见解。

丹尼尔已经经历了三年多事的机器学习之旅,他写了一篇文章,回顾性地分析了他的旅程和经历中的关键事件。

本文的前半部分是以讲故事的方式讲述的,普通读者会喜欢。丹尼尔提到了他旅程的开始,从他卑微的学识到他的职业经历。

Daniel 讨论了想要转移到下一个闪亮框架、构建更多工具以及进行研究的感觉。他还包括一个关于积累机器学习相关证书问题的论述。

文章的后半部分是 Daniel 将如何处理他在机器学习相关主题中学习和获取知识的整个经历的蓝图。

这个蓝图对于那些可能被互联网上的大量可用资源淹没的初学者来说是一个有用的资源。充斥着资源链接,后半部分侧重于用时间测量指标来指导读者如何进行机器学习研究,他提到,应该用个人项目来补充。

非常适合阅读:

  • 数据科学家
  • 机器学习工程师

** [## 本周(8 月 9 日)你应该阅读的有趣的人工智能/人工智能文章

本周值得一读的文章汇编

towardsdatascience.com](/interesting-ai-ml-articles-you-should-read-this-week-aug-9-dddbb25bb69c)**

我希望这篇文章对你有用。

要联系我或找到更多类似本文的内容,请执行以下操作:

  1. 订阅我的 邮件列表 获取每周简讯
  2. 跟着我上
  3. 通过 LinkedIn 联系我

本周(8 月 22 日)你应该阅读的有趣的人工智能/人工智能文章

原文:https://towardsdatascience.com/interesting-ai-ml-articles-you-should-read-this-week-aug-22-f62a7b7a48b7?source=collection_archive---------28-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

封面图片本周封面文章

分析和意见

学机器学习还是深度学习?看看这篇文章,它可以指导你的学习之旅

大约一年前,我的机器学习和计算机视觉理学硕士学位接近尾声。

虽然我获得了一些有用的理论知识,但我的实践经验仍然不足。

所以我做了你们大多数人会做的事,我在 PyTorch 和 TensorFlow 上买书,看视频和阅读大量媒体文章。

本周的一堆文章献给那些在机器学习行业起步并寻求方向、建议或简单学习材料的人。

以下是所涵盖文章的概述:

  • py torch 中的递归神经网络简介
  • 免费大学十五章讲授深度学习话题
  • 讲述一名医学专业人士成为数据科学家的历程
  • 超分辨率简介

我如何在 COVID(作为一名医生)期间成为一名数据科学家

“你只和你的前三个项目一样优秀”——克里斯·洛夫乔伊

Chris Lovejoy 写了从医疗领域的职业过渡到机器学习相关职业的经验。

克里斯给那些想从非技术行业转行的人的第一个建议是去社交网络。

本文指出了早期开发人员容易陷入的常见陷阱。这些陷阱可以通过向经验丰富的开发人员寻求帮助来避免。据 Chris 称,他通过在技术活动、聚会上与个人会面,以及通过 LinkedIn 联系,找到了技术指导。

拥有一流的投资组合是科技行业的古老建议。尽管如此,Chris 还是提供了可操作的步骤,可以用来为投资组合积累一系列项目。从参加基于项目的课程到黑客马拉松,Chris 似乎已经利用了所有为他的项目获取想法的可能性。

训练营已经迅速成为来自非传统背景的个人获得必要技能以在技术型职位中生存的快速途径。这篇文章包括克里斯在训练营的经历的简短个人描述,并包含了关于训练营和价格的细节。

机器学习相关专业有一个持续的学习过程。理想情况下,成功的关键是理解基本面,这是克里斯向读者传递的信息。

Chris 提供了几个指向数学学习资源的链接,并总结了有抱负的数据科学家应该具备的专业知识。

获得理学硕士学位是获取专业领域知识的传统方法。根据 Chris 的说法,如果不打算攻读数据科学的理学硕士学位,就很难受到重视。

有很多文章都是针对有技术背景的人过渡到机器学习相关角色的。Chris account 与众不同,吸引的是非技术背景的个人。

推荐用于:

  • 考虑转行到 ML 相关职位的个人
  • 机器学习学生

[## 我是如何在 COVID(作为医生)期间成为数据科学家的

非传统职业转型的 5 点启示

towardsdatascience.com](/first-data-science-job-coronavirus-doctor-b8cf074bae96)

超级分辨率及其在深度学习方面的最新进展——第一部分,作者希瓦尼·拉波尔

超分辨率及其应用简介。

Shivani Rapole 通过使用相关的用例以及描述良好的场景来证明技术方法的合理性,为大多数人可能会感到畏惧的主题提供了简单的解释。这个题目超解析。

超分辨率(SR)是一种应用于大量行业和应用的技术。Shivani 通过提供关于如何在各种用例中利用软件无线电的简要细节,向读者介绍了软件无线电的一些典型应用。

这篇文章并不是 SR 内部工作的全面背景,这就是为什么我推荐这篇文章作为信息源或复习文章。

读者需要用外部资源补充从本文中获得的知识。

也就是说,Shivani 提供了超分辨率的概述,而没有包含算法或复杂的图像,这使得这篇文章成为机器学习学生的绝佳资源。

[## 深度学习中的超分辨率及其最新进展(一)

在本文中,我将简要介绍超分辨率的概念及其在各种图像处理中令人困惑的应用

medium.com](https://medium.com/analytics-vidhya/super-resolution-and-its-recent-advances-in-deep-learning-part-1-c6d927914d32)

非常适合阅读:

  • 计算机视觉/深度学习从业者

关于深度学习你想知道的一切

机器学习爱好者和学生关于深度学习主题的视频内容的宝贵资源

Andreas Maier 是德国FAU大学的教授,并撰写了一篇通过博客和视频展示的深度学习主题的汇编文章。

读者可以将这篇文章视为各种深度学习主题的内容页,如神经网络、强化学习、对象检测等。

共有 15 章,每一章都配有描述课程内容的图片。章节被分成几个部分,这些部分补充了指向视频内容和课堂讲稿的资源链接。

对于机器学习的学生和读者来说,这是一个完全免费接受大学水平教育的机会。

非常适合阅读:

  • 机器学习学生

[## Fau 课堂笔记——走向数据科学

阅读《走向数据科学》中关于 Fau 的讲稿。共享概念、想法和代码的媒体出版物。

towardsdatascience.com](https://towardsdatascience.com/tagged/fau-lecture-notes) [## 关于深度学习你想知道的

在综合视频和博客文章中

towardsdatascience.com](/all-you-want-to-know-about-deep-learning-8d68dcffc258)

让我们建立一个 RNN,Pytorch 风格!由 Nishil Madhani

用 PyTorch 实现递归神经网络

Nishil Madhani 写了一个简短但有用的指南来理解 PyTorch 中递归神经网络的实现。

在现实世界中,数据有各种形式和大小。接收各种输入的应用程序的输出在大小上也有可变性。考虑到这一点,我们要求神经网络可以处理和产生的数据类型具有灵活性。递归神经网络(RNN)满足这一要求。

Nishil 提供了一个典型的 RNN 建筑的描述性概述,并辅以图解示意图。

这篇初学者友好的文章解释了用于实现和训练 RNN 的技术术语和库。了解文章的内容需要一些先决条件,但快速的谷歌搜索应该能为读者提供所需的知识。

本文探讨了以下主题、工具和主题领域:Python、PyTorch、深度学习、时间序列预测、递归神经网络、Numpy 等。

推荐用于:

  • 机器学习从业者

[## 建立一个 RNN,Pytorch 风格!

你有没有想过深度学习是如何试图模仿人脑的记忆概念的?我猜答案是肯定的…

medium.com。](https://medium.com/@nishilmadhani/lets-build-a-rnn-pytorch-style-c960207f1fb3)

我希望这篇文章对你有用。

要联系我或找到更多类似本文的内容,请执行以下操作:

  1. 订阅我的 邮件列表 获取每周简讯
  2. 跟我上中型
  3. 通过 LinkedIn 联系我

本周(8 月 31 日)你应该阅读的有趣的人工智能/人工智能文章

原文:https://towardsdatascience.com/interesting-ai-ml-articles-you-should-read-this-week-aug-31-d65d79b172de?source=collection_archive---------78-----------------------

分析和意见

不要错过这些关于人工智能和机器学习主题的写得很好、内容丰富的文章。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自美国亚利桑那州皮奥里亚的 Gage Skidmore 查德维克·博斯曼,CC BY-SA 2.0,https://commons.wikimedia.org/w/index.php?curid=67164061

2020 年 8 月 28 日,世界失去了一位英雄,查德威克·亚伦·博斯曼。

他在银幕上扮演“黑豹”,是一个英雄,但他最非凡的英雄壮举却是在银幕之外。

他激励了一代又一代的黑人,包括我自己,深入内心,寻找力量,在逆境中坚持下去,并向世界展示他们的才华。

他通过塑造几个非虚构和虚构的人物来达到这一目的,如詹姆斯·布朗、杰基·罗宾森、黑豹等。

尽管如此,他塑造的最伟大的英雄还是他自己,查德维克·博斯曼。

这里是我本周在 Medium 上偶然发现的基于人工智能和机器学习的文章,应该会给你提供一些价值。

在我的推荐文章列表中,您会找到提供以下内容的文章:

  • 解释广泛使用的卷积神经网络架构中的整体组件
  • 理性看待艾对人类生存威胁的可信尝试。
  • 有色人种试图创造真正财富道路上的算法路障
  • 在一个我们已经看到面部识别技术大清洗的世界里,一些部分开始大规模采用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

左上:图片由安德烈叶拍摄。右上:照片说明。来源:SOPA 图片/盖蒂图片。左下:照片:10000 小时/Getty Images。右下:Maximalfocus 在 Unsplash 上拍摄的照片

谷歌盗梦空间背后的聪明绝招:安德烈·叶的 1×1 卷积

对广泛使用的卷积神经网络架构中的整体组件的解释。

Andre Ye 写了 Google 的 Inception 架构以及它在图像分类和检测方面成功的原因。

Andre 在这篇文章中解释说,Inception 架构的成功主要是由于通过合并 1x1 卷积有效地利用了神经网络架构计算资源。

这篇文章深入探究了为什么 1x1 卷积是 Inception CNN 架构不可或缺的组成部分。

通过包含详细的描述和创造性的插图,Andre 能够指出卷积如何对不同格式的图像(灰度和 RGB)进行操作。

在解释 1x1 卷积的好处的同时,Andre 还包括一些常见深度学习术语的定义和解释,如卷积、过滤器、步幅、通道等。

深度学习实践者不仅要理解常见的 CNN 架构,还要掌握研究人员选择特定架构设计的判断背后的原因,这一点至关重要。

非常适合阅读:

  • 深度学习从业者

[## 谷歌盗梦空间背后的聪明绝招:1×1 卷积

一个 1×1 的 conv 到底能做什么?

towardsdatascience.com](/the-clever-trick-behind-googles-inception-the-1-1-convolution-58815b20113)

人工智能会统治世界,奴役人类吗?由凯南·科尔迪

理性地对待艾对人类的生存威胁的可信尝试

Kenan Kolday 在这篇文章的开头指出,人类对人工智能的恐惧根植于好莱坞电影对人工智能能够做到的“邪恶”的描述。

凯南的文章试图通过清晰地描述各种形式的人工智能及其对生存威胁的潜在性,来重新梳理读者可能持有的对人工智能的无知看法。

这篇文章以分层的方式介绍了人工智能的各种形式;人工狭义人工智能(ANI)、人工通用智能(AGI)和人工超级智能(ASI)。

在文章的前面,凯南举例说明了人工智能可以应用的场景,这些场景是可行的,甚至是目前正在使用的;在文章的最后,我们正在探索具有意识并渴望成为神的人工智能的形式。

我推荐这篇文章,因为它包括了对我们目前拥有的和尚未创造的各种形式的人工智能的简短但信息丰富的描述和应用。

非常适合阅读:

  • 未来学家/技术专家

[## 人工智能会统治世界,奴役人类吗?

人们认为 AI 是威胁,其实真的不是。危险在别的地方。

medium.com](https://medium.com/the-innovation/will-artificial-intelligence-rule-the-world-and-enslave-humans-96c78d2a8588)

凯西·马修斯说,一个算法的一些改变可以让贷款少很多种族歧视

有色人种试图创造真正财富的道路上的算法路障

Kasey Matthews 的文章为金融建模算法提供了丰富的信息,金融贷方使用这些算法来确定是否应该根据种族批准向个人发放贷款。

通过使用个人轶事和基于研究的研究,Kassey 提供了一个很好的例子来描述为什么像 BISG(一种广泛使用的种族建模算法)这样的技术并不像它们看起来那样健壮或可靠。

改进建模技术和算法的一个更好的方法是包含更多的数据点,这就是 Race Predictor 所做的。

根据 Kassey 文章中的信息,种族预测器是对 BISG 的改进,包括更多相关的非种族数据点来预测种族。

Race Predictor 是使用机器学习方法构建和训练的,与它的前辈相比,它显示出更有前途的结果。

这篇文章非常适合阅读:

  • 金融领域的机器学习从业者

[## 一个算法中的一些变化可以让贷款少很多种族歧视

美国信贷经济的软件中有一个缺陷,这个缺陷可能会阻碍有色人种…

momentum.medium.com](https://momentum.medium.com/a-few-changes-in-one-algorithm-can-make-lending-a-lot-less-racist-4afaafba2b01)

4 亿印度人可能很快需要使用面部识别来访问他们的银行账户戴夫·格什戈尔

在一个我们已经看到面部识别技术大清洗的世界里,一些部分开始大规模采用。

2020 年,我看到的关于放弃面部识别设备和技术的文章比过去几年都多。

但是,Dave Gershgorn 的文章指向了印度,印度政府正在寻求将面部识别摄像头应用到金融系统中。

根据 Dave 的文章,印度国家政府正在试验利用虹膜和面部识别来获得财政资源。

这种从获取金融资源的最初生物特征数据到面部特征的转变是由于冠状病毒疫情。

冠状病毒只是迫使印度变得更加依赖基于人工智能的技术吗?

嗯,看起来是这样的,正如戴夫所说的,目前有四家银行正在实施这个得到大型全国性组织支持的项目。

这篇文章非常适合阅读:

  • 对人工智能应用感兴趣的技术专家
  • 计算机视觉从业者

[## 4 亿印度人可能很快需要使用面部识别来访问他们的银行账户

四家银行目前正在测试面部识别系统,为期两周

onezero.medium.com](https://onezero.medium.com/access-to-welfare-programs-in-india-could-soon-depend-on-facial-recognition-scans-a09d21a96b1d)

我希望这篇文章对你有用。

要联系我或找到更多类似本文的内容,请执行以下操作:

  1. 订阅我的 邮件列表 获取每周简讯
  2. 跟我上中型
  3. 通过 LinkedIn 联系我

本周(8 月 9 日)你应该阅读的有趣的人工智能/人工智能文章

原文:https://towardsdatascience.com/interesting-ai-ml-articles-you-should-read-this-week-aug-9-dddbb25bb69c?source=collection_archive---------43-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安娜·奥扎在 Unsplash 上的照片

分析和意见

本周值得一读的文章汇编

我想以声援受到本周悲剧事件影响的贝鲁特和喀拉拉邦的公民开始我的每周 AI/ML 文章汇编清单。

我向受害者的家人和朋友表示慰问。

本周的文章涵盖了另一批精心呈现且详细的媒体文章,包括以下内容:

  • 如何利用人工智能创造一个安全的工作环境?
  • 带深度学习的手语翻译。
  • 笔记本电脑实现人脸解锁功能。
  • 能让你躲过监控摄像头的时尚。

人工智能将为安全返回工作场所提供动力。下面是甘尼斯·凯萨里的介绍

在疫情冠状病毒期间和之后保护工作场所和员工的基于人工智能的解决方案

Ganes Kesari 介绍了雇主可以用来为重返工作场所的员工创造安全环境的方法。

Ganes 在他的文章中提出的方法和技术利用人工智能创建了一种以数据为中心和基于机器学习的方法来实施程序和安排,以确保创建一个无 Covid 的工作场所环境是可能的。

Ganes 的文章首先包括了一个人工智能劳动力调度系统的软件蓝图。

Ganes 对系统的描述听起来很简单,但是很明显,后勤和技术上的努力可能会使这个项目持续 3-6 个月。尽管如此,劳动力环境已经改变,所以这可能是一个值得追求的项目。

最近几个月,不同的团体开发了基于计算机视觉的应用程序,用于监控行人之间的社交距离。Ganes 在他的文章中包含了一幅描绘 Landing AI 构建的社交距离检测器的图像,以向读者展示社交距离系统如何在工作场所中实施。

在非公共环境中存在隐私和摄像头问题。然而,工作场所内的人工智能社交距离工具可以用于工作场所周围的公共区域和公共区域。

本文涵盖了一些可以在工作环境中应用的人工智能解决方案的直观方法。显而易见,对于精通技术的雇主来说,这是一本好书。这篇文章不包括普通数字本地人不熟悉的技术术语,Ganes 的描述性文字清楚地说明了 covid 安全策略的开始。

非常适合阅读:

  • 雇主
  • 普通观众

[## 人工智能将为安全返回工作场所提供动力。以下是方法

疫情还没有结束。如何安全地迎接员工重返职场?

towardsdatascience.com](/ai-will-power-a-safe-return-to-the-workplace-heres-how-4968785c8e65)

使用深度学习的手语识别何塞·赫拉索

对人工智能如何帮助手语翻译的端到端描述

使用双摄像头系统和深度学习技术, José Herazo 展示了一个基于视觉的手语翻译系统的原型。

在这篇文章中,José分解了开发由深度学习技术创建的手语翻译系统所涉及的过程。

本文分为三个部分,提供了开发该系统的主要工作和方法的细节。

第一部分详细介绍了 José在这个项目中的直觉,包括说明系统中涉及的摄像机位置和硬件组件的图像。

第二部分是用于训练所实现的卷积神经网络的数据集合。本节包括用于调整训练数据数量的数据源和数据扩充技术。

本文的最后一节描述了在符号翻译系统中使用的实际卷积神经网络。训练模型的评估结果遵循 CNN 架构的描述。

阅读这篇文章,了解 José project 的最终表现,以及该项目的未来发展计划。

适合阅读:

  • 数据科学家
  • 机器学习从业者
  • 机器学习爱好者

[## 使用深度学习的手语识别

双摄像头第一人称视觉翻译系统

towardsdatascience.com](/sign-language-recognition-using-deep-learning-6549268c60bd)

使用人脸通过计算机视觉自动锁定和解锁 Ubuntu!!!巴拉·文卡特什

如何在笔记本电脑中实现面部解锁功能的逐步过程

Bala Venkatesh 最新文章是一篇关于如何在笔记本电脑设备上实现计算机视觉人脸解锁功能的简单分步指导文章。

该项目本身使用了关键的数据科学和计算机视觉库和工具,如 OpenCV、NumPy 和 Python。

这篇简短但详细的文章包含了执行项目各个阶段的代码片段。本文中解释的关键步骤是数据聚合、模型训练和测试。

Bala 还包括一个 YouTube 视频短片,展示了该系统的运行情况。对于更多好奇的读者来说,GitHub 资源库链接包含了对源代码的探索。

非常适合阅读:

  • 计算机视觉工程师
  • 数据科学家

[## 使用人脸通过计算机视觉自动锁定和解锁 Ubuntu!!!

我用 OpenCV 和人脸识别库实现了一个自动人脸解锁技术。

towardsdatascience.com](/automatically-locking-unlocking-ubuntu-with-computer-vision-using-a-human-face-db35cbe312f7)

这些帽衫让你对一些监控算法“隐形”

做一个时尚的声明,同时愚弄人工智能监视系统。

Dave Gershgorn 的文章探索了将时尚与人工智能相结合的研究。

该研究的基础是围绕着利用对抗性攻击技术来创造服装,以避免通过配备人工智能检测技术的监视系统检测到人。

戴夫的文章简要描述了用于开发印在衣服上的图案以欺骗这些人工智能监控系统的过程。

该文章包括服装和技术项目的限制,即缺乏对配备面部识别的监控摄像头的躲避。

衣服实际上可以在文章中提供的链接中购买。

所以,如果你想做一个相当直观的时尚宣言,并逃避“一些”监控摄像头的检测,那么这些服装可能就是你的风格!

适合阅读:

  • 技术专家
  • 普通观众

[## 这些帽衫让你对一些监控算法“隐形”

它们是由脸书和马里兰大学的研究人员创造的

onezero.medium.com](https://onezero.medium.com/these-hoodies-make-you-invisible-to-some-surveillance-algorithms-8d791339fb87)

我希望这篇文章对你有用。

要联系我或找到更多类似本文的内容,请执行以下操作:

  1. 订阅我的 邮箱列表 获取每周简讯
  2. 跟我上
  3. 通过 LinkedIn 联系我

本周(7 月 11 日)你应该阅读的有趣的人工智能/人工智能文章

原文:https://towardsdatascience.com/interesting-ai-ml-articles-you-should-read-this-week-july-11-bac8f2a65819?source=collection_archive---------28-----------------------

分析和意见

发现提供在数据科学和机器学习领域导航成功职业生涯的建议和提示的文章。

我喜欢 Ganes Kesari 用来描述数据科学家的斗争的类比,我的意思是,将与项目经理的互动比作拔牙是滑稽的(也是准确的?).

我看到许多人问“我怎样才能成为一名数据科学家??“或者"我需要学习哪些编程语言?”。这些问题以及许多类似的问题都在本周你应该阅读的人工智能/人工智能有趣文章中得到了解答。

本周的版本对于开始从事数据科学的个人,或者正在寻求成功的机器学习职业生涯的个人非常重要。

  • 从 Miguel Pinto 如何成为 Kaggle 竞赛大师的旅程中寻找建议。
  • 或者你可以从 Ganes Kesari 那里获得一些超能力来帮助你的数据科学事业。
  • 关于您的数据科学角色的安全性,您是否感到害怕。弗雷德里克·布斯勒写得很好的文章中。
  • 以及 Caleb Kaiser 对机器学习工程角色的解释。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

包括文章的封面图片

我的三年历程:从零 Python 到深度学习竞赛大师作者 Miguel Pinto

Miguel Pinto 为他的读者展示了他成为 Kaggle 竞赛大师的道路。他的路径详细描述了他两年的旅程,在此期间,他学习了 Python、深度学习和许多其他相关的学科领域。

Miguel 写这篇文章是为了激励个人接受数据科学及其所有相关方面。Miguel 的故事是激励人心的,因为它展示了个人从一个领域中很少或基本的知识进步到获得行业认可的成就的能力。

这篇文章的引言首先提到了人工智能越来越受欢迎的原因。Miguel 通过展示一系列受益于基于人工智能的解决方案的行业,展示了获得人工智能技能的多功能性和可转移性。但米格尔并不回避陈述滥用人工智能可能带来的负面影响。

对他的旅程的回忆从他如何开始学习 Python 以及他所面临的困难开始。

我喜欢他为读者提供可行建议的严肃而直接的方式。他甚至用粗体突出了他的最高提示,所以你不会错过任何提示。

对于包括米盖尔在内的大多数机器学习学生来说,选修吴恩达的课程几乎是必经之路。米格尔还提到了哪些深度学习课程证明对他最有效。

他还讲述了回想起来他会如何进行深度学习研究,读者现在可以采用这些研究,并可能在更短的时间内达到深度学习的熟练程度。

Miguel 文章中的“在 Kaggle 中竞争”部分可能是大多数人会阅读该文章的原因。这一部分包含了米格尔对他在卡格尔队伍中快速前进的回忆,以及他在学习时所面临的挣扎。同样,米格尔用粗体突出了关键点和提示,这些提示是职业生涯的定义。

这篇文章最后提到了在深度学习中获得知识的好处,即使你不选择它作为职业选择。

这篇文章非常适合:

  • 深度学习的学生
  • Kaggle 平台用户

[## 我的 3 年历程:从零 Python 到深度学习竞赛高手

自从 2017 年开始学习 Python 以来,我一直遵循的道路是成为一名独自参加 Kaggle 比赛的大师…

towardsdatascience.com](/my-3-year-journey-from-zero-python-to-deep-learning-competition-master-6605c188eec7)

让你在数据科学职业生涯中不可或缺的 4 种超能力 Ganes Kesari

您已经阅读了 Miguel 的文章和上面的故事,并且您已经准备好从事数据科学方面的职业(或者至少对某个领域感到好奇)。你应该给自己配备超能力。

Ganes Kesari 的文章介绍非常生动,写得很有创意。我喜欢 Ganes 用来描述数据科学家的斗争的比喻。将与项目经理打交道和互动比作拔牙是很滑稽的。

Ganes 不得不描绘一个数据科学家的可怕工作生活,以展示你在面对邪恶的逆境时需要保持的四种超能力(我保持了超能力的主题)。

但严肃地说,Ganes 提出了数据科学家普遍面临的四个挑战领域,并提供了帮助您在数据科学职业生涯中导航的提示和建议。

Ganes 包括如何处理杂乱数据的技巧和掌握的重要性。但是引起我共鸣的一个关键点是强调关注技术而不是工具和应用的重要性。我将保持简单,工具和应用程序来来去去,但技术保持不变。

最重要的是,数据科学家能够理解技术的基本原理,而不是几年后就会过时的应用程序的利用。

Ganes 为读者提供的所有超能力都是适用的,不管你在做什么项目。

如果你目前工作停滞不前,需要一些建议,不妨看看这篇文章。

这篇文章非常适合阅读

  • 数据科学从业者

[## 让你在数据科学职业生涯中不可或缺的 4 种超能力

了解数据科学行业的这些最大挑战,以避免职业生涯停滞不前

towardsdatascience.com](/4-superpowers-that-will-make-you-indispensable-in-a-data-science-career-6571e8e7d504)

AutoML 会是数据科学家的末日吗?弗雷德里克·布斯勒

所以 Ganes 给你配备了一些超能力,但是等着吧,你可能连使用它们的机会都没有!

几年来,AutoML 一直是机器学习行业的热门话题。如果你不熟悉 AutoML,也不用担心。 Frederik Bussler 撰写了一篇文章,介绍了 AutoML 以及在机器学习过程中利用自动化方法的公司、初创公司和组织的前景。

弗雷德里克写道,AutoML 越来越受欢迎,它被亚马逊和脸书等大型科技巨头以及其他几家初创公司采用。

采用 AutoML 作为业务的公司列表表明,这种自动化方法只会在机器学习领域变得更加突出。

Frederik 继续指出了 AutoML 和无代码 AI 之间的区别。简单地说,无代码人工智能是对大量编码的 AutoML 解决方案所带来的复杂性的抽象。

本文的其余部分包括 AutoML 的优点和缺点。

读者的文章中更令人兴奋的部分将是关注 AutoML 缺点的部分(剧透警告 : 数据科学家仍将有工作)。缺点是在缺乏可解释性和无偏见的数据收集的情况下,缺乏人类的直觉和能力。

这篇文章非常适合:

  • 数据科学家
  • 机器学习工程师

[## AutoML 会是数据科学家的末日吗?

AutoML 越来越受欢迎。这就是事情的变化。

towardsdatascience.com](/will-automl-be-the-end-of-data-scientists-9af3e63990e0)

从数据科学转向机器学习工程 Caleb Kaiser

Frederik 的文章可能吓了你一跳,现在你渴望更深入地探索人工智能的世界,成为一名成熟的机器学习工程师。

Caleb Kaiser 的文章首先指出了机器学习实践者实现的模型已经取得的成就;人类文本生成、对象检测和文本语音模型等成就。Caleb 认识到数据科学家和机器学习工程师角色的结合使许多机器学习成就成为可能。

尽管如此,Caleb 还是试图在 ML 工程师和数据科学家之间建立一种区别,他明确指出:ML 工程师的角色与如何实现机器学习来解决实际问题相关联。

为了建立更清晰的区分,Caleb 包括了四个机器学习应用程序,以及 ML 工程师和数据科学家的角色发挥作用的地方。如果要进行职业转型,这些清晰的区别将有助于数据科学家了解潜在的责任。

我不得不承认,数据科学家和机器学习工程师之间的界限有时很模糊,主要是因为他们有共同的责任,而且与角色相关的职责因公司而异也于事无补。

文章的很大一部分集中在确保读者清楚这两个角色之间的区别;一旦做到了这一点,Caleb 就进入了文章的主体部分。

文章的主体集中在机器学习角色需要什么,Calebs 使用了几个应用示例来说明 ML 工程角色的简单性和复杂性。

文章的后半部分指出了将软件工程的原理应用到机器学习过程中。

这篇文章非常适合:

  • 希望从高层次了解 ML 工程角色需要什么的数据科学家
  • 希望了解如何改进现有流程的机器学习工程师

[## 从数据科学转向机器学习工程

机器学习和软件的世界正在发生变化

towardsdatascience.com](/moving-from-data-science-to-machine-learning-engineering-68916173eaf3)

我希望这篇文章对你有用。

要联系我或找到更多类似本文的内容,请执行以下操作:

  1. 订阅我的 YouTube 频道 视频内容即将上线 这里
  2. 跟着我上
  3. 通过 LinkedIn 联系我
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值