Enterprise Just Builder

Solution for Enterprise Software Architecture

大数据和机器学习

稀疏矩阵的存储格式

稀疏矩阵是指矩阵中的元素大部分是零的矩阵。现实问题中的大规模矩阵基本上都是稀疏矩阵,甚至有很多矩阵的稀疏度在 90% 甚至 99% 以上。而稀疏矩阵向量乘 (SpMV Sparse matrix-vector multiplication) 是线性迭代解法器常用的计算内核之一。而稀疏矩阵非零元的存储格式决定了 SpMV 实现时内存访问的效率。本文对几种经典的格式进行了总结和说明。

1. COO 格式(Coordinate Format)
COO 是最简单的存储格式。它采用三个数组 row、col 和 values 保存非零元素的信息。其中 values 保存元素的, 而元素的行坐标和列坐标,则依次分别保存在 row 和 col 中。一般来说,COO 主要用来创建矩阵,因为无法对矩阵的元素进行增删改等操作,一旦矩阵创建成功以后,会转化为其他形式的矩阵。

图1-1 中的矩阵用 COO 格式表示如下

import scipy.sparse as sp
row = [0,0,1,1,2,2,2,3,3]
col = [0,1,1,2,0,2,3,1,3]
values = [1,7,2,8,5,3,9,6,4]
print(sp.coo_matrix((values,(row,col)),shape=(4,4)).toarray())

用 coo_matrix 创建矩阵的时候,相同的行列坐标可以重复出现。当矩阵创建完成后,这些重复坐标的值会被相加。

2. LiL 格式 (List Of Lists)
LiL 格式用两个列表存储每一行的非零元素。一个列表保存每行中的非零元素的值, 另一个列表保存非零元素所在的列坐标。这些列表又作为 values 和 rows 这两个列表的元素来存储。

>>> 阅读全文

 

机器学习(1)数据挖掘 机器学习 和人工智能的区别

本文主要分为两部分,第一部分阐述数据挖掘(data mining)、机器学习(machine learning)和人工智能(AI)之间的区别。这三者的区别主要是目的不同,其手段(算法,模型)有很大的重叠,所以容易混淆。第二部分主要阐述以上的技能与数据科学(data science)的关系,以及数据科学(data science)和商业分析(business analytics)之间的关系。

数据挖掘 VS. 机器学习VS. 人工智能
数据挖掘 (data mining): 有目的地从现有大数据中提取数据的模式 pattern 和模型 model。
关键字:模式提取,大数据。

数据挖掘是从现有的信息(existing information)中提取数据的模式(pattern)和模型(model),即精选出最重要的信息,以用于未来机器学习和 AI 的数据使用。其核心目的是找到数据变量之间的关系。其发展出来的主要原因是大数据的发展,用传统的数据分析的方式已经无能处理那么多大量的看似不相关的数据的处理,因此需要数据挖掘技术去提取各种数据和变量之间的相互关系,从而精炼数据。

数据挖掘本质上像是机器学习和人工智能的基础,他的主要目的是从各种各样的数据来源中,提取出超集(superset)的信息,然后将这些信息合并让你发现你从来没有想到过的模式和内在关系。这就意味着,数据挖掘不是一种用来证明假说的方法,而是用来构建各种各样的假说的方法。数据挖掘不能告诉你这些问题的答案,他只能告诉你,A 和 B 可能存在相关关系,但是它无法告诉你 A 和 B 存在什么相关关系。

机器学习(machine learning): 自动地从过往的经验中学习新的知识。
关键字:关键字: 自动化,自我优化,预测,training data,推荐系统

>>> 阅读全文

 

, ,