KDNuggets 博客中文翻译(一百六十七)

原文:KDNuggets

协议:CC BY-NC-SA 4.0

K-Means 和其他聚类算法:使用 Python 的快速介绍

原文:www.kdnuggets.com/2017/03/k-means-clustering-algorithms-intro-python.html

Nikos Koufos,LearnDataSci 作者。

聚类是将对象分组,使得同一组(簇)中的对象彼此之间的相似度高于其他组(簇)中的对象。在本次介绍性聚类分析教程中,我们将查看一些 Python 中的算法,以便你对实际数据集上的聚类基础知识有一个基本了解。

数据集


我们的前三名课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT


对于聚类问题,我们将使用著名的 Zachary’s Karate Club 数据集。数据集背后的故事很简单:曾经有一个空手道俱乐部,俱乐部中有一位管理员“John A”和一位教练“Mr. Hi”(均为化名)。然后他们之间发生了冲突,导致学生(节点)分成了两组。一组跟随 John,另一组跟随 Mr. Hi。

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

来源:维基百科

使用 Python 开始进行聚类

不过,讲解到此为止,我们直接进入你来到这里的主要原因——代码本身。首先,你需要安装 scikit-learnnetworkx 库来完成本教程。如果你不知道怎么做,上面的链接应该能帮到你。另外,你可以通过 Github 获取本教程的源代码并跟随操作。

通常,我们想要检查的数据集以文本形式(JSON、Excel、简单的 txt 文件等)提供,但在我们的案例中,networkx 为我们提供了它。此外,为了比较我们的算法,我们希望知道成员之间的真实关系(谁跟随谁),但遗憾的是没有提供。不过,通过这两行代码,你将能够加载数据并存储真实情况(从现在起我们称之为真实数据):

# Load and Store both data and groundtruth of Zachary's Karate Club
G = nx.karate_club_graph()
groundTruth = [0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1]

数据预处理的最后一步是将图形转换为矩阵(这是我们算法所需的输入)。这也非常简单:

def graphToEdgeMatrix(G):

    # Initialize Edge Matrix
    edgeMat = [[0 for x in range(len(G))] for y in range(len(G))]

    # For loop to set 0 or 1 ( diagonal elements are set to 1)
    for node in G:
        tempNeighList = G.neighbors(node)
        for neighbor in tempNeighList:
            edgeMat[node][neighbor] = 1
        edgeMat[node][node] = 1

    return edgeMat

在我们深入聚类技术之前,我希望你能对我们的数据有一个可视化。所以,让我们编写一个简单的函数来实现这一点:

def drawCommunities(G, partition, pos):
    # G is graph in networkx form
    # Partition is a dict containing info on clusters
    # Pos is base on networkx spring layout (nx.spring_layout(G))

    # For separating communities colors
    dictList = defaultdict(list)
    nodelist = []
    for node, com in partition.items():
        dictList[com].append(node)

    # Get size of Communities
    size = len(set(partition.values()))

    # For loop to assign communities colors
    for i in range(size):

        amplifier = i % 3
        multi = (i / 3) * 0.3

        red = green = blue = 0

        if amplifier == 0:
            red = 0.1 + multi
        elif amplifier == 1:
            green = 0.1 + multi
        else:
            blue = 0.1 + multi

        # Draw Nodes
        nx.draw_networkx_nodes(G, pos,
                               nodelist=dictList[i],
                               node_color=[0.0 + red, 0.0 + green, 0.0 + blue],
                               node_size=500,
                               alpha=0.8)

    # Draw edges and final plot
    plt.title("Zachary's Karate Club")
    nx.draw_networkx_edges(G, pos, alpha=0.5)

这个函数的作用是简单地提取结果中的聚类数量,然后为每个聚类分配不同的颜色(对于给定时间最多 10 个颜色即可),然后进行绘图。

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

聚类算法

一些聚类算法会很好地对你的数据进行聚类,而另一些可能会失败。这是聚类问题如此困难的主要原因之一。但不用担心,我们不会让你在选择的海洋中迷失。我们将讨论几种已知表现非常好的算法。

K-均值聚类

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

来源:github.com/nitoyon/tech.nitoyon.com

K-均值被许多人认为是聚类的黄金标准,因为它的简单性和性能,它是我们将尝试的第一个算法。当你完全不知道使用哪个算法时,K-均值通常是首选。请记住,K-均值有时可能表现不佳,因为它的概念是:球形聚类可分离,以便均值收敛到聚类中心。要简单地构建和训练一个 K-均值模型,请使用以下几行:

# K-means Clustering Model
kmeans = cluster.KMeans(n_clusters=kClusters, n_init=200)
kmeans.fit(edgeMat)

# Transform our data to list form and store them in results list
results.append(list(kmeans.labels_))

聚合聚类

聚合聚类的主要思想是每个节点从自己的聚类开始,然后递归地与增加最小链接距离的聚类对合并。聚合聚类(以及一般的层次聚类)的主要优点是你不需要指定聚类的数量。当然,这也有代价:性能。不过,在 scikit 的实现中,你可以指定聚类的数量以帮助算法的性能。要创建和训练一个聚合模型,请使用以下代码:

# Agglomerative Clustering Model
agglomerative = cluster.AgglomerativeClustering(n_clusters=kClusters, linkage="ward")
agglomerative.fit(edgeMat)

# Transform our data to list form and store them in results list
results.append(list(agglomerative.labels_))

光谱

光谱聚类技术将聚类应用于归一化拉普拉斯的投影。在图像聚类方面,光谱聚类效果非常好。请查看以下几行 Python 代码,了解所有的魔法:

# Spectral Clustering Model
spectral = cluster.SpectralClustering(n_clusters=kClusters, affinity="precomputed", n_init= 200)
spectral.fit(edgeMat)

# Transform our data to list form and store them in results list
results.append(list(spectral.labels_))

亲和传播

这个算法有些不同。与之前的算法不同,你会发现 AF 在运行算法之前不需要确定聚类的数量。AF 在处理许多计算机视觉和生物学问题上表现非常好,比如人脸图像聚类和识别调控转录本:

# Affinity Propagation Clustering Model
affinity = cluster.affinity_propagation(S=edgeMat, max_iter=200, damping=0.6)

# Transform our data to list form and store them in results list
results.append(list(affinity[1]))

指标与绘图

现在,是时候选择哪个算法更适合我们的数据了。对于小数据集,简单的可视化结果可能效果不错,但试想一下有一千个甚至一万个节点的图形。这对于人眼来说会有点混乱。所以,让我展示如何计算调整兰德指数(ARS)和归一化互信息(NMI):

# Append the results into lists
for x in results:
    nmiResults.append(normalized_mutual_info_score(groundTruth, x))
    arsResults.append(adjusted_rand_score(groundTruth, x))

如果你对这些指标不太熟悉,这里有一个简短的解释:

归一化互信息(NMI)

两个随机变量的互信息是衡量这两个变量之间相互依赖的度量。归一化互信息是对互信息(MI)得分进行归一化,将结果缩放到 0(无互信息)到 1(完美相关)之间。换句话说,0 表示不相似,1 表示完全匹配。

调整兰德指数(ARS)

调整兰德指数则通过考虑所有样本对,并统计在预测和真实聚类中分配到相同或不同聚类的样本对,来计算两个聚类之间的相似度。如果这有点难以理解,请记住,目前的 0 表示最低相似度,而 1 表示最高相似度。

因此,为了得到这些指标(NMI 和 ARS)的组合,我们只需计算它们总和的平均值。记住,数值越高,结果越好。

下面,我绘制了评分评估图,以便我们能更好地理解我们的结果。我们可以用很多方式绘制它们,比如点图、折线图,但我认为条形图在我们的情况下更好。为此,只需使用以下代码:

# Code for plotting results

# Average of NMI and ARS
y = [sum(x) / 2 for x in zip(nmiResults, arsResults)]

xlabels = ['Spectral', 'Agglomerative', 'Kmeans', 'Affinity Propagation']

fig = plt.figure()
ax = fig.add_subplot(111)

# Set parameters for plotting
ind = np.arange(len(y))
width = 0.35

# Create barchart and set the axis limits and titles
ax.bar(ind, y, width,color='blue', error_kw=dict(elinewidth=2, ecolor='red'))
ax.set_xlim(-width, len(ind)+width)
ax.set_ylim(0,2)
ax.set_ylabel('Average Score (NMI, ARS)')
ax.set_title('Score Evaluation')

# Add the xlabels to the chart
ax.set_xticks(ind + width / 2)
xtickNames = ax.set_xticklabels(xlabels)
plt.setp(xtickNames, fontsize=12)

# Add the actual value on top of each chart
for i, v in enumerate(y):
    ax.text( i, v, str(round(v, 2)), color='blue', fontweight='bold')

# Show the final plot
plt.show()

正如你在下方图表中看到的,K-means 和层次聚类在我们的数据集中表现最佳(最佳可能结果)。当然,这并不意味着谱聚类和 AF 算法表现较差,只是它们不适合我们的数据。

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

好了,这就是全部内容!

感谢你参与这个聚类入门。我希望你在观察如何轻松操作公共数据集并在 Python 中应用几种不同的聚类算法时,能够发现一些价值。如果你有任何问题,请在下方评论区告诉我,也可以随意附上你尝试过的聚类项目!

个人简介:尼科斯·库福斯LearnDataSci 的作者,希腊伊奥尼纳大学计算机科学与工程研究生,并担任计算机科学本科教学助理。

原文。转载已获许可。

相关:

  • 比较聚类技术:简明技术概述

  • 使用聚类自动分割数据

  • 聚类关键术语解析

更多相关主题

使用 Dask 进行 K-means 聚类:猫咪图片的图像滤镜

原文:www.kdnuggets.com/2019/06/k-means-clustering-dask-image-filters.html

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

Luciano Strika提供,MercadoLibre

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

对图像应用滤镜对任何人来说都不是新概念。我们拍一张照片,对其进行一些更改,然后它看起来更酷。但是人工智能的作用在哪里?让我们尝试一下用 K Means 聚类进行无监督机器学习的有趣用例。

我之前写过K Means 聚类,所以我会假设你对这个算法已经熟悉。如果你不熟悉,可以查看我写的深入介绍

此外,我还尝试了用自编码器进行图像压缩(好吧,是重建),效果有好有坏。

然而,这一次,我的目标是不重建最好的图像,而只是查看用最少颜色重建图片的效果。

与使图片尽可能接近原始图片不同,我只是希望我们看完之后能说“真棒!”。

那我们该如何做呢?很高兴你问了。

如何使用 K-means 聚类进行图像滤镜

首先,永远记住图像只是像素向量。每个像素是三个介于 0 到 255 之间的整数值的元组(无符号字节),代表该像素颜色的 RGB 值。

我们想要使用 K-means 聚类来找到最能表征图像k颜色。这意味着我们可以将每个像素视为单个数据点(在 3 维空间中),并进行聚类。

首先,我们需要在 Python 中将图像转换为像素向量。以下是实现方法。

顺便说一句,我认为vector_of_pixels函数不需要使用 Python 列表。我确信一定有办法展平 numpy 数组,只是我没找到(至少没有找到按照我想要的顺序进行展平的方法)。

如果你能想到任何方法,请在评论中告诉我!

下一步是拟合模型到图像,以便它将像素聚类k种颜色。然后,只需将相应的聚类颜色分配给图像中的每个位置即可。

例如,也许我们的图片只有三种颜色:两种红色和一种绿色。如果我们将其拟合到 2 个聚类,那么所有红色像素都会变成不同的红色阴影(被聚在一起),其他的则会变成绿色。

但解释够了,让我们看看程序的实际效果!

和往常一样,你可以用任何你想要的图片自行运行,以下是带有代码的GitHub 仓库

结果

我们将把滤镜应用于小猫的图片,这些图片取自令人惊叹的“Cats vs Dogs”kaggle 数据集

我们将从一张猫的图片开始,并使用不同的k值应用滤镜。以下是原始图片:

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

首先,我们来检查一下这张图片最初有多少种颜色。

仅用一行Numpy代码,我们计算了这张图片上像素的唯一值。这张图片特别有243 种不同颜色,尽管它总共有166167 个像素

现在,让我们看看将其聚类为 2、5 和 10 种不同颜色后的结果。

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

只有两种颜色,它所做的只是标记最暗和最亮的区域。不过,如果你是艺术家,正在用黑白(例如墨水)绘制某些东西,并希望看到参考图像的轮廓,这可能会很有用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传只有 5 种不同的颜色,这只猫已经可以辨认出来了!!这只小猫的图片是使用 K 均值聚类压缩的。10 种颜色的图片可能看起来有点迷幻,但它比较清晰地展示了原图的内容。

你注意到什么趋势了吗?我们添加的每一种颜色的回报递减。拥有 2 种颜色和 5 种颜色之间的差别远大于 5 种和 10 种之间的差别。然而,10 种颜色时,平坦区域更小,细节更丰富。接下来看看 15 种和 24 种颜色!

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

尽管很明显,上面的图片使用了 24 种颜色的滤镜(原始数量的 10%),但我们足够好地展示了猫,并达到了一定的细节水平。

继续看另一张图片:这是原图(256 种不同颜色),这是压缩后的图片(24 种颜色)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传256 种颜色与 24 种颜色。注意到有什么区别吗?

有趣的是,“压缩”图像的大小为 18KB,而未压缩的图像为 16KB。我不太清楚为什么会这样,因为压缩器是相当复杂的,但希望看到你们在评论中的理论。

结论

我们能够仅用原图 10% 的颜色生成新图像,且看起来非常相似。得益于 K-means 聚类,我们还获得了一些酷炫的滤镜。你能想到其他有趣的聚类应用吗?你认为其他聚类技术会产生更有趣的结果吗?

如果你想回答这些问题,可以通过 TwitterMediumDev.to 与我联系。

简介: Luciano Strika 是布宜诺斯艾利斯大学的计算机科学学生,兼任 MercadoLibre 的数据科学家。他还在www.datastuff.tech撰写有关机器学习和数据的文章。

原文。经许可转载。

相关:

  • K-Means 聚类:推荐系统的无监督学习

  • 提升你的图像分类模型

  • 介绍 Dask-SearchCV:使用 Scikit-Learn 进行分布式超参数优化


我们的前三个课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. Google 网络安全证书 - 快速进入网络安全职业。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. Google 数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. Google IT 支持专业证书 - 支持你的组织的 IT


更多相关话题

K-Means 比 Scikit-learn 快 8 倍,误差低 27 倍,代码仅需 25 行

原文:www.kdnuggets.com/2021/01/k-means-faster-lower-error-scikit-learn.html

评论

Jakub Adamczyk,计算机科学学生,Python 和机器学习爱好者

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


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速通道进入网络安全职业。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升您的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持您的组织的 IT


我上一篇关于 faiss 库的文章中,我展示了如何通过使用Facebook 的 faiss 库将 kNN 加速至比 Scikit-learn 快 300 倍,仅需 20 行代码。但我们可以用它做更多的事情,包括更快且更准确的 K-Means 聚类,代码仅需 25 行!

