---- 新智元报道 来源:Medium 编辑:元子 【新智元导读】本文通过详实的代码,从如何安装PyTorch开始,一步一步带领读者熟悉PyTorch和Jupyter Notebook,最终使用...训练数据 在Jupyter Notebook里导入NumPy和PyTorch 训练数据我们inputs和targets两个矩阵表示,每个观察一行,每个变量一列。...还有一个10,000个图像的附加测试集,可以通过将train = False传递给MNIST类来创建。 该图像是PIL.Image.Image类的对象,由28x28图像和标签组成。...先看数据集里的几个图片: 除了导入matplotlib之外,还添加了一个特殊声明%matplotlib inline,告知Jupyter要在Notebook中绘制图形。...我们的新自定义模型可以像以前一样使用。 让我们看看它是否有效。 对于100个输入图像中的每一个,我们得到10个输出,每个类别一个。
本文会通过一个简单的数据分析例子来介绍 Jupyter notebook 的使用方法。...运行 Jupyter 在 Windows,可以通过添加到开始菜单的快捷方式运行 Jupyter ,当然也可以通过在命令行输入命令 jupyter notebook 开始运行,然后会在默认浏览器中打开一个新的窗口...接下来就是创建一个新的 notebook,可以如下图所示,在管理界面的右上角位置,点击 New 菜单,这里就可以选择 Python 3 (或者其他的版本),然后就可以创建成功,并且是在新的窗口打开这个...对数据集的探索 现在开始处理我们的数据集,通过 pandas 读取后得到的是称为 DataFrame 的数据结构,首先就是先查看下数据集的内容,输入以下两行代码,分别表示输出数据的前五行,和最后五行的内容...接着,我们再查看数据集是否和我们希望导入的一样,一个简单的检查方法就是查看数据类型是否正确: 这里可以发现 profit 数据类型居然是 object 而不是和收入 revenue 一样的float64
如果你没有时间全面记录你此刻正在做什么或在想什么,那么留下简短的描述性笔记来提醒自己,在可以停下时抓紧把这些内容添加上。...始终在这些依赖项创建的环境中工作,以确保不添加未记录的依赖项。 在 notebook 中,你可以使用 notebook 的扩展(如 watermark)显式打印依赖项。...理想情况下,你可以在 notebook 中共享整个数据集。我们认识到许多数据集太大或太敏感,无法以这种方式共享。...在这些情况下,考虑将大型和复杂的数据集分解为多个层次,这样即使原始数据太大,无法与已发布的 notebook 一起共享,或者受到隐私或其他访问问题的限制,也不会影响到可复现性。...你可以通过多种方式支持他人重用你的 notebook。首先,将 notebook 存储到一个具备清晰 README 文件的公共代码库中。
1 用df.groupby ().iter ()分析数据样本 与Excel相比,在Jupyter Notebook中逐行或逐组地查看数据集通常比较困难。...链接基本上是在相同的代码“行”中添加操作。...运行下面的代码: 在数据集中添加新列(.merge) 计算女乘客比例(.apply(female_proportion)) 乘客人数超过一人的团体(df.Ticket.value_counts(...)>1) 拥有相同的票号(.groupby('Ticket ')) 我们不需要创建新的dataframes,新的变量等任何新的东西。...6 tqdm 在处理大型数据集时,数据操作需要时间。使用tqdm来跟踪你的代码是否正在实际运行,以及它需要多长时间,而不是在你的Jupyter Notebook无聊的等待,而不知道发生了什么。
通过使用被称为梯度下降的优化技术,少量多次调整权重以获得更精准的预测结果。 训练数据 在Jupyter Notebook里导入NumPy和PyTorch ?...这个数据集有60000张图片,可以用来训练模型。还有一个10,000个图像的附加测试集,可以通过将train = False传递给MNIST类来创建。 ?...我们的新自定义模型可以像以前一样使用。 让我们看看它是否有效。 ? 对于100个输入图像中的每一个,我们得到10个输出,每个类别一个。...我们首先使用ToTensor变换重新创建测试数据集。 ? 数据集中单个图像的样本: ? 让我们定义一个辅助函数predict_image,它返回单个图像张量的预测标签。 ?...要加载模型权重,我们可以实例化MnistModel类的新对象,并使用.load_state_dict方法。 ? 正如完整性检查一样,让我们验证此模型在测试集上具有与以前相同的损失和准确性。 ? 好了。
然后你就可以通过在终端(或者 Anaconda GUI)输入 Jupyter Notebook 随时启动该环境。...,意味着训练集中包含一系列的观察数据(行)和相关的多种信息(列)。...我们还有一个测试集,也包含一系列的观察数据,其中的列与训练集相同,除了目标变量,因为我们的目标就是预测目标变量的值。...因此,我修改了代码,加上 index_col=『Id』作为参数,从而在加载数据到 DataFrame 的时候,确保 Pandas 将其作为索引而不是列,并在它之前添加一个新的索引列。...随后,我在训练集和测试集中添加了一个新的临时列('training_set'),以便我们可以将它们连接在一起(将它们放在同一个 DataFrame 中),然后再将它们分开。
图 2-3 Jupyter 的工作空间 这一步做了三件事:首先,在工作空间中创建了一个新的 notebook 文件Untitled.ipynb;第二,它启动了一个 Jupyter 的 Python 内核来运行这个...所有估计器的超参数都可以通过公共实例变器直接访问(比如,imputer.strategy),并且所有估计器学习到的参数也可以通过公共实例变器添加下划线后缀访问(比如,imputer.statistics...这个超参数可以让你方便地发现添加了这个属性是否对机器学习算法有帮助。更一般地,你可以为每个不能完全确保的数据准备步骤添加一个超参数。...警告:与所有的转换一样,缩放器只能向训练集拟合,而不是向完整的数据集(包括测试集)。只有这样,才能用缩放器转换训练集和测试集(和新数据)。...尝试创建一个单独的可以完成数据准备和最终预测的流水线。 使用GridSearchCV自动探索一些准备过程中的候选项。 练习题答案可以在线上的 Jupyter notebook 找到。
本文不对数据采集的过程深入探讨,即不讨论怎么在数据采集过程中保证数据的准确性;而是聚焦在对现有的数据集,如何快速高效地评估数据集的质量,找出数据集中存在的瑕疵问题。...可使用Overview了解数据集每个特征的分布,或使用Dive研究个别样本的细节。这两个组件让你可以轻松地调试自己的数据,这在机器学习中与调试模型一样重要。...Overview的价值? 是的,确切地讲,用pandas手动来进行这个层面的分析已经是一种最佳实践了。但是我们很容易忘记了要详细检查数据中每一列的所有指标。...如果想要跟踪和可视化某些特征额外的统计量,可以在custom stats字段中添加。...你可以按照行和列来撷取数据中一小个“facet”,观察它在所有特征值中的情况。就好比你在网购一双鞋,然后通过过滤工具筛选大小、品牌和颜色。Dive使得挖掘出复杂数据集的模式和异常值变得更加简单。
让我们简单看看什么是相关性,以及如何使用热图在数据集中找到强相关性。 什么是相关性 相关性是确定数据集中的两个变量是否以任何方式相关的一种方法。 相关有许多实际应用。...我们可以看到使用某些搜索词是否与youtube上的浏览量相关。或者,我们可以看看广告是否与销售额相关。在建立机器学习模型时,相关性是决定特征的一个重要因素。...使用core方法 使用Pandas 的core方法,我们可以看到数据帧中所有数值列的相关性。因为这是一个方法,我们所要做的就是在DataFrame上调用它。返回值将是一个显示相关性的新数据帧。...检查一个变量 我们还可以通过使用列名进行切片来单独检查每个变量。...在几秒钟内,我们就可以看到输入数据的相关性,并得到至少3个想法来探索。 结论 相关性有助于探索新的数据集。通过使用seaborn的热图,我们很容易看到最强的相关性在哪里。
在当前工作空间里创建一个新的 notebook 未命名文件:Untitled.ipynb;2. 启动 Jupyter Python 核来运行这个 notebook;3....3.3 快速查看数据结构 先来看一下数据集的结构,运行以下语句,查看前 5 行: housing = load_housing_data() housing.head() 显示结果如下: 该数据集中每一行代表一个地区...但是这两种方法在数据集更新的时候都会失效。一种常用的解决方法是使用每个实例的标志符来决定是否作为测试集(假设标识符是唯一且不变的)。...下面的代码通过将收入中位数除以 1.5 来创建一个输入类别属性(除以 1.5 的目的就是为了防止类别过多)。...下图比较了整个数据集、纯随机采样测试集、分层采样测试集三者之间收入类比的比例。可以看出,分层采样测试集的收入类别比例与整个数据集近似相同,而纯随机采样测试集与整个数据集相比产生了较大的偏差。
幸运的是,在与下游系统主管探讨之后,你很确信他们需要的就是实际的价格,而不是分类。很好!整装待发,可以开始写代码了。 获取数据 开始动手。最后用Jupyter notebook完整地敲一遍示例代码。...图2-3 Jupyter的工作空间 这一步做了三件事:首先,在工作空间中创建了一个新的notebook文件Untitled.ipynb;第二,它启动了一个Jupyter的Python内核来运行这个notebook...所有估计量的超参数都可以通过公共实例变量直接访问(比如,imputer.strategy),并且所有估计量学习到的参数也可以通过公共实例变量添加下划线后缀访问(比如,imputer.statistics...这个超参数可以让你方便地发现添加了这个属性是否对机器学习算法有帮助。更一般地,你可以为每个不能完全确保的数据准备步骤添加一个超参数。...警告:与所有的转换一样,缩放器只能向训练集拟合,而不是向完整的数据集(包括测试集)。只有这样,才能用缩放器转换训练集和测试集(和新数据)。
我使用 Google Colab 编写了初始程序,这是一个免费的在线 Jupyter Notebook。Google Colab 的一大优点是我可以将我的工作存储在 Google 驱动器中。...Google colab 的坏处是没有撤消功能,因此需要注意不要覆盖或删除有价值的代码。 创建 Jupyter Notebook 后,我导入了我需要的库。...下面的屏幕截图显示了我绘制出所有列后的df。 我要注意的是,在我创建了这个程序之后,我回过头来对数据进行打乱,看看是否可以达到更高的精度,但在这种情况下,打乱没有效果。...我不得不说,我个人希望获得更高的准确度,所以我在 MultinomialNB 估计器上尝试了数据,它对准确度没有任何影响。 也可以仅对一行数据进行预测。...在下面的示例中,我对 ([2,1,1,0]) 进行了预测,得出的预测为 1,这与数据集中的数据相对应。 提高该模型准确性的一种方法是增加数据。
从 Jupyter Notebook 中绘图 如果你是从基于浏览器的 Jupyter Notebook 中看这段代码,需要使用同样的%matplotlib魔法命令。...Tips:可以在引入Matplotlib后通过运行plt.style.use(style_name)来修改绘图的风格。所有可用的风格在plt.style.available中列出。...为了更好玩,可以运行plt.xkcd(),然后尝试绘制一些别的图形。 03 可视化外部数据集的数据 作为本章最后一个测试,让我们对外部数据集进行可视化,比如scikit-learn中的数字数据集。...首先,使用NumPy的数组切片从数据集中获取一幅图像: In [4]: img = digits.images[0, :, :] 这里是从1797个元素的数组中获取了它的第一行数据,这行数据对应的是8×...subplot函数与MATLAB中的函数一样,需要指定行数、列数以及当前的子绘图索引(从1开始计算)。我们将使用for 循环在数据集中迭代出前十张图像,每张图像都分配到一个单独的子绘图中。
首先读入数据,这里使用到的全美婴儿姓名数据,包含了1880-2018年全美每年对应每个姓名的新生儿数据,在jupyterlab中读入数据并打印数据集的一些基本信息以了解我们的数据集: import pandas...譬如这里我们想要得到gender列的F、M转换为女性、男性的新列,可以有以下几种实现方式: 字典映射 这里我们编写F、M与女性、男性之间一一映射的字典,再利用map()方法来得到映射列: #定义F->女性...结合tqdm_notebook()给apply()过程添加美观进度条 熟悉tqdm的朋友都知道其针对jupyter notebook开发了ui更加美观的tqdm_notebook()。...而要想在jupyter notebook/jupyter lab平台上为pandas的apply过程添加美观进度条,可以参照如下示例: from tqdm....reset_index()将索引列还原回变量,但聚合结果的列名变成红色框中奇怪的样子,而在pandas 0.25.0以及之后的版本中,可以使用pd.NamedAgg()来为聚合后的每一列赋予新的名字:
领取专属 10元无门槛券
手把手带您无忧上云