scikit-learn 学习(四)处理文本数据

本指南旨在一个单独实际任务中探索一些主要的 scikit-learn 工具: 分析关于 20 个不同主题的一个文档集合(新闻组帖子)。

在本节中,我们将会学习如何:

  • 读取文件内容以及所属的类别
  • 提取合适于机器学习的特征向量
  • 训练一个线性模型来进行分类
  • 使用网格搜索策略找到特征提取组件和分类器的最佳配置

教程设置

本教程源码在 scikit-learn 文件夹中

scikit-learn/doc/tutorial/text_analytics/

教程文件夹包含下列文件夹:

  • *.rst files - 教程文档源文件
  • data - 输入数据集的文件夹
  • skeletons - 为了练习用的不完整样本
  • solutions - 练习的答案

载入 20 新闻组数据集

这个数据集包含20000个新闻文档,几乎被平均分成20个不同的组。这是在文本应用中非常流行的数据。

首先,我们只考虑20个类中的其中4个

查看更多

分享到

scikit-learn 学习(三)可视化股市结构

本例使用一些无监督学习技术从历史报价的变化来提取股市结构。
我们使用的数量是报价的每日变化:相关的报价往往会在一天中出现波动。

学习一个图结构

我们使用稀疏逆协方差估计来寻找哪些报价与其他条件相关。特别地,稀疏逆协方差给出了一个图,它是一个关联的表。对给一个符号,它所连接的符号也能解释它的波动。

聚类

我们使用聚类来聚集相似的报价。这里,scikit-learn 中有各种可用的聚类技术,我们使用Affinity Propagation(吸引子传播),因为它不强制要求相同大小的类,并且可以自动从数据中选择类的数量。

请注意,这给了我们一个不同于图表的指示,因为图表反映了变量之间的条件关系,而聚类则反映了边际性质:聚集在一起的变量可以被认为在整个股票市场上具有类似的影响。

嵌入到2D空间

为了可视化,我们需要在2D画布上放置不同的符号。 为此,我们使用流形学习技术来进行二维嵌入。

可视化

3个模型的输出结合在一个2D图中,其中节点表示股票和边:

  • 簇标签用于定义节点的颜色
  • 稀疏协方差模型用于显示边的强度
  • 二维嵌入用于定位平面中的节点

这个例子有相当多的与可视化相关的代码,因为可视化对于显示图形至关重要。 其中一个挑战是定位标签,尽量减少重叠。 为此,我们使用基于每个轴最近邻的方向的启发式方法。

查看更多

分享到

scikit-learn 学习(二)科学数据处理中的统计学习教程 (下)

无监督学习: 寻找数据的表示

1. 聚类

K-means

最简单的聚类算法

1
2
3
4
5
6
7
from sklearn import cluster, datasets
iris = datasets.load_iris()
X_iris = iris.data
y_iris = iris.target

k_means = cluster.KMeans(n_clusters=3)
k_means.fit(X_iris)
KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,
    n_clusters=3, n_init=10, n_jobs=1, precompute_distances='auto',
    random_state=None, tol=0.0001, verbose=0)

查看更多

分享到

scikit-learn 学习(二) 科学数据处理中的统计学习教程(上)

本教程使用统计学习技术

1. 统计学习:设置, estimator 对象

Datasets

1
2
3
4
from sklearn import datasets
iris = datasets.load_iris()
data = iris.data
data.shape
(150, 4)
1
2
digits = datasets.load_digits()
digits.images.shape
(1797, 8, 8)
1
2
import matplotlib.pyplot as plt
plt.imshow(digits.images[-1], cmap=plt.cm.gray_r)
<matplotlib.image.AxesImage at 0x7fd41bfb1a20>

为了在 scikit 中使用这个数据集,把每张 8*8 的图像转换为长度为64的向量

1
data = digits.images.reshape((digits.images.shape[0], -1))

查看更多

分享到

scikit-learn 学习(一)介绍与安装

现在开始学习 scikit-learn 库。直接从学习官方文档入手,打算边翻译边码代码。

1. 安装

pip 安装

pip install -U scikit-learn

查看更多

分享到

TensorFlow 学习教程(二)Image Recognition

DCNN 可以实现合理的表现在视觉识别任务上。

研究者已经实现了稳定的计算机视觉程序通过在 ImageNet 上验证他们的工作。成功的模型持续进步:QuocNetAlexNetInception(GoogLeNet)BN-Inception-v2。研究者已经公布了论文来描述这些模型但是仍然难以重现。我们现在通过 releasing code 来运行图像识别在我们最新的模型,Inception-v3

Inception-v3 被训练用来 ImageNet 2012 比赛。这是一个标准的计算机视觉任务。模型尝试分类完整的图片到 1000 类中,例如 “Zebra”, “Dalmatian”, and “Dishwasher”。例如,下面是 AlexNet 分类一些图片的结果:

查看更多

分享到

TensorFlow 学习教程(一)Using GPUs

支持的设备

在一个特定的系统中,有很多计算设备。TensorFlow 中,支持的设备是 CPU 与 GPU。它们用 strings 来表示。例如:

  • “/cpu:0”:表示CPU
  • “/device:GPU:0”: 第一个GPU
  • “/device:GPU:1”: 第二个GPU

查看更多

分享到

TensorFlow 学习教程 (引言)

这个部分的教程具体示范了如何用 TensorFlow 处理特定的任务。如果刚接触本文档,推荐在阅读本教程前阅读”Get Started”。

查看更多

分享到

Programmers Guide

本部分的文章是深入 TensorFlow code 的细节。由以下部分组成:

  • Estimators: 介绍了高级 TensorFLow API,简化了 ML 编程
  • Tensors: 介绍了如何创建、操作和处理张量
  • Variables: 详细地说明了如何表示共享的、持续的状态
  • Graph and Session:
    • 数据流图: 是 TensorFlow 对计算的表示作为操作之间的依赖关系
    • 会话: 是 TensorFlow 在1个或多个本地或远程设备的运行计算流图的机制。如果你用底层 TensorFlow API 编程,这是必需的。如果你用高级 API 编程例如 Estimators 或 Keras,高级 API 为你创建和管理了图和会话,但是理解图和会话仍然有帮助
  • Saving and Restoring: 介绍了如何存储和恢复变量与模型
  • Input Pipelines: 介绍了如何建立数据流水线来读入数据到 TensorFlow 程序中
  • Embeddings: 介绍了嵌入的观念,提供了一个简单的例子在 TensorFlow 中训练一个嵌入,并且介绍了如何在 TensorBoard Embedding Projector 中可视化嵌入
  • Debugging TensorFlow Programs: 介绍了如何使用 TensorFlow debugger(tfdbg)
  • TensorFlow Version Compatibility: 介绍了向后兼容性保证和非保证
分享到

TensorBoard Histogram Dashboard

TensorBoard 直方图仪表盘展示了在 TensorFlow 图中一些 Tensor 的分布是如何随着时间所改变的。它通过展示很多关于你的张量在不同时间点的的直方图来实现。

查看更多

分享到