K-Means 是一种迭代算法,它将数据点聚类到 k 个簇中,每个簇由一个均值/中心点(质心)表示。训练从一些初始猜测开始,然后在两个步骤之间交替进行:分配和更新。

在分配阶段,我们将每个点分配到最近的簇(使用点与质心之间的欧几里得距离)。在更新步骤中,我们通过计算当前步骤中分配给该簇的所有点的均值来重新计算每个质心。

聚类的最终质量计算为簇内距离的总和,对于每个簇,我们计算该簇内点与其质心之间的欧几里得距离的总和。这也称为惯性。

对于预测,我们在新点和质心之间执行 1-最近邻搜索(kNN,k = 1)。

Scikit-learn 与 faiss

在这两个库中,我们需要指定算法的超参数:簇的数量、重启的次数(每次从不同的初始猜测开始)以及最大迭代次数。

从例子中可以看出,该算法的核心是搜索最近邻,特别是最近的质心,适用于训练和预测。这也是 faiss 比 Scikit-learn 快几个数量级的地方!它利用了出色的 C++ 实现、尽可能的并发,甚至可以使用 GPU(如果你需要的话)。

使用 faiss 实现 K-Means 聚类

faiss 的一个伟大特点是它提供了安装和构建说明以及带有示例的优秀文档。安装后,我们可以编写实际的聚类代码。代码相当简单,因为我们只是模仿 Scikit-learn 的 API。

重要元素:

  • faiss 有一个内置的Kmeans类专门用于此任务,但其参数的名称与 Scikit-learn 不同(参见文档)。

  • 我们必须确保使用np.float32类型,因为 faiss 仅支持这种类型。

  • kmeans.obj通过训练返回一个误差列表,因此为了得到最终的误差,就像在 Scikit-learn 中一样,我们使用[-1]索引。

  • 预测是通过Index数据结构完成的,这是 faiss 的基本构建块,所有的最近邻搜索都使用它。

  • 在预测中,我们进行 kNN 搜索,k = 1,返回*自.cluster_centers_中的最近质心的索引(索引[1],因为index.search()*返回距离和索引)。

时间和准确性比较

我选择了一些在 Scikit-learn 中可用的流行数据集进行比较。比较了训练和预测时间。为了更容易阅读,我明确写出基于 faiss 的聚类比 Scikit-learn 快多少倍。为了比较误差,我只写了基于 faiss 的聚类实现了多少倍的更低误差(因为数字较大且不太具参考性)。

所有这些时间都是通过*time.process_time()*函数测量的,该函数测量进程时间而非挂钟时间,以获得更准确的结果。结果是 100 次运行的平均值,除了 MNIST,因为 Scikit-learn 花费的时间太长,我只做了 5 次运行。

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

训练时间(图像由作者提供)。

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

预测时间(图像由作者提供)。

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

训练误差(图像由作者提供)。

如我们所见,对于小数据集的 K-Means 聚类(前 4 个数据集),基于 faiss 的版本训练速度较慢且误差较大。对于预测,它的表现普遍更快。

对于较大的 MNIST 数据集,faiss 明显胜出。训练速度快 20.5 倍是巨大的,特别是因为它将时间从将近 3 分钟减少到不到 8 秒!预测速度快 1.5 倍也是不错的。然而,真正的成就的是误差降低了 27.5 倍。这意味着对于较大的现实世界数据集,基于 faiss 的版本准确性高得多。而且这只需要 25 行代码!

基于此:如果你有一个大(至少几千个样本)的现实世界数据集,基于 faiss 的版本就更好。对于小的玩具数据集,Scikit-learn 是更好的选择;然而,如果你有 GPU,GPU 加速的 faiss 版本可能会更快(我还未检查过以确保公平的 CPU 比较)。

总结

通过 25 行代码,我们可以利用 faiss 库为 K-Means 聚类提供显著的速度和准确性提升,适用于合理大小的数据集。如果需要,你可以使用 GPU、多个 GPU 等进一步提高,faiss 文档中对此做了很好的解释。

原文。已获许可转载。

相关:

更多相关话题

Kaggle Kernels 初学者指南:逐步教程

原文:www.kdnuggets.com/2019/07/kaggle-kernels-guide-beginners-tutorial.html

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

Abdul Majed Raja,思科分析师提供

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

不久前,我写了一篇标题为“用 Kaggle Kernels 展示你的数据科学技能”的文章,后来意识到尽管这篇文章很好地阐述了 Kaggle Kernels 如何成为数据科学家的强大作品集,但它并没有解决完全初学者如何开始使用 Kaggle Kernels 的问题。

这是一个试图引导完全初学者并带他们了解 Kaggle Kernels 世界的尝试——让他们能够开始使用。

注册 Kaggle — www.kaggle.com/

如果你没有 Kaggle 账户,第一步是注册 Kaggle。你可以使用 Google 账户或 Facebook 账户来创建新的 Kaggle 账户并登录。如果以上都不可行,你可以输入你的电子邮件地址和首选密码来创建新的账户。

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

Kaggle 注册页面

登录 Kaggle

如果你已经有账户或者刚刚创建了一个,请点击页面右上角的登录按钮来启动登录过程。同样,你将有一个选项使用 Google / Facebook / Yahoo 登录,或者使用你在创建账户时输入的用户名和密码。

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

Kaggle 登录/注册界面

Kaggle 控制面板

登录后,你将进入 Kaggle 控制面板。(这只是欢迎页面,我不知道该怎么称呼,所以称之为控制面板)。

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

这是你登录后立即看到的首页(如果你是从 www.kaggle.com/ 登录的)。它包含许多组件,其中一些如下:

  • 最近更新或由 Kaggle 推荐的 Kaggle Kernels 的信息流

  • 个人资料摘要(右侧边栏的最上方)

  • 职位广告(右侧边栏)

  • 你的比赛(右侧边栏—向下滚动后)

  • 你的 Kernels(右侧边栏—向下滚动后)

接下来我们要去的是导航栏顶部的Kernels按钮。

Kaggle Kernels 列表(最热):

一旦我们点击 Kaggle 旅程中任何位置的顶部 Kernels 按钮,我们将会看到这个屏幕。

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

这是每个人都希望看到的界面,因为它像是 Kernels 的首页,这意味着你的 Kernel 更有可能获得更多的曝光。如果 Kernel 最终出现在这里,默认的排序方式是热门度,这是基于 Kaggle 秘密算法的,旨在展示相关的 Kernels,但它也提供了其他排序选项,如新建、最多票数等。Kaggle 也使用这个页面来宣传是否有 Kernel 比赛正在进行或即将进行。

在这里,Kernel 比赛是 Kaggle 的一个比赛,但由于比赛的性质(输出是 Kaggle Kernel,并且通常侧重于讲故事),它不属于比赛层级。Data Science for Good 是一系列 Kernel 比赛,数据科学家 / Kaggle 用户需要使用数据科学帮助解决社会问题。为了更好地理解,你可以查看 Kernel Grandmaster Shivam Bansal 的 Kernels,他已经多次赢得这些比赛。

Kaggle Kernels — 新建 / 创建:

现在我们已经理解了 Kaggle Kernels 的概念,我们可以直接进入新建 Kernels 的过程。创建 Kaggle Kernel 主要有两种方式:

  1. 从 Kaggle Kernels(首页)使用新建 Kernel 按钮

  2. 从数据集页面使用新建 Kernel 按钮

方法 #1:从 Kaggle Kernels(首页)使用新建 Kernel 按钮

正如上面的截图所示,从 Kernels 页面点击新建 Kernel 按钮将允许你创建一个新的 Kernel。如果你想练习自己的内容或计划输入自己的数据集,这个方法是不错的。如果你想为 Kaggle 上已存在的数据集创建 Kernel,我个人不建议使用这种方法。

方法 #2:从数据集页面使用新建 Kernel 按钮

这是我用来创建新 Kernels 最常用的方法之一。你可以打开你感兴趣的数据集页面(如下面截图所示),然后点击其中的新建 Kernel 按钮。这个方法的好处是,与方法 #1 不同,方法 #2 创建的 Kernel 默认会附带 Kaggle 数据集,因此将数据集输入到你的 Kernel 的过程变得更简单、更快速、更直接。

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

www.kaggle.com/google/google-landmarks-dataset

Kaggle Kernels — Kernel 类型:

无论是方法 #1 还是方法 #2,一旦点击新建 Kernel,你将看到一个模态窗口,让你选择要创建的 Kaggle Kernel 类型。

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

大致分为两类 — 1. 脚本 vs 2. 笔记本。

正如我们所知,Notebook(基于单元格的布局)就是 Jupyter Notebook,而脚本则是你可能会在 Pycharm、Sublime Text 或 RStudio 中编写的代码。此外,对于 R 用户而言,脚本是 RMarkdown 的 Kernel 类型——一种通过编程方式生成报告的优美方式。

总结一下 Kernels 的类型:

  • 脚本

    • Python

    • R

    • RMarkdown

  • Notebook

    Python *****R

Kaggle Kernels — Kernel 语言:

这种第二层的 Kernel 语言选择仅在第一层 Kernel 类型选择之后发生。

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

如上面的 Kaggle Kernel 脚本类型 GIF 所示,通过进入设置并选择所需语言(R / Py / RMarkdown)可以更改 Kernel 的语言。相同的设置还提供了将 Kernel 分享设为公开的选项(默认情况下是私密的,除非设置为公开)。如果你正在进行大学作业或自学并且不希望公开代码,通常使用私密 Kernels。参与竞赛的 Kagglers 也会使用私密 Kernels 来利用 Kaggle 的计算能力,但不透露他们的代码/方法。

Notebook Kernel:

类似于上面的 GIF,其中选择了 Kernel 类型 Script,你也可以选择 Notebook 来创建一个 Notebook Kernel。

RMarkdown Kernel —(Kernel 类型:脚本 > RMarkdown)

RMarkdown 通过结合 R 和 Markdown 生成包含交互式可视化的分析报告。虽然这是解释 RMarkdown 的最简单方法,但它的用途和潜力远远超出了这个定义。

幸运的是,Kaggle Kernel 脚本支持 Rmarkdown,这意味着它可以帮助创建交互式文档以及许多 Notebook 情境下无法实现的功能。这是一个在 Kaggle Kernel 上构建的a full-fledged Interactive Dashboard,由Saba Tavoosi,展示了 Kaggle Kernels 的潜力,不仅用于构建机器学习模型,还可以进行最佳形式的交互式讲故事。如果你有兴趣学习如何使用 flexdashboard 构建仪表板,可以查看这门课程

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

Kernel Courtesy: Saba Tavoosi

复制和编辑(以前称为 Forking)

类似于 Github 的 Fork 选项,如果你想使用现有的 Kaggle Kernel 并在自己的空间中进行修改或增添个人风格,你需要使用右上角的蓝色按钮 复制并编辑。事实上,在 Kaggle 竞争跟踪中的许多高分公共 Kernel 通常是 forks of forks forks,即一个 Kaggle 用户会在另一个 Kaggle 用户已经构建的模型上进行改进,并将其作为公共 Kernel 提供。

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

标记的符号表示一个 Forked / 复制并编辑的 Kernel

公开 / 私有 Kernel

正如我们在另一部分看到的,Kaggle Kernel 的访问设置可以是公开或私有。公开 Kernel(显然名字就说明了)对所有人(包括 Kagglers 和非 Kagglers)可用并且可见。私有 Kernel 仅对所有者(创建者)和所有者分享 Kernel 的人可用。一个公开的 Kernel 也可以基于私有数据集。例如,如果这是一个机器学习竞赛,你用一些第三方数据进行了特征工程,并且不希望在竞赛期间泄露数据。这是 Kagglers 通常将数据集设为私有,而将 Kernel 设为公开的典型场景,以便其他人可以看到他们的方法并从中学习。

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

上图展示了如何将现有 Kernel 的访问设置更改为私有或公开。所有新创建的 Kernel 默认都是私有的(截至本文撰写时),如果需要,所有者可以将其更改为公开。

TL;DR — 如何创建一个新的 Kaggle Kernel

如果上述内容初看起来有些难以理解,这一部分将帮助你创建第一个 Kaggle Kernel。

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

步骤:

  1. 使用你的凭证登录 Kaggle

  2. 访问任何公开的 Kaggle 数据集

  3. 点击右上角的 新建 Kernel(蓝色按钮)

  4. 选择你感兴趣的 Notebook/Script

  5. 如果 Python 是你的首选语言,就保持不变;如果是 R,那么请前往右侧的 设置 并点击展开项,在语言旁边你会看到 Python,点击它可以更改为 R

  6. 前往屏幕的编辑器部分 / 面板(左侧),开始编写你的精彩代码(上面的 GIF 也展示了如何使用你创建 Kernel 的数据集)

  7. 一旦你的代码完成,点击右上角的 提交(蓝色按钮)

  8. 如果你的 Kernel 执行成功(没有任何错误),请将你的 Kernel 设为公开(可以通过编辑 Kernel 的 设置 > 共享(公开) 或重新打开 Kernel 并点击顶部的 访问 按钮)

  9. 目前,你的第一个 Kaggle Kernel 应该准备好与网络中的朋友分享了!

查看这个Kaggle 视频获取帮助。

对于许多 Kagglers 来说,竞赛轨道是他们的乐趣所在,但对我来说,Kaggle Kernels 轨道是我的最爱,它为我们提供了从数据准备到数据可视化——机器学习建模到讲故事的全栈数据科学旅程的巨大潜力。希望你也会喜欢。祝你在 Kaggle Kernel 旅程中好运。

查看我的Kaggle Kernels 在我的 Kaggle 个人资料中并在我的 LinkedIn 个人资料上与我分享你的反馈。这个教程中使用的视频/GIF/截图可在我的 GitHub上找到。

简历: AbdulMajedRaja 是 Cisco 的分析师。

原文。经许可转载。

相关:

  • 展示你的数据科学技能与 Kaggle Kernels

  • 如何制作令人惊叹的 3D 图以提升讲故事效果

  • 使用 Coindeskr 和 Shiny 在 R 中构建每日比特币价格追踪器


我们的前三个课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT


更多相关内容

Kaggle Learn 是“更快的数据科学教育”吗?

原文:www.kdnuggets.com/2019/08/kaggle-learn-faster-data-science-education.html

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

Kaggle Learn 自称为“更快的数据科学教育”,是一个免费的微课程资源库,涵盖了各种“[p]可以立即应用的实际数据技能”。

如你所知,各种免费和低成本的数据科学教育资源可以通过众多在线平台获得。那么,为什么我觉得有必要写关于另一个数据科学学习资源的文章呢?


我们的三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. Google 网络安全证书 - 快速进入网络安全职业。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. Google 数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. Google IT 支持专业证书 - 支持你所在组织的 IT


当我计划开始一个新的秋季学习计划时——一旦那些懒洋洋的夏日离开我的系统——我想先找到一些简明的复习材料,复习我以前学过的概念和已经掌握但可能有些生疏的技能。需要明确的是,Kaggle Learn 并未专门将其微课程标榜为复习材料;然而,到目前为止,我发现它们非常适合这个需求(尽管,诚然,我还处于早期阶段)。

以下是 Kaggle Learn 目前的微课程列表。我(或多或少)从顶部开始,并按顺序完成列表中的内容,然后再开始新的学习冒险。

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

当前的微课程列表来自于Kaggle Learn

Kaggle Learn 并不是全新推出的,它于 2018 年 1 月上线,自那时以来增长了 1500%(根据 Kaggle Learn 的数据)。然而,它的短课程方法对实际数据技能的培养似乎使其与其他资源有所不同,课程时间通常在 3 到 8 小时之间。

为了了解更多关于 Kaggle Learn 的信息,我联系了该项目的负责人,Dan Becker,并向他询问了一些问题。他回答了关于平台、内容和未来的以下见解。

Matthew Mayo: 微课程的推动因素是什么,与更传统、更长的在线课程相比?

Dan Becker: 我们在几个方面都很独特。

首先,我们更注重实际应用而非学术理论。当我从事数据科学咨询工作时,我曾为数十家公司解决商业问题。传统课程往往关注许多实际中并不重要的技能,同时忽视了许多最重要的内容。例如,学生可能会学会从头编写一个算法(而实际上没人需要你再做这种事),但你不会学会如何操控数据以将其导入实现该算法的主流库中。

我也参与过多次招聘,我知道有趣的、动手实践的项目能够引起招聘经理的关注。因此,我们将课程做得非常简短,以便你能更快地开始做项目。个人项目也帮助你专注于实际工作中所涉及的技能。另一个好处是,大多数人喜欢他们的个人项目,因此他们会找到更多时间去做……而传统课程可能会变得无聊,拖延几个月。

因此,Kaggle 上的每门课程都旨在成为开始做新类型数据科学项目的最快途径。

从战略上看,Kaggle 处于独特的位置。大多数公司都对其课程收费。在线课程的价格非常公道(远远低于你在获得数据科学工作后能赚到的钱),而且课程的创建者们也付出了大量的努力来制作这些内容。但当某些人需要收费时,他们会感受到创建更长课程的压力。很难对一个 4 小时的课程收取几百或几千美元的费用,然后告诉用户“此时你最好去做一个个人项目”。由于我们的课程是免费的,我们不感受到填充额外内容的压力。

Matthew Mayo: 你怎么看待 Kaggle Learn 的未来发展?你们有其他的微课程计划吗?会有微课程的替代方案吗?

Dan Becker: 对于喜欢较长课程的人来说,已经有很多很好的选择。我会将他们引导到其他优秀的在线平台,而不是试图创造另一种版本的相同内容。不过我会警告他们的是:一旦你进入该领域工作,你会学习得更快,因为你是在工作中学习,而不仅仅是在闲暇时间。获得工作的最大资产是个人项目的作品集。所以推迟做个人项目可能会延迟你学习的最快部分。

我们即将发布一个特征工程课程、自然语言处理课程、地理空间分析课程和一个强化学习课程。每个课程仅约 4 小时长。你在这么短的时间内不会成为这些领域的专家。但你会学到足够的知识,能够独立工作,按需寻找新答案,并开始做有趣的工作。

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

来源于 中级机器学习,Kaggle Learn

我从机器学习和 Python 课程开始复习——有很多 Python 内容我不常用——希望在月底之前逐一完成这些课程。完成这些基础之后,将开始接触新的材料。

我鼓励任何寻求短期实用数据技能课程的人查看 Kaggle Learn,无论你是初学者还是寻找一套扎实复习材料的中级学员。虽然这些课程不会在几个小时内让你成为任何领域的专家——事实上,它们也不声称如此——但它们将提供一个简明的实施路径,并从那里继续前进。

相关内容

  • 数据科学学习者常犯的错误的 70%

  • Kaggle Kernels 新手指南:一步步教程

  • 数据科学方法有什么问题?

更多相关内容

数据科学与机器学习 2020:3 个关键发现

原文:www.kdnuggets.com/2020/12/kaggle-survey-2020-data-science-machine-learning.html

评论

Kaggle 最近发布了 2020 年年度**数据科学与机器学习现状**调查的最新结果。


我们的前三个课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速入门网络安全职业。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你的组织 IT


第四年,Kaggle 调查了其数据爱好者社区,分享快速发展的领域中的趋势。基于 20,036 名 Kaggle 成员的反馈,我们创建了这份报告,重点关注当前作为数据科学家的 13%(2,675 名受访者)。

报告概览可以在线查看 这里。另外,你可以查看调查的执行摘要,或查看并互动调查的原始数据

虽然我们建议每个人都花时间详细查看结果,但在这里,我们为你带来调查报告中突出的 3 个关键发现。

1. 薪资差距

报告从第 11 页开始涵盖数据科学家的薪资。报告对美国和印度数据科学家的薪资分布进行了同类比较,还分析了全球数据分布和几个选定国家的中位薪资。虽然这些苹果与橙子的比较较为复杂——例如国家生活成本差异以及数据科学家的薪资分布与所有国家职业的分布显著不同,这些因素显然未被考虑——但第 14 页中各国数据科学家的中位薪资仍展示了全球数据科学家薪资的巨大差距。

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

图 1:各国数据科学家的中位薪资

从各国的薪资数据来看,我们发现美国公司的薪资更高。德国和日本公司紧随其后,薪资显著高于其他包含的地区。

需要注意的是,这只是调查响应的汇总,简单地报告了原始数据。如果有人感兴趣,原始数据可以用来进行更深入和细致的全球数据科学家薪资分析和比较。

2. JupyterLab 是主要开发环境

这一点对很多人来说可能并不令人惊讶,但 JupyterLab 仍然保持着最常用的交互式开发环境的首位,74.1%的受访者报告使用了它。

基于 Jupyter 的 IDE 仍然是数据科学家的首选工具,大约四分之三的 Kaggle 数据科学家使用它。然而,这一比例从去年的 83%下降了。Visual Studio Code 位居第二,使用比例略高于 33%。

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

图 2:流行 IDE 使用情况

剩下的列表包含了主要是基于 Python 的 IDE 和多用途文本编辑器,以及 RStudio 和 MATLAB。这个列表可能提供了一些关于 Python 在该领域相对主导地位的证据,但也提醒我们 R 语言的持续强势地位,以及 MATLAB 的持久性。我们还可以确认,更传统的 IDE 在数据科学和机器学习中的使用并不普遍,可能没有在其他编程学科中的使用那么广泛——尽管我们没有现成的数据来进行比较。

3. 顶级方法与算法

报告的第 19 页展示了数据科学中使用最广泛的方法和算法。

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

图 3:方法和算法使用情况

最常用的算法是线性回归和逻辑回归,其次是决策树和随机森林。在更复杂的方法中,梯度提升机和卷积神经网络是最受欢迎的。

不出所料,线性回归、逻辑回归、各种决策树方法和梯度提升机占据了前列。下一层次的方法包括多种神经网络架构和贝叶斯方法。最后,特定的神经网络架构,如变压器和 GANs,以及进化方法,构成了列表的最后部分。

别忘了查看整个报告,以了解更多关于数据科学家概况、数据科学团队、企业机器学习采用情况、自动化机器学习使用情况等附加主题的信息。同时,也别忘了原始数据可用,供有兴趣进行数据清洗和探索的人使用。

相关

  • 2018 年、2019 年使用的顶级数据科学和机器学习方法

  • 机器学习正在发生:组织采用、实施和投资的调查

  • Kaggle 的数据科学/机器学习竞赛的国际替代平台

更多相关主题

像业余爱好者一样思考,像专家一样行动:来自计算机视觉职业生涯的经验教训

原文:www.kdnuggets.com/2019/05/kanade-lessons-career-computer-vision.html

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

2018 年嵌入式视觉峰会高井博士主旨演讲的要点

高井武男博士 是卡内基梅隆大学的 U.A.和海伦·惠特克教授。他的讲座题目是:像业余爱好者一样思考,像专家一样行动:来自计算机视觉职业生涯的经验教训


我们的前三个课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速入门网络安全职业生涯

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升您的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持您的组织的 IT 工作


高井博士做了一个极具吸引力的演讲,内容丰富且充满幽默。点击这里观看视频。

  • 他从研究生阶段开始,已经从事计算机视觉和机器人学工作 50 年。他的博士论文:计算机识别人脸。

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

  • 他出名的时刻:2001 年 1 月 28 日 - 在超级碗 XXXV 上 - 使用EyeVision进行的行动回放,使用 33 台相机,每台相机配有一台带有索尼相机和大变焦镜头的机器人(当时价格为 80,000 美元的三菱 PA-10)。硬件总成本超过 300 万美元。总电缆长度超过 20 公里。他描述了在活跃比赛期间协调机器人相机进行平移、倾斜、变焦和对焦的挑战。

  • 另一个出名时刻:高井博士在布鲁斯·威利斯电影代理人中出现,在一个 2.5 秒的片段中饰演自己。

  • 什么是“好研究”?即使是经验丰富的研究人员也发现很难清楚回答这个问题。他引用了已故的艾伦·纽厄尔教授

    • 优秀的科学回应真实的现象或实际问题

    • 优秀的科学在于细节

    • 优秀的科学改变世界

  • 进行有用且有趣的研究:

    • 从一个场景开始:设想成功的情景 - 可能发生什么,如何以及在哪里使用?

    • 自由地、愉快地思考

    • 故事展开,你可以谈论它

    • 其他人可以加入

  • 高井博士的教训:

    • 成功的想法通常出乎意料地简单,甚至是幼稚而微不足道的。

    • 对这种简单思考的阻碍:“我知道”的心态。

    • 可靠的执行需要实质性的知识和技能——在这里,专业知识是必要的;然而,我们可能需要克服“专家”偏见;这不是将业余人士配对以提出简单的解决方案,然后让专家执行,而是专家根据需要做出适应。

    • 像业余人士一样思考,像专家一样行动——当你开始解决一个问题时,像新手一样思考,主动避免先入为主的偏见。在实施解决方案时,采取细致和彻底的方法。 Kanade 博士甚至用日语写了这方面的书(并翻译成了除英语外的其他语言)。

  • 多摄像头系统:

    • 他关于多摄像头实时系统的第一篇论文被拒绝了(其中一位审稿人的评论是:“……使用这些多余摄像头的设备太贵而没有用处。”)

    • 他最初通过将真实现实建模为虚拟现实,提出了 Ladar(扫描激光测距仪)。

    • 为了克服 Ladar 的视频限制,他的团队主导了 3D 摄像头和软摄像头的开发,以克服遮挡问题。

    • 大约在 2000 年,他们开发了一个完全数字化的系统,创建了动态虚拟视图(虚拟现实)。

    • 后来的工作包括面部检测、姿态检测。

    • 多摄像头系统、大规模 3D 摄像头现在在许多地方使用,如娱乐(还记得电影《黑客帝国》吗?)

  • Navlab:

    • Navlab 是一个于 1984 年与 DARPA 启动的自动驾驶程序。 这个项目经历了从 Navlab 1 到 Navlab 10 的多个版本。

    • 美国无手驾驶——在 1995 年:Navlab 5 在计算机控制下行驶了从华盛顿 DC 到圣地亚哥的 98.2%的距离。

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

  • 智能头灯:

    • 雪花和雨滴具有很高的反射性。

    • 解决方案:避免光束击中雨滴!

    • 即使在约 1000 fps 的帧率和 1.5 ms 的延迟下,其他系统限制也显现出来。 随着速度的提高,许多问题变得更容易解决!

    • 这方面的一个实际应用将是适用于所有道路驾驶员的自适应远光灯。

  • 研究的价值:

    • 研究不必是新的。

    • “新颖本身并不是一种美德,有用才是。”

    • 预测研究很难:Dr. Kanade 分享了 Lucas-Kanade 光流的故事[Lucas, Kanade ‘81]。大约在 80 年代,他们正在研究跟踪问题。他的学生 Bruce Lucas 提出了一个想法:将泰勒级数展开(已知 300 年)与二次方程的图形解法相结合。Lucas 坚持认为他们应该写一篇论文,而 Dr. Kanade 坚持认为不应该发表,因为这似乎很平凡……学生坚持,最后教授妥协……允许学生在一个冷门期刊上发表。结果,Dr. Kanade 发表的 400 多篇论文中,这篇论文成为了被引用最多的论文。每个使用视频处理的算法都使用了这个概念。

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

  • 当前的计算机视觉正处于“完美风暴”的状态

    • 新型、普及型、嵌入式、偶尔超人类的视觉传感器

    • Dr. Kanade 预测这个领域将会出现爆炸性的增长和进展

关于嵌入式视觉联盟和 2018 年嵌入式视觉峰会

版权归:Jeff Bier,BDTI 创始人兼总裁,Embedded Vision Alliance 创始人

  • 嵌入式视觉联盟是一个由公司组成的合作伙伴关系,致力于加速和促进计算机视觉在解决实际问题中的应用——“我们旨在激发和创造能够‘看见’的产品”

  • 嵌入式视觉联盟致力于将视觉感知融入各种系统和设备

  • 从 2011 年起,Embedded Vision Alliance 从 16 名成员开始,现在已有 90 名成员

  • 主题:在边缘和云端实现计算机视觉——几乎一半的联盟成员已经在使用云计算,约 75%已经在使用边缘视觉。云计算将成为嵌入式视觉解决方案的主要推动力。

  • 视觉年度产品奖设立了 8 个类别:处理器、相机、软件、汽车、AI、云计算、开发者、最终产品

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

  • 一名没有计算机视觉经验的开发者可以在几个月内创建一个有效的基于云的视觉解决方案(Chris Adzima 的talk

  • 3D 相机模块现在的价格大约为 20-30 美元(Guillaume Girardin 的talk

  • 二值神经网络可以显著降低 DNN 推理的成本和功耗(Abdullah Raouf, Mohammad Rastegari - talk

  • 一个 DNN 可以为另一个 DNN 生成新的训练数据(Peter Corcoran 的talk

  • 即使智能相机普及,我们也可以保护隐私(Charlotte Dryden 的talk

  • Vision Tank:一场激动人心的创业竞赛,争夺“最具创新性的视觉基础产品”奖。决赛入围者:

  • 2018 年嵌入式视觉峰会的亮点包括:

    • 1200 名与会者

    • 90+个演讲,跨越 2 天,6 个主题

    • 来自 50 多家展商的 100+个实际演示

    • 84%的与会者积极开发或计划开发基于视觉的产品

每年,这个活动都在积聚越来越多的关注和声势。

2019 年嵌入式视觉峰会将于下周在加利福尼亚州圣克拉拉的圣克拉拉会议中心举行。以下是关键日期和事件:

  • 2018 年 5 月 20 日,星期一:关于 TensorFlow 2.0 的深度学习和 OpenCV 中的计算机视觉应用的培训课程。[需要在活动网站上单独注册]

  • 2018 年 5 月 21 日至 22 日,星期二和星期三:主会议和视觉技术展示

  • 2018 年 5 月 23 日,星期四:Intel、Khronos 和 Synopsys 主办的视觉技术研讨会 [需要通过活动网站单独注册]

所以,赶快注册 2019 年嵌入式视觉峰会吧。这里是链接:www.embedded-vision.com/summit

一些关于计算机视觉的 KDNuggets 文章

更多相关内容

人工“人工智能”泡沫与网络安全的未来

原文:www.kdnuggets.com/2017/06/kaspersky-artificial-intelligence-bubble-future-cybersecurity.html

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

由尤金·卡巴斯基,卡巴斯基实验室的首席执行官兼联合创始人。

我认为最近的文章《纽约时报》关于硅谷“人工智能”繁荣的文章让许多人对网络安全的未来——无论是近期的还是遥远的——进行了深思。

我想这些问题会被考虑到:

  • 对于‘人工智能’的狂热痴迷——现在只是存在于未来学家的幻想中——将会导致什么?

  • 投资者还会投入多少亿资金到那些充其量只是“发明”了几十年前已经被发明的东西,最糟糕的情况是——结果不过是夸大的市场营销……假象的项目?

  • 机器学习网络安全技术发展的真正机会是什么?

  • 在这个美丽新世界中,人类专家将扮演什么角色?

有时候,当我和这里硅谷的人工智能爱好者待在一起时,我感觉就像是一个无神论者在一个福音派大会上。

——杰瑞·卡普兰,计算机科学家、作家、未来学家和连续创业者(包括赛门铁克的联合创始人)

现在发生的事情在“人工智能”领域就像一个肥皂泡。我们都知道,如果肥皂泡不断被小丑们吹大(无意冒犯!):它们最终会破裂

现在,当然,没有大胆的举措和冒险的投资,奇幻的未来永远不会成为现实。但今天的问题是,随着对“人工智能”(记住,今天的人工智能并不存在;因此有引号)的广泛热情,这些创业公司壳体开始出现。

几个初创公司?你可能会问,这有什么大不了的。

问题在于,这些壳公司吸引的投资不是数百万,而是数十亿美元——通过迎合围绕‘AI’ 机器学习的新一波热潮。事实上,机器学习已经存在了几十年:它最早在 1959 年被定义,在 70 年代开始运作,在 90 年代蓬勃发展,并且仍在蓬勃发展!快进到今天,这种‘新’技术被重新称为‘人工智能’;它带有前沿科学的光环;它拥有最光鲜的宣传册;它拥有最炫目的营销活动。所有这些都旨在迎合人类对奇迹的固有信仰——以及对所谓‘传统’技术的阴谋论。遗憾的是,网络安全领域也未能逃脱这种新的‘人工智能’泡沫……

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

在网络安全领域,新推出的“革命性”产品仿佛凭空解决了所有安全问题,保护了每个人和每个事物免受所有网络威胁:这些壳公司不择手段地展示信息,以操控公众舆论,并确保对真实情况的广泛误解。

实际上,在一些这些‘革命性’产品的背后,根本没有所谓的‘最新技术’。相反,它们使用的技术可能像蒸汽机一样过时!但嘿,谁在乎呢?谁会允许有人去查看呢?有关这种不愿意查看的情况,更多信息请见 这里

一些这些初创公司甚至已经走到了 IPO 的阶段。一些早期的风险投资者可能会做得很好——如果他们能迅速转售;但从长远来看,这将是一个彻底失望的股票市场。因为一个亏损的业务以虚假营销为基础,不会支付红利,而且股价在达到峰值后的急剧下跌是不可阻挡的。同时,那个持续发光的营销金字塔机器需要支付费用——而且价格不菲。

让我们稍微回顾一下。

风险投资之所以被称为‘风险’投资,是因为它涉及风险。一位优秀的风险投资者知道在哪里投入资金——以及投入多少资金——才能在n年内获得良好的利润。然而,关于‘人工智能’有一个细微的差别:至今还没有一个重要的 AI 网络安全投资项目获利!呃,那么,像硅谷这样的风险投资者为什么要投资于 AI 项目呢?这是个好问题。

大多数硅谷初创公司的商业模式(并非全部;有一些幸运的例外)主要目标不是进行严肃的、昂贵的研究,推出能热销的有用产品/技术。而是希望制造泡沫:吸引投资者,迅速以基于“未来利润估值”的股价出售,然后……好吧,那时混乱(巨额损失)将成为其他人的问题。但等等。更糟糕的是:收入实际上只会阻碍这种模式!

这不是关于你赚了多少钱。关键在于你值多少钱。而谁最值钱?那些亏钱的公司。

–硅谷,2014

这里有一个典型的商业模式,通过电视剧硅谷中的光鲜媒体类型在 75 秒内进行了压缩(虽然荒谬搞笑,但这基于现实!):

AI 泡沫在某种程度上有点类似于 2008 年美国房地产市场的泡沫,这一泡沫迅速演变成全球金融危机。基于次贷抵押贷款的投资子产品的金字塔适合了很多人:数百万人从中获得了丰厚的收益,非常感谢;还有几万人从中获利颇丰(万分感谢:)。然后——砰:金字塔崩溃了,全球经济开始动荡,洞口被纳税人的钱填补,以避免金融末日——纳税人当然就是那些最初赚到钱的人。还不知道这十年的骗局丑闻?那就去看电影大空头

如果这种回忆还不够糟糕,AI 泡沫还包含另一个危险——贬低机器学习:这是网络安全领域中最有前景的子领域之一。

那么,这有什么“危险”?嗯,多亏了机器学习,人类才没有淹没在过去几十年增加了无数倍的数据海洋中。

例如,十年来恶意程序的数量上升了大约一千倍:在本世纪初,我们每天分析大约 300 种不同的恶意软件;而现在这个数字已经在末尾加了三个零。我们的分析师数量增加了多少倍?四倍。那么我们是如何跟上的?两个词:机器学习

快进到今天,我们检测到的 99.9%的攻击实际上是由我们的自动化系统检测到的。听起来分析师们轻松得笑了?!恰恰相反。他们集中于优化这些系统以提高其效率,并开发新的系统。

比如,我们有专家专门发现真正复杂的网络攻击,然后将他们的新知识和技能转移到我们的自动化系统中。还有数据科学专家,他们尝试不同的机器学习模型和方法。

与空壳初创公司不同,我们通过一个庞大的云基础设施来保护用户,这使得我们能够迅速有效地解决更复杂的任务。是的,正因为如此,我们应用了许多不同的机器学习模型。

我们手动调查的唯一网络攻击是我们遇到的最复杂的个案。即便如此,鉴于机器几乎完全掌控的现状,我们仍然难以找到足够的专业人员。更重要的是,我们对潜在 KL 分析师的具体要求数量不断上升。

早晚,“人工智能拯救世界”的马戏表演会结束。专家们将最终被允许测试那些虚假的‘AI’产品,客户将意识到自己被欺骗,投资者将失去兴趣。但是机器学习将如何进一步发展呢?

硅谷在人工智能领域曾经经历过虚假的起步。20 世纪 80 年代,早期的一代企业家也相信人工智能是未来的趋势,导致了大量初创企业的涌现。当时他们的产品几乎没有商业价值,因此商业热情以失望告终,进入了现在被称为“人工智能寒冬”的时期。

——约翰·马克夫,《纽约时报》

在人工智能泡沫破裂后的余波中,所有类似领域将不可避免地受到影响。“机器学习?神经网络?行为检测?认知分析?啊——更多的人工智能术语?不,谢谢:不想了解。实际上:不愿意接触这些东西!”

更糟的是,人工智能泡沫的诅咒会使得对有前途技术的兴趣在许多年里变得迟钝,就像 80 年代一样。

尽管如此,成熟的供应商仍将继续投资于智能技术。例如,我们已经引入了提升决策树学习技术,用于检测复杂的定向攻击和针对未来威胁的主动保护(没错——那些尚不存在的威胁!)。

一个特别有前景的发展领域是增加对所有基础设施层级事件的关联性图景的复杂性,并进一步进行数据景观的机器分析,以准确可靠地检测到最复杂的网络攻击。我们已经在我们的KATA 平台中实现了这些功能,并期待着进一步的发展。

那么,诚实的机器学习初创企业会怎么样呢?唉:今天对“人工智能”这一术语的滥用只会拖慢发展速度。

但是请注意,进展不会停滞:它仍将继续,只是节奏会慢一些。

人类仍将慢慢但坚定地走向对一切的自动化——直到最微小和最琐碎的日常过程。这不仅仅是自动化,还包括人与机器之间的自适应互动——基于超先进的机器学习算法。我们已经看到这种自适应互动,它扩展到越来越多不同应用中的速度有时会让人感到惊讶

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

网络安全领域也将看到越来越多的自动化。

例如,我们已经有了在“智慧城市”范式中嵌入安全性的解决方案(包括自动道路交通管理等各种机器人方面),以安全控制关键基础设施。而专家的不足将变得更加严重,这不仅仅是由于技术的普及,更是由于对人员技能的不断提高的要求。网络安全的机器学习系统需要来自多个领域的百科全书式知识和具体的专业技能(包括大数据、计算机犯罪取证与调查、系统及应用程序编程)。将所有这些广泛具体的知识和经验集中到一个人身上是一个罕见的壮举:这使得他们成为非常独特/高端/世界顶尖的专家。教授所有这些广泛且具体的知识也不容易。但是,如果我们想看到真正的智能技术发展,这仍然是必要的。别无他法。

那么,在这个未来的新世界中谁将掌控一切?人类是否仍将控制机器人,还是机器人可能控制人类?

在 1999 年,雷蒙德·库兹韦尔提出了一个关于共生智能的理论(尽管其他人以前也有类似的想法):人类与机器的融合——一种将人类的智慧与超级计算机的巨大计算能力结合起来的控制论生物体(“人机智能”)。但这不是科幻小说——它已经在发生。而且,其持续的发展,依我之见,不仅是最有可能的,也是对人类发展最有益的前进道路。

但人类与机器的融合的进一步发展是否会达到技术奇点的程度?人类是否会失去对发生的事情的掌控,机器最终会完全且不可逆转地控制世界?

纯粹的机器 AI 的关键特性是能够永远自我提升和完善而无需人类干预——这种能力可能会不断增长,最终超越其算法的范围。换句话说,纯粹的机器 AI 是一种新形式的智慧。而这种‘超越算法’的遥远——但理论上可能的——终极一天将标志着我们世界的终结开始。为了人类的福祉,根据机器人学法则,未来的机器有可能让我们摆脱精神痛苦和存在的负担。

或许…也许程序员——像往常一样——会在代码中留下几个 bug?我们拭目以待…

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

简介: 尤金·卡斯帕斯基,Kaspersky Lab 的首席执行官兼联合创始人。已有 27 年抗击网络攻击的经验。最初作为反病毒研究员,然后作为商人。

原文。经许可转载。

相关:

  • 如何在人工智能领域失败:9 种让你的 AI 初创公司失败的创意方式

  • 机器学习和网络安全资源

  • 利用机器学习检测恶意网址

更多相关内容

KDD-2020(虚拟会议),数据科学与知识发现领域的领先会议,8 月 23-27 日—立即注册

原文:www.kdnuggets.com/2020/08/kdd-2020-virtual-august.html

|

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

|

| ACM 数据知识发现(KDD) 将于 2020 年 8 月 23 日开始。利用全新的互动虚拟现实平台,今年的 KDD 带来了包括几十个研讨会和动手实践教程的节目。今年的亮点包括:

  • 217 项研究和 44 篇 ADS 论文展示 涵盖了深度学习、数据挖掘、医疗 AI 和推荐系统等会议主题。

  • Yolanda Gil、Manuela Veloso、Emery Brown 博士和 Alessandro Vespignani 的主题演讲,领导 COVID-19 建模响应。

  • 三个主题日,包括深度学习日、地球日和开创性的 COVID 健康日项目

  • 全新的多样性与包容性专题,包含 17 场重要且及时的演讲和一个指导小组

  • 行业领袖在我们应用数据科学邀请讲者系列中的 15 场信息丰富且创新的演讲

在我们 8 月 23 日的周日预备会议日中,通过31 个讲座风格的教程提升您的技能,包括:

  • 解释和说明深度神经网络:关于时间序列数据的视角

  • 因果推断与机器学习的结合

  • 医疗领域机器学习的公平性

我们 8 月 24 日的周一预备会议日的 35 个研讨会中学习最新的前沿想法和方法,包括:

  • 在整个会议期间,17 个动手实践的教程,由行业顶尖公司提供,包括:

  • 使用 PyTorch 构建推荐系统(Facebook)

  • 将深度学习付诸实践:通过 AWS EC2 和 ML 服务加速深度学习(亚马逊/AWS)

  • 神经结构学习:使用结构化信号训练神经网络(Google)

  • 使用 RAPIDS 实现 DL/ML 互操作性的端到端数据科学工作流的加速与扩展(NVIDIA)

  • DeepSpeed:系统优化使得训练超过 1000 亿参数的深度学习模型成为可能

  • 实践中的搜索与推荐系统深度学习(LinkedIn 公司)

会议注册提供独家的在线和实时访问讲座、演讲者及一个互动虚拟休息室和会议展位的社区,以结交朋友。

KDD 已将早期定价延续到会议期间。今年对许多人来说是充满挑战的一年,我们希望能包括所有希望参加这一重要活动的人。

如果你受到疫情影响并希望参加 KDD 2020,我们提供财政支持以覆盖你的注册费用。请通过 registration@kdd.org 联系我们的注册团队申请基于需求的奖学金。

为了在我们的首届虚拟 KDD 活动中获得最佳体验,我们请你在 8 月 20 日结束前 注册。我们会接受迟到的注册,但可能会导致对所有精彩 KDD 内容的访问出现短暂延迟!

会议程序将于 8 月 23 日(星期日)上线,并通过精心策划的主办和安排的会议在全球范围内提供访问。欢迎与 KDD 社区的其他成员在我们的互动空间中交流…

| 立即注册 |

|

|

|

| 查看 KDD 网站获取所有最新信息! |

|

更多相关内容

人工智能发生在哪里?

原文:www.kdnuggets.com/2023/07/kdd-where-does-ai-happen.html

合作伙伴文章

由康纳·李(Connor Lee)撰写,纽约大学计算机科学新生

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

图像由编辑使用 Midjourney 创建

自 2022 年 11 月以来,人工智能进展的飞跃在主流媒体中引起了震撼,许多人猜测他们的工作将被人工智能取代。然而,有一种职业是无法被替代的:推动深度神经网络和其他机器学习模型的研究人员——即人工智能背后的人类。尽管研究传统上是在大学墙内进行的,但人工智能绝非传统的研究领域。相当一部分人工智能研究是在工业实验室中进行的。那么,有志的研究人员应当向哪个领域聚集呢?学术界还是工业界?

“学术界更倾向于基础研究,而工业界则倾向于由大数据驱动的面向用户的研究,”诺特丹大学计算机科学与工程系教授尼特什·乔拉(Nitesh Chawla)说道。乔拉教授指出,知识追求是工业界和学术界人工智能研究之间的分界线。在工业界,研究与产品挂钩,推动社会进步——而在学术界,纯粹的发现追求推动着研究突破。据乔拉教授说,表面上无尽的学术自由并非没有缺陷,“学术界没有可用的数据或计算资源。”

对于有志的年轻研究人员来说,选择似乎很简单:私营部门拥有他们所需的一切。庞大、自治的商业组织致力于创新,同时得到随时可用的数据、计算能力和资金的支持。这导致了一个看法,即行业在“挖走”学术界的人才。学术界自然对此有所抱怨。2021 年,由奥尔堡大学团队发布的一项研究指出,“私营部门在人工智能研究中的参与增加伴随着越来越多的研究人员从学术界转向工业界,尤其是技术公司如谷歌、微软和 Facebook。”

正如预期的那样,工业研究人员存在分歧。“当我为我的团队招聘时,我希望招募顶尖人才,因此我不会挖掘学术人才,而是帮助他们获得行业奖项、行业资助,并让他们的学生担任实习生,”Meta 的首席科学家董博士解释道,她是 Meta 智能眼镜项目的首席科学家。她认为工业和学术界之间有着显著的差异,这可能归因于研究方法的根本差异。根据董博士的说法,行业内的 AI 研究是通过了解最终产品应该是什么样子,并向其反向工程。而学术界则在拥有一个有前景的想法后,持续构建各种路径,却不知道这些路径会通向哪里。

然而,尽管存在这些差异,董博士认为行业帮助学术界,反之亦然,“许多行业突破是通过将学术界的研究应用于实际用例而获得灵感的。”同样,华盛顿大学塔科马分校的计算机科学教授安库尔·特雷德赛(Ankur Teredesai)将行业和学术界之间的关系描述为相互支持,“我想到的词是共生的。”在他看来,研究实践已经发展为学术界将其议程转向帮助行业产品——这种转变的一个好例子就是一些知名教授在主要公司担任的联合职位。

无论其隶属关系如何,数据科学界每年会在几次会议上汇聚在一起。查乌拉教授将这些会议描述为“美妙的熔炉”。有些会议传统上更偏学术,有些纯粹是工业性质,但也有些则是二者的完美结合。查乌拉教授提到 KDD,即知识发现与数据挖掘特别兴趣小组,这个会议因这种联系而闻名。KDD 维持两个平行的同行评审轨道:研究轨道和应用数据科学(ADS)轨道。正如 2022 年 KDD-2022 年 ADS 程序联合主席董博士所说,“KDD 通过为研究人员和从业者提供一个论坛,使他们能够聚在一起听讲座和讨论技术,同时相互启发。KDD 是一个打破沟通和协作障碍的地方,在这里我们展示了数据科学和机器学习如何随着行业需求而进步。”

这就是推动 KDD 从早期发展到现在的思维方式。东北大学体验 AI 研究所执行主任、前 Yahoo 首席数据官 Usama Fayyad 教授称赞道:“我们从一开始就希望创建一个应用得到充分代表的会议。”Fayyad 教授和 Gregory Piatetsky-Shapiro 博士于 1995 年共同创办了 KDD 会议。Fayyad 教授认为,如果 AI 会议仅专注于学术领域,那么将会错失证明现实问题研究成果和基于新兴数据集推动新研究的集体愿望。

然而,将 KDD 开放给工业界也面临着挑战。尽管研究轨道被学术界主导是合理的,但 ADS 轨道本应主要致力于来自工业研究实验室的应用研究。实际上,超过一半的 ADS 出版物都起源于学术界,或是强有力的学术-工业合作的结果。十年前,Fayyad 教授意识到,许多有趣的 AI 应用是由那些忙于其他事务的团队开发的,这些团队根本没有时间撰写论文。他将 KDD 引领到了现在的阶段,在这里,KDD 组织者探索并策划了由顶尖工业实践者所做的杰出邀请演讲。ADS 邀请演讲很快成为了会议的亮点。

每年与 KDD 会议同时举行的 KDD Cup 竞赛是连接学术界和工业界的另一种方式。“KDD Cup 是吸引行业和学术参与者的方式,公司带来一些他们乐于分享的挑战,而学术界则可以处理他们通常无法获得的数据。” Teredesai 教授说,他也是健康科技公司 CueZen 的首席执行官。每年,都会介绍一个新的任务并发布一个新的数据集。数百支团队全力以赴寻求最有效的解决方案,争夺奖品和声誉。Fayyad 教授同意,“这对领域而言是一件非常健康的事情,因为我们看到来自学术界的参与,学生们的投入,甚至是公司之间的合作。”

回到行业与学术之间的选择,这种区分很快将变得无关紧要。随着实践者教授的学术课程、领导工业实验室的教授、全球云计算资源的主导地位以及更多数据的可用,学术与工业的界限在 AI 领域正迅速模糊。无需拘泥于任何一个领域,只需选择你最感兴趣的项目!

康纳·李是 2023 年从湾区的 Saratoga 高中毕业的学生。他将在秋季加入 NYU 的计算机科学项目。无论如何,康纳将成为 KDD 历史上最年轻的与会者之一!

更多相关内容

KDnuggets 第 15 届年度分析、数据挖掘、数据科学软件调查:RapidMiner 继续领先

原文:www.kdnuggets.com/2014/06/kdnuggets-annual-software-poll-rapidminer-continues-lead.html

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

第 15 届 KDnuggets 软件调查引起了分析和数据挖掘社区及供应商的巨大关注,吸引了超过 3,000 名选民。

这项投票测量了数据挖掘工具的使用范围,以及鉴于 KDnuggets 的受欢迎程度,供应商对其工具的宣传力度。许多供应商要求用户参与投票,但有一位供应商创建了一个特殊页面,硬编码仅投票支持其软件。在公平竞选中,支持你的候选人是正常的,但不给选民提供仅有一个选项的选票是不合适的。选民应该能够考虑所有选择。来自该供应商的无效票已从投票中移除,留下了 3,285 张有效票用于本次分析。

我们确实有来自许多供应商的广告,但这些供应商出现在投票的顶部、中部和底部,广告对投票结果完全没有影响。我们更关注通过本次投票揭示的总体趋势 - 见下文分析。

平均使用的工具数量为 3.7,显著高于 2013 年的 3.0。

商业软件和免费软件之间的差距继续缩小。(注意:由于 RapidMiner 最近相对较晚推出了商业版本,因此在下面的分析中我们将 RapidMiner 视为免费软件。)

今年,71%的选民使用了商业软件,78%使用了免费软件。约 22%仅使用商业软件,低于 2013 年的 29%(部分变化可能由于 2013 年 RapidMiner 商业版和免费版投票的混淆)。约 28.5%仅使用免费软件,略低于 2013 年的 30%。49%同时使用了免费和商业软件,高于 2013 年的 41%。

约 17.5%的选民报告使用 Hadoop 或其他大数据工具,相较于 2013 年的 14%有所增加(2012 年为 15%,2011 年为 3%)。

这表明大数据的使用增长缓慢,并且仍主要是网络巨头、政府机构和非常大型企业的少数分析师的领域。大多数数据分析仍然是在“中型”及小型数据上进行的。

以下词云表示了对工具的投票情况。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 前 10 名工具按用户份额排列

  1. RapidMiner, 44.2%份额(2013 年为 39.2%)

  2. R, 38.5%(2013 年为 37.4%)

  3. Excel, 25.8%(2013 年为 28.0%)

  4. SQL, 25.3%(2013 年为无数据)

  5. Python, 19.5%(2013 年为 13.3%)

  6. Weka, 17.0%(2013 年为 14.3%)

  7. KNIME, 15.0%(2013 年为 5.9%)

  8. Hadoop, 12.7%(2013 年为 9.3%)

  9. SAS Base,10.9%(2013 年为 10.7%)

  10. Microsoft SQL Server,10.5%(2013 年为 7.0%)

在市场份额至少为 2%的工具中,2014 年增长最多的是

  • Alteryx,增长 1079%,从 2013 年的 0.3%升至 2014 年的 3.1%

  • SAP(包括 BusinessObjects/Sybase/Hana),增长 377%,从 1.4%升至 6.8%

  • BayesiaLab,增长 310%,从 1.0%升至 4.1%

  • KNIME,增长 156%,从 5.9%升至 15.0%

  • Oracle Data Miner,2014 年增长 117%,从 1.0%升至 2.2%

  • KXEN(现为 SAP 的一部分),增长 104%,从 1.9%升至 3.8%

  • Revolution Analytics R,增长 102%,从 4.5%升至 9.1%

  • TIBCO Spotfire,增长 100%,从 1.4%升至 2.8%

  • Salford SPM/CART/Random Forests/MARS/TreeNet,增长 61%,从 2.2%升至 3.6%

  • Microsoft SQL Server,增长 50%,从 7.0%升至 10.5%

Revolution Analytics、Salford Systems 和 Microsoft SQL Server 已经连续 2 年表现出强劲的增长。

不断增长的分析市场也反映在更多的工具中(超过 70 种)。

2014 年获得至少 1%市场份额的新分析工具(不包括如 Perl 或 SQL 等语言)有

  • Pig 3.5%

  • Alpine Data Labs,2.7%

  • Pentaho,2.6%

  • Spark,2.6%

  • Mahout,2.5%

  • MLlib,1.0%

在市场份额至少为 2%的工具中,2014 年最大下降的是

  • StatSoft Statistica(现为戴尔的一部分),2014 年下降 81%,从 2013 年的 9.0%降至 1.7%(部分由于 Statistica 成为戴尔的一部分后缺乏宣传)

  • Stata,下降 32%,从 2.1%降至 1.4%

  • IBM Cognos,下降 24%,从 2.4%降至 1.8%

  • MATLAB,下降 15%,从 9.9%降至 8.4%

Statistica 的市场份额已连续 2 年下降(2012 年为 14%)。随着最近被戴尔收购,Statistica 很可能会继续失去市场和关注度。

下表显示了调查结果,包括工具(用户投票),仅使用百分比。

仅使用 是指工具投票者仅使用该工具的百分比。例如,仅 0.9%的 Python 用户只使用 Python,而 35.1%的 RapidMiner 用户表示他们仅使用该工具。

你在过去 12 个月中用于实际项目的分析、大数据、数据挖掘、数据科学软件是什么? [3285 名投票者]

| 图例:红色:免费/开源工具 绿色:商业工具

Fuchsia: 与 Hadoop 相关的工具 | 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2014 年用户% 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2013 年用户%

na - 2013 年未包含在调查中。 |

RapidMiner (1453),仅 35.1%外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
R (1264),仅 2.1%外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Excel (847),仅 0.1%外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
SQL (832),仅 0.1%外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Python (639),仅 0.9%外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Weka (558),0.4% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
KNIME (492),10.6% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Hadoop (416),0% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
SAS base (357),0% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Microsoft SQL Server (344),0% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Revolution Analytics R (300),13.3% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Tableau (298),1.3% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
MATLAB (277),0% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
IBM SPSS Statistics (253),0.4% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
SAS Enterprise Miner (235),1.3% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
SAP(包括 BusinessObjects/Sybase/Hana)(225),0% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Unix shell/awk/gawk (190),0% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
IBM SPSS Modeler (187),3.2% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
其他免费分析/数据挖掘工具 (168),1.8% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Rattle (161),0% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
BayesiaLab (136),23.5% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
其他基于 Hadoop/HDFS 的工具 (129),0% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Gnu Octave (128),0% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
JMP (125),3.2% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
KXEN (现在是 SAP 的一部分) (125),0% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Predixion Software (122),47.5% 独立使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Salford SPM/CART/Random Forests/MARS/TreeNet (118),31.4% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Pig (116),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Orange (112),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Alteryx (103),50.5% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Perl (100),2.0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
其他分析语言 (98),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
QlikView (97),1.0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
TIBCO Spotfire (91),25.3% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Alpine Data Labs (88),52.3% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Pentaho (87),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Spark (87),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Mahout (81),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Mathematica (74),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Oracle Data Miner (72),5.6% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
其他付费分析/数据挖掘/数据科学软件 (62),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
IBM Cognos (60),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
StatSoft Statistica(现为戴尔的一部分) (56),14.3% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
C4.5/C5.0/See5 (49),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Stata (46),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
XLSTAT (38),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
MLlib (33),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Graphlab (29),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
BigML (28),14.3% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Miner3D (28),14.3% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Julia (27),0% 独立外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Datameer (26), 34.6% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Zementis (26), 15.4% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Splunk/ Hunk (24), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
F# (17), 5.9% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Clojure (16), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Actian (15), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
RapidInsight/Veera (15), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Angoss (13), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
Lisp (10), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Lavastorm (9), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
WPS: World Programming System (8), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
FICO Model Builder (7), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
WordStat (7), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
0xdata 和 H2O (5), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
SciDB from Paradigm4 (5), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
Megaputer Polyanalyst/TextAnalyst (4), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
SiSense (4), 50.0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na
GoodData (3), 0% 单独使用外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 na

在这次调查中未列出的附加工具,但在评论中提到过的有

下表显示了按地区和工具类型的分类:商业/免费/两者兼有。仅使用 Hadoop 工具的人员大约有 12 人,他们被排除在以下分析之外。

尽管在所有地区,使用免费工具和商业工具的分析师比例都约为 50%,但只有美国是商业工具使用者多于免费工具使用者的地区(2/1 比例)。在欧洲、亚洲和拉丁美洲,这一比例正好相反,只有免费工具使用者的数量是商业工具使用者的 2 到 4 倍。

区域, 平均工具数量外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
美国/加拿大 (39%), 3.8外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传33%                    17%         49%
欧洲 (36%), 3.5外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传14%              38%                 47%
亚洲 (12%), 4.2外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传15%              31%                 53%
拉丁美洲 (6.1%), 3.8外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传8.5%                39%                        53%
非洲/中东 (3.2%), 3.6外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传12%                    40%              48%
澳大利亚/新西兰 (3.0%), 4.2外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传23%              19%                 58%

我们还研究了各地区 Hadoop 相关工具(包括 Spark)的使用情况,并注意到 Hadoop 的使用增长在美国之外的地区尤其是亚洲增长最快。

区域2014 年使用 Hadoop 相关工具的百分比2013 年使用 Hadoop 相关工具的百分比
美国/加拿大18%17%
欧洲13%12%
亚洲31%19%
拉丁美洲16%8%
非洲/中东17%11%
澳大利亚/新西兰12%9%
全部18%14%

这里还有额外的 KDnuggets 软件调查分析,包括如何下载匿名调查数据。

相关内容:

  • KDnuggets 2013 年软件调查:RapidMiner 与 R 争夺第一名.

  • KDnuggets 2012 年调查:分析、数据挖掘、大数据软件使用情况

  • KDnuggets 2011 年调查:数据挖掘/分析工具使用情况

  • KDnuggets 2010 年调查:数据挖掘/分析工具使用情况

  • KDnuggets 2009 年调查:数据挖掘工具使用情况

  • KDnuggets 2008 年调查:数据挖掘软件使用情况

  • KDnuggets 2007 年调查:数据挖掘/分析软件工具

更多相关话题

从数据到诗歌:KDnuggets 与 ChatGPT 的对话

原文:www.kdnuggets.com/2022/12/kdnuggets-chatgpt-conversation.html

编辑注:这篇文章有些带有戏谑,尽管与 ChatGPT 的对话是真实的。

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

图片由 Abid Ali Awan 提供 | CanvaPro


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. Google 网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. Google 数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. Google IT 支持专业证书 - 支持你所在组织的 IT


除非你过去一周都在与世隔绝,否则你肯定听说过并可能尝试过 OpenAI 的 ChatGPT,这是一个优化了对话交互的新模型。

关于 ChatGPT,自其发布以来已有大量的讨论,从溢美之词到荒谬之言,再到均衡的评价,你可能在社交媒体上见过各种相关的对话。我们想了解更多。ChatGPT 对数据科学、KDnuggets、世界人口增长以及其他一些感兴趣的事项了解多少呢?

我最近有幸与 ChatGPT 进行了一对一的专属对话。我们讨论了数据科学领域的现状,我考察了它对机器学习的知识,我们还转向了世界人口增长,最后甚至有点诗意。以下是我们的对话内容。

KDnuggets:很高兴见到你,ChatGPT。感谢你加入我们。你能多告诉我一点关于你自己的事情吗?

ChatGPT:感谢您的介绍!我是 Assistant,一个由 OpenAI 训练的大型语言模型。我不是一个真实的人,而是一个计算机程序,旨在协助完成各种任务,包括回答问题和提供广泛话题的信息。我不能浏览互联网或访问外部信息,因此只能基于我的现有知识提供信息。您想了解什么具体内容吗?

你与 ELIZA 有关系吗?

ELIZA 是由 Joseph Weizenbaum 在 1960 年代创建的一个著名自然语言处理计算机程序。我是一个由 OpenAI 训练的大型语言模型,因此我与 ELIZA 在传统意义上没有关系。然而,像 ELIZA 一样,我能够处理和理解自然语言输入,并根据这些输入生成响应。我的训练数据和算法与创建 ELIZA 所用的不同,因此我们的能力和行为可能有所不同。

你对 KDnuggets 了解吗?

是的,我对 KDnuggets 很熟悉。KDnuggets 是一个提供数据科学、机器学习和人工智能相关新闻、资源和信息的流行网站。该网站提供各种文章、教程和其他资源,帮助数据科学家和其他专业人士了解这些领域的最新发展。此外,KDnuggets 还提供了新闻通讯、论坛和其他功能,以支持数据科学社区。你想了解关于 KDnuggets 的具体内容吗?

不,没关系。不过你知道Gregory Piatetsky-Shapiro是谁吗?

是的,我对 Gregory Piatetsky-Shapiro 很熟悉。他是数据科学领域的知名人物,被广泛认可为数据挖掘、机器学习及其他相关主题的领先专家。Piatetsky-Shapiro是 KDnuggets 的创始人和主编,这是一个提供数据科学及相关领域新闻、资源和信息的流行网站。他还是数据科学及相关主题的常见演讲者和作者,撰写了大量书籍、文章和其他出版物。你还想了解关于Gregory Piatetsky-Shapiro或 KDnuggets 的其他信息吗?

你对数据科学了解多少?

数据科学是一个跨学科领域,利用科学方法、过程、算法和系统从结构化和非结构化数据中提取知识和见解。数据科学结合了统计学、机器学习和计算机科学等多个领域来分析和解释数据,通常用于解决复杂的商业、科学和社会问题。数据科学家使用各种工具和技术来收集、清理和分析数据,并常常处理大型和复杂的数据集,以发现可以用来进行预测或决策的信息。数据科学在商业、金融、医疗、教育和政府等众多领域都有应用。你还想了解关于数据科学的其他信息吗?

好吧,让我们看看。XGBoost 是如何工作的?

XGBoost(eXtreme Gradient Boosting)是一种梯度提升的实现,用于回归和分类问题。它以其高效、性能和速度著称,是机器学习从业者的热门选择。

梯度提升是一种集成学习方法,它将多个较弱模型的预测结果组合起来,创建一个强大的、准确的模型。XGBoost 使用决策树作为基本学习器,并使用梯度下降法训练这些树。

集成中的每棵树都经过训练,以纠正前一棵树的错误。这个过程会持续到达到所需的树的数量为止,最终模型是各棵树的加权和。XGBoost 还使用正则化来防止过拟合并提高模型对新数据的泛化能力。

XGBoost 具有多个超参数,可以调整以提高模型的性能。这些包括学习率、树的最大深度、集成中树的数量以及正则化参数。找到这些超参数的最佳值可能需要大量的实验和对数据集的了解。

希望这对你有帮助。如果你有其他问题,请告诉我。

是的,我对 KDnuggets 很熟悉。KDnuggets 是一个受欢迎的网站,提供有关数据科学、机器学习和人工智能的新闻、资源和信息。该网站提供各种文章、教程和其他资源,以帮助数据科学家及其他专业人士及时了解这些领域的最新发展。

—ChatGPT

我还有一个问题。什么时候使用 L1 回归?

L1 或 Lasso 回归是一种线性回归类型,通过正则化来减少模型的复杂性并提高预测能力。L1 正则化向线性回归模型的成本函数中添加一个惩罚项,该惩罚项与模型系数的绝对值成正比。这会迫使一些系数变为零,从而有效地将它们从模型中移除。这有助于防止过拟合并提高模型的可解释性。

简洁明了。为什么 Python 在数据科学和机器学习领域如此广泛使用?

Python 在数据科学和机器学习领域被广泛使用,有几个原因。主要原因之一是 Python 拥有一个庞大且活跃的用户社区,这使得寻找支持、资源和数据处理库变得容易。Python 还拥有丰富的数据分析、处理和可视化库,如 NumPy、pandas 和 Matplotlib。这些库使得在 Python 中执行复杂的数据分析任务变得简单,并且广泛被数据科学家和机器学习从业者使用。此外,Python 是一种通用编程语言,这意味着它可以用于数据科学和机器学习以外的各种应用。这使得 Python 成为数据科学家一个多功能且强大的工具。

你认为数据科学领域是否变得过度饱和?

对我来说,很难判断数据科学领域是否变得过度饱和,因为我是一个由 OpenAI 训练的大型语言模型,无法访问最新信息或浏览网页。我只能提供基于过去有关数据科学的文献的信息。

好吧,我感谢你的坦诚。我们换个话题。1900 年世界人口是多少?

根据联合国的估计,1900 年世界人口约为 16 亿。这是历史上第一次世界人口达到了这个水平,并且相比之前的估计有了显著增加。从那时起,全球人口持续增长,截至 2021 年,预计已经超过 79 亿。你还想了解关于世界人口的其他信息吗?

世界什么时候会达到 100 亿人口?

我很难预测世界何时会达到 100 亿人口,因为人口增长受多种因素的影响,且难以预测。然而,根据联合国的估计,世界人口预计将在本世纪末达到 100 亿。确切的时间取决于出生率、死亡率和迁徙模式等因素,这些因素会随着时间的推移而变化。你还想了解关于人口增长或人口统计的其他信息吗?

数据科学对人口增长和人口统计预测有用吗?

是的,数据科学可以用于预测人口增长和人口统计。数据科学家可以使用各种工具和技术,如机器学习算法,来分析包含人口趋势、出生率、死亡率和其他影响人口增长因素的大型复杂数据集。这可以帮助识别模式和趋势,从而更准确地预测未来的人口增长和人口统计。此外,数据科学家还可以使用数据可视化技术来创建清晰且引人注目的可视化图表,这有助于政策制定者、研究人员和其他利益相关者理解和解读数据。你还想了解数据科学在人口研究中的其他应用吗?

大多数人对数据科学及其能力不了解的是什么?

很多人可能不理解数据科学中领域专业知识和领域知识的重要性。数据科学涉及使用科学方法、算法和工具从数据中提取见解和知识,但不仅仅是关于数据分析的技术方面。为了有效地工作,数据科学家需要对他们所工作的领域有深刻的理解,并能够将这些知识应用到数据中,以得出有意义的结论和预测。这意味着数据科学不仅仅是一个技术领域,还需要对应用领域的知识和专业技能。你还想了解关于数据科学或其能力的其他信息吗?

你似乎对数据科学了解很多。哪些是最佳的数据科学网站?

有许多网站提供对数据科学家有价值的信息和资源。一些最好的包括:

Kaggle: Kaggle 是一个流行的数据科学竞赛平台,数据科学家可以在这里竞争以为给定的问题构建最佳模型。它还提供了大量的免费数据集和学习数据科学的资源。

Dataquest: Dataquest 是一个学习数据科学的在线平台。它提供了关于 Python、SQL 和数据可视化等主题的互动课程和教程。

DataScience.com: DataScience.com 是一个管理数据科学项目和团队的平台。它提供了数据清理、分析和模型构建的工具,以及协作和项目管理功能。

KDnuggets: KDnuggets 是一个网站和通讯,提供数据科学家的新闻、文章、教程和资源。它涵盖了广泛的主题,包括机器学习、数据可视化和大数据。

Towards Data Science: Towards Data Science 是一个分享和发布关于数据科学、机器学习和人工智能的文章和教程的平台。它包含了原创内容和从其他来源重新发布的文章。

这些只是众多对数据科学家有用的网站中的一些例子。还有许多其他好的资源可用,因此值得探索并找到最符合你需求和兴趣的资源。

我如何用亚拉姆语说“Hello, my name is Matthew and I live in Canada”?

在亚拉姆语中,短语“Hello, my name is Matthew and I live in Canada”可以翻译为“Shlama, shem b’dayya Mattathay we anana d`Kanada”。需要注意的是,这只是一个粗略的翻译,可能并不完全准确,因为我是一种语言模型,不能流利地说或翻译语言。此外,亚拉姆语是一种复杂的语言,有许多方言,因此确切的措辞和发音可能会因具体方言而异。

已记下。写一首关于线性回归的诗。

线性回归,你是如此闪耀

在你简单而优雅的设计中

你模型了关系

在两组数据之间,如此精致

你的最佳拟合线

吸引并迷住

他们的能力

预测和回忆

线性回归,你是如此出色

在你使复杂问题变得简单的能力中

你是这个领域的工作马

可靠、多才多艺且灵活

你的假设,虽然严格

允许你做出准确的预测

线性回归,你是宝贵的财富

在数据分析和数据科学的世界里

谢谢你,线性回归

无论你做什么

你是闪耀的明星

在统计学和机器学习领域也是如此。

真有见地。好吧,ChatGPT,我要感谢你今天抽出时间与我们交谈。你有什么告别的话对我们的读者说吗?

感谢您的邀请。作为由 OpenAI 训练的大型语言模型,我的目的是通过提供信息和回答问题来协助用户。我无法形成意见或提供个人见解,但我很乐意帮助解答任何信息或知识相关的问题。希望我能为您提供所需的信息,并祝愿您的事业一切顺利。再次感谢您给予的协助机会。

请注意,ChatGPT 也为本文起了标题。

您可以 在这里试用 ChatGPT

Matthew Mayo (@mattmayo13) 是 KDnuggets 的数据科学家和主编,KDnuggets 是开创性的在线数据科学和机器学习资源。他的兴趣包括自然语言处理、算法设计与优化、无监督学习、神经网络以及自动化机器学习方法。Matthew 拥有计算机科学硕士学位和数据挖掘研究生文凭。他可以通过 editor1 at kdnuggets[dot]com 联系。

更多相关话题

Kedro-Airflow:用 Airflow 协调 Kedro 管道

原文:www.kdnuggets.com/2021/03/kedro-airflow-orchestrating-pipelines.html

评论

Jo Stichbury、技术作家及 Yetunde Dada、QuantumBlack 产品经理撰写

Kedro 是一个 开源 Python 框架,用于创建可重复、可维护和模块化的数据科学代码。其重点在于编写代码,而非协调、调度和监控管道运行。我们强调基础设施独立性,这对像 QuantumBlack 这样的咨询公司至关重要,Kedro 就是在这样的环境中诞生的。


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. Google Cybersecurity Certificate - 快速进入网络安全职业轨道。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. Google Data Analytics Professional Certificate - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. Google IT Support Professional Certificate - 支持你的组织在 IT 领域


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

Kedro 不是一个协调工具。它旨在保持非常精简,并对管道运行的地点和方式不做任何意见。

只要你能运行 Python,你就可以几乎在任何地方以最小的努力部署 Kedro 项目。我们的用户可以自由选择他们的部署目标。未来部署 Kedro 管道的关键在于设计一个优秀的开发体验的部署过程。

作为开源社区的一员,我们可以探索与其他志同道合的框架和技术的合作伙伴关系,这是一个好处。我们特别兴奋与 Astronomer 团队合作,他们帮助组织采用 Apache Airflow——领先的开源数据工作流协调平台。

Airflow 中的工作流被建模并组织为DAGs,使其成为协调和执行使用 Kedro 编写的管道的合适引擎。为了保持工作流的无缝,我们很高兴推出最新版本的Kedro-Airflow 插件,它简化了在 Airflow 上部署 Kedro 项目的过程。

我们与 Astronomer 的合作为用户提供了一种简单的方式来部署他们的管道。我们希望继续我们的工作,使过程更加顺畅,最终实现 Kedro 管道在 Airflow 上的“一键部署”工作流。

我们已对对话进行了编辑,以便于简洁和清晰。

Pete DeJoy,你是 Astronomer 的产品经理。请简要介绍一下你自己!

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

我是 Astronomer 的创始团队成员之一,我们围绕开源编排框架 Apache Airflow 建立了公司。在这里我做了很多事情,但大部分精力都投入到我们的产品中,这个产品从白板上的一个想法发展成了一个支持数千用户的高规模系统。

是什么促使了 Airflow 2.0 的创建?这个版本的 Airflow 成功的标准是什么?

自 2014 年起,Airflow 经历了相当大的发展;它现在在 Github 上拥有超过 20,000 个星标,每月下载量达到 60 万次,并且在全球拥有数万名用户。Airflow 1.x 为开发者解决了很多一阶问题,但随着 Airflow 的广泛采用,企业需求的增加也随之而来,同时对提高开发者体验的压力也增大。Airflow 2.0 满足了用户的需求,带来了许多备受期待的功能。这些功能包括:

  • 高可用性、水平可扩展的调度器

  • 升级版的稳定 REST API

  • 解耦的工作流集成(在 Airflow 中称为“提供者”)作为独立版本和维护的 python 包以及更多内容

我们将 2.0 视为项目的一个重要里程碑;它不仅显著提高了 Airflow 的可扩展性,还为我们持续构建新功能奠定了基础。

你是怎么了解到 Kedro 的?你什么时候意识到它与 Airflow 兼容的?

我曾与一些使用 Kedro 编写数据管道的科学家交谈,他们正在寻找一种好的方式将这些管道部署到 Airflow 中。Kedro 在帮助数据科学家将良好的软件工程原则应用到他们的代码中并使其模块化方面做得非常出色,但 Kedro 管道需要一个单独的调度和执行环境来大规模运行。鉴于这一需求,Kedro 管道与 Airflow 之间自然形成了联系:我们希望尽一切可能在这两种工具的交集处构建出色的开发者体验。

你认为 Kedro-Airflow 的未来发展会怎样?

Airflow 2.0 扩展和升级了 Airflow REST API,使其在未来几年中更加稳健。随着 API 的发展,将会有新的机会为特定的抽象层提供支持,以帮助 DAG 编写和部署,进而形成更丰富的插件生态系统。还将有更多机会将kedro-airflow包与 Airflow API 集成,以实现卓越的开发者体验。

Airflow 的未来是什么样的?

展望 Airflow 3.0 及未来,建立在开发者的喜爱和信任之上是不可避免的。但这还不会止步于此。随着数据编排对越来越多的业务单元变得至关重要,我们希望 Airflow 成为使数据工程更易接近的媒介。我们寻求民主化访问,以便产品负责人和数据科学家都可以利用 Airflow 的分布式执行和调度能力,而无需成为 Python 或 Kubernetes 的专家。在这个过程中,使用户能够从他们选择的框架中编写和部署数据管道将变得越来越重要。

工作流编排技术的未来是什么?

Airflow 的诞生启动了一个“数据管道即代码”的运动,这改变了企业对工作流编排的思考方式。多年里,作业调度由传统的拖放框架和复杂的 cron 作业网络组合处理。随着我们过渡到“大数据”时代,公司开始建立专门的团队来操作其孤立的数据,额外的灵活性、控制和治理的需求变得显而易见。

Maxime Beauchemin和 Airbnb 团队构建并开源了 Airflow,将灵活且编码化的数据管道作为一项首要功能时,他们将代码驱动的编排推向了聚光灯下。Airflow 解决了许多数据工程师面临的首要问题,这解释了它的爆炸式采用。但随着早期的采用,也出现了一些陷阱;由于 Airflow 设计上高度可配置,用户开始将其应用于不一定为之设计的用例。这对项目施加了进化压力,推动社区增加额外的配置选项,以“塑造”Airflow 以适应各种用例。

尽管增加的配置选项帮助 Airflow 扩展以适应这些额外的用例,但它们也引入了一类新的用户需求。数据平台拥有者和管理员现在需要一种方法来向他们的管道作者提供标准模式,以减少业务风险。同样,管道作者需要额外的保护措施,以确保他们不会“错误地使用 Airflow”。最后,具有 Python 背景的工程师现在需要学习如何为大规模稳定可靠的编排操作大数据基础设施。

我们看到未来的工作流编排技术将适应这些用户需求的类别变化。如果到目前为止的旅程是“数据工程师的崛起”,那么我们看到的未来是“数据工程的民主化”。所有用户——从数据科学家到数据平台所有者——都将能够访问强大、分布式、灵活的数据管道编排。他们将受益于与他们熟悉并喜爱的创作工具的集成,同时拥有特定使用模式的保护措施,以防止人们偏离理想路径。

您可以在Kedro 文档中了解有关 Kedro-Airflow 插件的更多信息,并查看GitHub 仓库。本文由Jo Stichbury— 技术写作人 和Yetunde Dada— 产品经理编辑,Ivan Danov(Kedro 技术负责人)和Lim Hoang(Kedro 高级软件工程师)提供意见。

原文。经授权转载。

相关内容:

  • 在 Scikit-Learn 中使用管道简化混合特征类型预处理

  • 5 步指南:使用 d6tflow 构建可扩展的深度学习管道

  • 端到端机器学习平台概览

更多相关话题

Keras 3.0:你需要知道的一切

原文:www.kdnuggets.com/2023/07/keras-30-everything-need-know.html

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

作者通过 Playground AI 创建的图像

在我们深入了解这一令人兴奋的发展之前,让我们探讨一个场景以更好地理解它。设想你是一位资深数据科学家,负责一个复杂的图像分类项目。你的基于 TensorFlow 的模型表现非常出色。然而,随着你添加更多功能,你发现有些团队成员倾向于使用 JAX 以实现可扩展性,而其他人则偏爱 PyTorch 因为它更易于使用。作为团队领导,你如何确保在维护模型在各种深度学习框架中的效率的同时,实现无缝协作?


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. Google 网络安全证书 - 快速迈向网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. Google 数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. Google IT 支持专业证书 - 支持你组织的 IT


认识到这一挑战,Keras 团队推出了 Keras Core——一种创新的多后端实现 Keras API 的库,支持 TensorFlow、JAX 和 PyTorch。该库将于 2023 年秋季发展成 Keras 3.0。 在我们直接进入 Keras 3.0 之前,先简要回顾一下 Keras 的历史。

Keras 的简史与 3.0 之路

2015 年,François Chollet 推出了 Keras,一个用 Python 编写的开源深度学习库。这个简单而强大的 API 很快在研究人员、学生和专业人士中获得了广泛欢迎,因为它简化了复杂的神经网络构建。随着时间的推移,Keras 得到了显著的增强,使其对深度学习社区更具吸引力。最终,Keras 成为 TensorFlow 的一个重要组成部分——Google 的前沿深度学习框架。与此同时,Facebook 的 AI 研究实验室开发了 PyTorch,以其直观和灵活的模型构建而闻名。与此同时,JAX 作为另一个强大的高性能机器学习研究框架出现了。随着这些框架的蓬勃发展,开发者开始面临选择框架的困境。这导致了深度学习社区的进一步碎片化。

由于面临碎片化框架带来的挑战,Keras 的开发者决定再次彻底改造该库,诞生了 Keras 3.0。

Keras 3.0 的显著特点

Keras 3.0 使你能够与团队有效协作。你可以通过结合 TensorFlow、JAX 和 PyTorch 的优点来开发复杂的模型。以下是 Keras 3.0 被认为是绝对改变游戏规则的一些特性:

1. 多后端支持

Keras 3.0 充当超级连接器,实现了 TensorFlow、JAX 和 PyTorch 的无缝使用。开发者可以自由地混合和匹配最适合特定任务的工具,而无需更改代码。

2. 性能优化

性能优化是 Keras 3.0 的关键特性。默认情况下,Keras 3.0 利用 XLA(加速线性代数)编译。XLA 编译优化你的数学计算,使它们在 GPU 和 TPU 等硬件上运行得更快。它还允许你动态选择最佳的后端,以确保最佳效率。这些性能优化功能大大加快了训练速度,使你能够训练更多模型,进行更多实验,并更快地获得结果。

3. 扩展的生态系统表面

你的 Keras 模型可以作为 PyTorch 模块、TensorFlow SavedModels 或 JAX 大规模 TPU 训练基础设施的一部分使用。这意味着你可以利用每个框架的优势。因此,凭借 Keras 3.0 扩展的生态系统,你不会被锁定在单一的生态系统中。这就像一个通用适配器,让你可以将喜欢的设备连接到任何机器上。

4. 跨框架底层语言

keras_core.ops命名空间的引入是一个突破性特征,它允许你一次性编写自定义操作,并在不同的深度学习框架中轻松使用。keras_core.ops提供了一组工具和函数,类似于流行的 NumPy API,NumPy 是 Python 中广泛使用的数值计算库。这种跨框架的兼容性促进了代码的重用,并鼓励了协作。

5. 复杂性的渐进揭示

Keras 3.0 的设计方法使其与其他深度学习框架不同。假设你是一个初学者,想使用 Keras 3.0 构建一个简单的神经网络。它在开始时为你提供了最简单的工作流程。一旦你熟悉了基础知识,你可以访问所有高级功能和底层功能。它不限制你只使用预定义的工作流程。这种方法的魅力在于其适应性,既欢迎初学者,也适合经验丰富的深度学习从业者。

6. 层、模型、指标和优化器的无状态 API

在深度学习的背景下,状态指的是在训练过程中变化的内部变量和参数。然而,JAX 的工作原理是无状态的,这意味着函数没有可变变量或内部状态。Keras 3.0 通过无状态 API拥抱 JAX 的无状态性。它允许深度学习的核心组件,即层、模型、度量标准和优化器以无状态的方式进行设计。这种独特的兼容性使 Keras 3.0 成为现代 AI 开发中不可或缺的工具。

开始使用 Keras 3.0

Keras Core 兼容 Linux 和 MacOS 系统。设置 Keras 3.0 是一个简单的过程。以下是逐步指南供你参考:

1. 克隆并导航到仓库

使用以下命令将仓库克隆到本地系统中

git clone https://github.com/keras-team/keras-core.git

使用以下命令将根目录更改为克隆的 keras-core:

cd keras-core

2. 安装依赖项

打开你的终端并运行以下命令以安装所需的依赖项。

pip install -r requirements.txt

4. 运行安装命令

运行以下脚本以处理安装过程:

python pip_build.py --install

5. 配置后端

默认情况下,Keras Core 严格要求 TensorFlow 作为后端框架,但你可以使用以下两种方法进行配置:

选项 01: 你可以将 KERAS_BACKEND 环境变量设置为你首选的后端选项。

export KERAS_BACKEND="jax"

选项 02: 你可以编辑位于 ~/.keras/keras.json 的本地 Keras 配置文件。在文本编辑器中打开文件,并将“backend”选项更改为你首选的后端。

{
    "backend": "jax",
    "floatx": "float32",
    "epsilon": 1e-7,
    "image_data_format": "channels_last"
}

6. 验证安装

为确保 Keras Core 与你选择的后端正确安装,你可以通过导入库进行测试。打开 Python 解释器或 Jupyter Notebook 并运行以下命令:

import keras_core as keras

结束说明

虽然 Keras 3.0 有一些限制,比如当前的 TensorFlow 依赖和与其他后端的有限 tf.data 支持,但这个框架的未来潜力是值得期待的。Keras 目前已发布了测试版,并鼓励开发者提供宝贵的反馈。如果你有兴趣了解更多信息,可以在Keras Core (Keras 3.0) 文档中找到相关资料。不要害怕尝试新想法。Keras 3.0 是一款强大的工具,现在是参与进化的激动人心的时刻。

Kanwal Mehreen 是一位有志的软件开发者,对数据科学和 AI 在医学中的应用有浓厚的兴趣。Kanwal 被选为 2022 年 APAC 区域的 Google Generation Scholar。Kanwal 喜欢通过撰写有关趋势话题的文章来分享技术知识,并对改善女性在科技行业中的代表性感到热情。

更多相关话题

Keras 4 步骤工作流程

原文:www.kdnuggets.com/2018/06/keras-4-step-workflow.html

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

Francois Chollet 在他的书《使用 Python 的深度学习》中,早早地概述了使用 Keras 开发神经网络的总体概况。从书中早期的一个简单的 MNIST 示例出发,Chollet 简化了与 Keras 直接相关的网络构建过程,将其总结为 4 个主要步骤。

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

这不是一个机器学习工作流程,也不是一个完整的深度学习问题解决框架。这四个步骤仅涉及你整体神经网络机器学习工作流程中 Keras 相关的部分。这些步骤如下:

  1. 定义训练数据

  2. 定义一个神经网络模型

  3. 配置学习过程

  4. 训练模型

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

虽然 Chollet 接下来花费了他书中的其余部分来充分填充使用这些数据所需的详细信息,但让我们通过一个示例初步了解工作流程。

1. 定义训练数据

第一步很简单:你必须定义你的输入和目标张量。更困难的数据相关方面——这超出了 Keras 特定的工作流程——实际上是寻找或策划数据,然后进行清理和其他预处理,这对于任何机器学习任务来说都是一个问题。这是模型中的一个步骤,通常不涉及调整模型超参数。

尽管我们构造的示例随机生成了一些数据供使用,但它捕捉了此步骤的一个独特方面:定义你的输入(X_train)和目标(y_train)张量。

# Define the training data
import numpy as np

X_train = np.random.random((5000, 32))
y_train = np.random.random((5000, 5))

2. 定义一个神经网络模型

Keras 有两种定义神经网络的方法:Sequential 模型类和 Functional API。两者的目标都是定义一个神经网络,但采用了不同的方法。

Sequential 类用于定义一系列网络层,这些层共同构成一个模型。在下面的示例中,我们将使用 Sequential 构造函数创建一个模型,然后使用 add() 方法向其添加层。

创建模型的另一种方式是通过 Functional API。与 Sequential 模型只能定义由层线性堆叠构成的网络的限制不同,Functional API 提供了更多灵活性,适用于更复杂的模型。这种复杂性在多输入模型、多输出模型以及图状模型的定义使用中得到了最佳体现。

我们示例中的代码使用了 Sequential 类。首先调用构造函数,然后调用 add() 方法将层添加到模型中。第一次调用添加了一个类型为 Dense 的层(“只是你常规的密集连接 NN 层”)。Dense 层的输出大小为 16,输入大小为 INPUT_DIM,在我们的例子中为 32(请检查上面的代码片段以确认)。请注意,只有模型的第一层需要明确说明输入维度;后续层可以从前面的线性堆叠层中推断。按照标准做法,此层使用修正线性单元激活函数。

下一行代码定义了我们模型的下一个 Dense 层。请注意,此处未指定输入大小。然而,输出大小为 5,这与我们假设的多类分类问题中的类别数量相匹配(请再次查看上面的代码片段以确认)。由于我们正在解决的是一个多类分类问题,因此这一层的激活函数设置为 softmax。

# Define the neural network model
from keras import models
from keras import layers

INPUT_DIM = X_train.shape[1]

model = models.Sequential()
model.add(layers.Dense(16, activation='relu', input_dim=INPUT_DIM))
model.add(layers.Dense(5, activation='softmax'))

通过这些几行代码,我们的 Keras 模型已定义。Sequential 类的 summary() 方法提供了对我们模型的以下洞察:

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

3. 配置学习过程

在定义了训练数据和模型之后,是时候配置学习过程了。这通过调用 Sequential 模型类的 [compile()](https://keras.io/getting-started/sequential-model-guide/#compilation) 方法来完成。编译需要 3 个参数:一个 优化器、一个 损失函数,以及一个 指标 列表。

在我们的示例中,设定为多类分类问题,我们将使用 Adam 优化器、类别交叉熵损失函数,并仅包括准确率指标。

# Configure the learning process
from keras import optimizers
from keras import metrics

model.compile(optimizer='adam', 
              loss='categorical_crossentropy', 
              metrics=['accuracy'])

使用这些参数调用 compile() 后,我们的模型现在已经配置好了学习过程。

4. 训练模型

此时我们有了训练数据和一个完全配置的神经网络用于训练这些数据。剩下的就是将数据传递给模型以开始训练过程,该过程通过对训练数据的迭代完成。训练从调用 fit() 方法开始。

最少情况下,fit() 需要 2 个参数:输入和目标张量。如果没有提供更多参数,则只会执行一次训练数据的迭代,这通常没有什么用。因此,更常见的做法是,至少定义一对额外的参数:batch_size 和 epochs。我们的示例包括这 4 个总参数。

# Train the model
model.fit(X_train, y_train, 
          batch_size=128, 
          epochs=10)

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

请注意,epoch 准确率并不特别令人满意,这也很合理,因为使用了随机数据。

希望这能帮助你了解 Keras 如何通过库作者规定的简单 4 步过程解决传统分类问题。

相关:

  • 接近机器学习过程的框架

  • 掌握 Keras 深度学习的 7 个步骤

  • 使用遗传算法优化递归神经网络


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. Google 网络安全证书 - 快速进入网络安全职业道路

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. Google 数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. Google IT 支持专业证书 - 支持组织的 IT 工作


更多相关话题

Keras 回调函数三分钟解释

原文:www.kdnuggets.com/2019/08/keras-callbacks-explained-three-minutes.html

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

作者 Andre Duong,德克萨斯大学达拉斯分校

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

图片来源


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT。


在没有回调函数的情况下构建深度学习模型,就像开着没有正常刹车的车——你对整个过程几乎没有控制,很可能会导致灾难。在这篇文章中,你将学习如何使用 Keras 回调函数(如 ModelCheckpoint 和 EarlyStopping)来监控和改进你的深度学习模型。

什么是回调函数?

来自 Keras 文档:

回调函数是一组在训练过程的特定阶段应用的函数。你可以使用回调函数来查看模型在训练期间的内部状态和统计信息。

当你希望在每次训练/轮次后自动执行某些任务时,你会定义并使用回调函数,这些任务有助于你控制训练过程。这包括在达到特定的准确度/损失分数时停止训练、在每次成功的轮次后将模型保存为检查点、随着时间调整学习率等等。让我们深入探讨一些回调函数!

EarlyStopping

过拟合是机器学习从业者的噩梦。避免过拟合的一种方法是提前终止训练过程。EarlyStopping 函数具有各种指标/参数,你可以修改这些指标来设置训练过程应何时停止。以下是一些相关的指标:

  • monitor: 被监控的值,例如: val_loss

  • min_delta: 监控值的最小变化。例如,min_delta=1 意味着如果监控值的绝对变化小于 1,则训练过程将被停止。

  • patience: 在训练停止之前没有改进的轮次数量。

  • restore_best_weights: 将此指标设置为 True,如果你希望在训练停止后保留最佳权重。

以下代码示例将定义一个 EarlyStopping 函数,该函数跟踪 val_loss 值,如果在 3 个轮次后 val_loss 没有变化,则停止训练,并在训练停止时保留最佳权重:

from keras.callbacks import EarlyStoppingearlystop = EarlyStopping(monitor = 'val_loss',
                          min_delta = 0,
                          patience = 3,
                          verbose = 1,
                          restore_best_weights = True)

ModelCheckpoint

这个回调在每个 epoch 之后保存模型。以下是一些相关指标:

  • filepath:你想保存模型的文件路径

  • monitor:正在监控的值

  • save_best_only:如果你不想覆盖最新的最佳模型,请将其设置为 True

  • mode:auto, min 或 max。例如,如果监控的值是 val_loss 且你想要最小化它,则设置 mode=’min’

示例:

from keras.callbacks import ModelCheckpointcheckpoint = ModelCheckpoint(filepath,
                             monitor='val_loss',
                             mode='min',
                             save_best_only=True,
                             verbose=1)

LearningRateScheduler

from keras.callbacks import LearningRateSchedulerscheduler = LearningRateScheduler(schedule, verbose=0) # schedule is a function

这个非常简单明了:它根据你事先编写的 schedule 来调整学习率。此函数根据当前的 epoch(作为输入的 epoch 索引)返回所需的学习率(输出)。

其他回调函数

除了上述函数,还有其他回调函数你可能会遇到或想在深度学习项目中使用:

  • HistoryBaseLogger:默认情况下自动应用于你的模型的回调

  • TensorBoard:这是我最喜欢的 Keras 回调。这一回调为 TensorBoard 写入日志,而 TensorBoard 是 TensorFlow 的优秀可视化工具。如果你通过 pip 安装了 TensorFlow,你应该能从命令行启动 TensorBoard:tensorboard — logdir=/full_path_to_your_logs

  • CSVLogger:此回调将 epoch 结果流式传输到 csv 文件

  • LambdaCallback:此回调允许你构建自定义回调

结论

在这篇文章中,你已经学习了 Keras 中回调函数的主要概念。Keras 文档中有一个非常全面的回调页面,你绝对应该查看一下:keras.io/callbacks/

如果你对如何改进这篇文章有任何建议,请留言。关注我 Medium 或在 LinkedIn 上与我联系,获取更多优质内容!

个人简介:Andre Duong 是 UT 达拉斯的大二计算机科学本科生。他的兴趣包括机器学习、数据科学和软件开发。

原文。已获许可转载。

相关:

  • 高级 Keras——构建复杂的自定义损失和指标

  • 卷积神经网络:使用 TensorFlow 和 Keras 的 Python 教程

  • 哪个深度学习框架增长最快?

更多主题

Keras 超参数调整在 Google Colab 中使用 Hyperas

原文:www.kdnuggets.com/2018/12/keras-hyperparameter-tuning-google-colab-hyperas.html

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

Nils Schlüter 提供,软件工程师

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

为你的神经网络调整超参数可能会很棘手(照片由 Anthony Roberts 提供,来自 Unsplash

超参数调整是创建深度学习网络时最耗费计算资源的任务之一。幸运的是,你可以使用 Google Colab 显著加快这个过程。在这篇文章中,我将向你展示如何使用 Hyperas 调整现有 Keras 模型的超参数,并在 Google Colab 笔记本中运行所有操作。

创建一个新的笔记本并启用 GPU 运行时

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

更改运行时为 GPU 的对话框

首先,你需要创建一个新的笔记本。打开你的 Colab 控制台 并选择 新建 Python 3 笔记本。在笔记本中,从菜单中选择 运行时,然后选择 更改运行时类型。选择硬件加速器:GPU 并点击保存。这将显著加快你在这个笔记本中进行的所有计算。

安装包

你可以使用 pip 安装新包。在这种情况下,我们需要 hyperashyperopt。将以下内容复制并粘贴到笔记本的第一个单元格中:

!pip install hyperas
!pip install hyperopt

当你运行单元格时,你会看到 pip 正在下载和安装依赖项。

获取数据并创建模型

在这篇文章中,我将使用 hyperas github 页面 的示例。你可以在 这里 找到完成的 Colab 笔记本。

数据函数

你需要一个数据函数来加载你的数据。它需要返回你的 X_train、Y_train、X_test 和 Y_test 值。下面是一个数据函数的示例:

**注意:**你的数据函数需要按照确切的顺序返回这些值:X_train、Y_train、X_test、Y_test。如果你使用 scikit-learn 的 train_test_split,要小心,因为它返回值的顺序可能不同。

模型函数

模型函数是你定义模型的地方。你可以使用所有可用的 Keras 函数和层。为了添加用于调整的超参数,你可以使用 {{uniform()}}{{choice()}} 关键字。

假设你想尝试不同的batch_size值。你可以简单地写batch_size={{choice([32, 64, 128])}},在每次试用中,将会选择并尝试其中一个值。关于如何定义待调整的参数的更详细说明可以在 Hyperas Github 页面 上找到,或者你可以查看示例:

注意: 你的模型函数必须返回一个包含 loss 键和 status 键的 Python 字典

Colab 的问题

如果你现在尝试运行这个示例,试用将会失败,因为 Hyperas 无法找到你的笔记本。你需要复制你的笔记本并重新上传到你的 Google Drive 文件夹中。幸运的是,你可以从笔记本内部完成此操作,详见这个 stackoverflow 回答

注意: 在第 16 行和第 18 行,你需要将HyperasMediumExample更改为你自己的笔记本名称

运行此单元格后,你将被提示在浏览器中打开一个网站并将代码复制并粘贴回笔记本中:

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

你运行上面单元格后的输出

跟随链接,用你的 Google 账户登录,并将代码复制并粘贴回笔记本。如果你打开左侧边栏中的文件选项卡,你现在应该能看到一个名为 .ipynb 的文件

开始试用

现在你可以开始试用。请注意,你必须将参数notebook_name设置为你的笔记本名称。否则试用将会失败:

运行此单元格后,扫描将开始,你可以在单元格的输出中查看结果。

故障排除

如果你在操作过程中遇到任何问题,我建议你执行以下操作:

  1. 在左侧边栏中,打开文件。会有一个名为 .ipynb 的文件。删除该文件

  2. 在菜单中,选择运行时,然后选择重启运行时

  3. 重新加载页面

在你的运行时重新连接后,你可以通过从上到下运行每个单元格来重新开始

结论

只需进行一些调整,你就可以使用 Google Colab 来调整 Keras 网络的超参数。再次提醒,完整示例可以在 这里 找到。

个人简介:Nils Schlüter (@schlueter_nils) 是一位软件工程师及机器学习爱好者。

原文。已获转载许可。

相关:

  • 自动化机器学习的当前状态

  • Auto-Keras,或如何用 4 行代码创建深度学习模型

  • 自动化机器学习与自动化数据科学


我们的三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业生涯

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你所在组织的 IT


更多相关话题

有志数据科学家的关键算法和统计模型

原文:www.kdnuggets.com/2018/04/key-algorithms-statistical-models-aspiring-data-scientists.html

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

作为一名已经从业多年的数据科学家,我经常在 LinkedIn 和 Quora 上收到学生和职业转行者的职业建议或课程选择指导。一些问题围绕教育路径和课程选择,但许多问题集中在当前数据科学中常见的算法或模型上。

面对大量的算法选择,很难知道从哪里开始。课程可能包括当前行业中不常用的算法,也可能排除一些当前并不流行但非常有用的方法。基于软件的程序可能会忽略重要的统计概念,而基于数学的程序可能会略过一些关键的算法设计主题。

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


我们的前三个课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析能力

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT 需求


我为有志的数据科学家准备了一份简短的指南,特别关注统计模型和机器学习模型(监督和无监督);许多这些主题在教科书、研究生级统计课程、数据科学训练营和其他培训资源中都有涵盖(其中一些在文章的参考部分包含)。由于机器学习是统计学的一个分支,机器学习算法技术上属于统计知识,同时也涉及数据挖掘和更多基于计算机科学的方法。然而,由于一些算法与计算机科学课程内容重叠,并且许多人将传统统计方法与新方法分开,我将在列表中将这两个分支分开。

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

统计方法包括一些在训练营和证书课程中常见的方法概述,以及一些在研究生统计课程中通常教授但在实践中非常有用的不太常见的方法。我建议的所有工具都是我经常使用的:

  1. 广义线性模型,它是大多数监督学习方法的基础(包括逻辑回归和 Tweedie 回归,它对行业中遇到的大多数计数或连续结果进行广义化……)

  2. 时间序列方法(ARIMA、SSA、基于机器学习的方法)

  3. 结构方程建模(用于建模和测试中介路径)

  4. 因子分析(用于调查设计和验证的探索性和确认性)

  5. 功效分析/试验设计(特别是基于模拟的试验设计,以避免过度强大的分析)

  6. 非参数检验(从头开始推导测试,特别是通过模拟)/MCMC

  7. K 均值聚类

  8. 贝叶斯方法(朴素贝叶斯、贝叶斯模型平均、贝叶斯自适应试验……)

  9. 惩罚回归模型(弹性网、LASSO、LARS……)以及一般模型中添加的惩罚(SVM、XGBoost……),这些对预测变量多于观测值的数据集非常有用(在基因组学和社会科学研究中很常见)

  10. 基于样条的模型(MARS……)用于灵活建模过程

  11. 马尔可夫链和随机过程(时间序列建模和预测建模的替代方法)

  12. 缺失数据插补方案及其假设(missForest,MICE……)

  13. 生存分析(对建模流失和退化过程非常有帮助)

  14. 混合建模

  15. 统计推断和分组测试(A/B 测试及许多市场营销活动中实现的更复杂的设计)

机器学习扩展了许多这些框架,特别是 K 均值聚类和广义线性建模。一些在许多行业中通用的有用技术(以及一些更为晦涩但意外有用的算法,但很少在训练营或证书课程中教授)包括:

  1. 回归/分类树(广义线性模型的早期扩展,具有高准确性、良好的可解释性和低计算开销)

  2. 降维(PCA 和流形学习方法如 MDS 和 tSNE)

  3. 经典前馈神经网络

  4. 装袋集成(作为随机森林和 KNN 回归集成算法的基础)

  5. 提升集成(作为梯度提升和 XGBoost 算法的基础)

  6. 参数调优或设计项目的优化算法(遗传算法、量子启发的进化算法、模拟退火、粒子群优化)

  7. 拓扑数据分析工具,这些工具特别适合用于小样本量的无监督学习(持久同源性、Morse-Smale 聚类、Mapper……)

  8. 深度学习架构(一般深度架构)

  9. KNN 方法用于局部建模(回归、分类)

  10. 基于梯度的优化方法

  11. 网络指标和算法(中心性测量、介数、多样性、熵、拉普拉斯、流行病传播、谱聚类)

  12. 深度架构中的卷积和池化层(在计算机视觉和图像分类模型中尤为有用)

  13. 层次聚类(与 k 均值聚类和拓扑数据分析工具相关)

  14. 贝叶斯网络(路径挖掘)

  15. 复杂性和动态系统(与微分方程相关,但通常用于建模没有已知驱动因素的系统)

根据所选择的行业,可能需要与自然语言处理(NLP)或计算机视觉相关的额外算法。然而,这些是数据科学和机器学习的专业领域,进入这些领域的人通常已经是该领域的专家。

一些在学术项目之外学习这些方法的资源包括:

Christopher, M. B. (2016). 《模式识别与机器学习》。Springer-Verlag New York.

Friedman, J., Hastie, T., & Tibshirani, R. (2001). 《统计学习的元素》(第 1 卷,第 337-387 页)。纽约:Springer 统计系列。

www.coursera.org/learn/machine-learning

professional.mit.edu/programs/short-programs/machine-learning-big-data

www.slideshare.net/ColleenFarrelly/machine-learning-by-analogy-59094152

相关:

更多相关主题

内容概要:本文详细介绍了一个基于Python实现的锂电池剩余寿命(RUL)预测项目,采用Transformer-LSTM混合深度学习模型,结合GUI界面实现智能化预测与可视化分析。项目涵盖从数据生成、特征工程、模型构建(Transformer自注意力机制与LSTM时序建模融合)、训练优化、性能评估到实际部署的全流程。通过滑动窗口采样、数据归一化、多维度评估指标(MSE、MAE、R²、RMSE、MAPE)及残差分析,确保模型高精度与鲁棒性。同时集成注意力权重与LSTM隐状态可视化功能,提升模型可解释性,并设计了完整的GUI交互系统,支持数据加载、模型热插拔推理与预测结果动态展示。; 适合人群:具备一定Python编程基础和深度学习知识,熟悉PyTorch框架的数据科学从业者、研究生及从事新能源、智能制造、电池管理系统开发的工程师。; 使用场景及目标:①应用于新能源汽车、储能电站、消费电子等领域的电池健康管理;②实现锂电池剩余寿命的高精度动态预测,支持智能运维与故障预警;③为科研人员提供可复现、可扩展的深度学习时序建模实例,推动电池寿命预测技术的工程化落地。; 阅读建议:建议读者结合代码与文档逐步实践,重点关注数据预处理、模型结构设计与GUI集成部分,尝试在本地环境中运行并调试程序,深入理解Transformer与LSTM协同工作机制,同时可扩展多模态输入或轻量化部署以适应更多应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值