精华内容
下载资源
问答
  • GIS ArcGIS 常见 名词 专业 术语 解释
  • 金融专业术语词典

    2018-06-04 15:21:45
    非常全面的金融领域术语词典,可以直接使用python进行处理
  • 机器学习常见术语汇总

    万次阅读 2018-11-15 18:07:35
    「特征列」是谷歌专用的术语。在 VW 系统(Yahoo/Microsoft)中特征列的意义是「命名空间」(namespace),或者场(field)。 特征交叉(feature cross) 将特征进行交叉(乘积或者笛卡尔乘积)运算后得到的...

    A

    准确率(accuracy)

    分类模型预测准确的比例。在多类别分类中,准确率定义如下:

    在二分类中,准确率定义为:

    激活函数(Activation function)

    一种函数(例如 ReLU 或 Sigmoid),将前一层所有神经元激活值的加权和输入到一个非线性函数中,然后向下一层传递该函数的输出值(典型的非线性)。

    AdaGrad

    一种复杂的梯度下降算法,重新调节每个参数的梯度,高效地给每个参数一个单独的学习率。详见论文:

    http://www.jmlr.org/papers/volume12/duchi11a/duchi11a.pdf。

    AUC(曲线下面积)

    一种考虑到所有可能的分类阈值的评估标准。ROC 曲线下面积代表分类器随机预测真正类(Ture Positives)要比假正类(False Positives)概率大的确信度。

    B

    反向传播(Backpropagation)

    神经网络中完成梯度下降的重要算法。首先,在前向传播的过程中计算每个节点的输出值。然后,在反向传播的过程中计算与每个参数对应的误差的偏导数。

    基线(Baseline)

    被用为对比模型表现参考点的简单模型。基线帮助模型开发者量化模型在特定问题上的预期表现。

    批量

    模型训练中一个迭代(指一次梯度更新)使用的样本集。

    批量大小(batch size)

    一个批量中样本的数量。例如,SGD 的批量大小为 1,而 mini-batch 的批量大小通常在 10-1000 之间。批量大小通常在训练与推理的过程中确定,然而 TensorFlow 不允许动态批量大小。

    偏置(bias)

    与原点的截距或偏移量。偏置(也称偏置项)被称为机器学习模型中的 b 或者 w0。例如,偏置项是以下公式中的 b:y′=b+w_1x_1+w_2x_2+…w_nx_n。

    注意不要和预测偏差混淆。

    二元分类器(binary classification)

    一类分类任务,输出两个互斥(不相交)类别中的一个。例如,一个评估邮件信息并输出「垃圾邮件」或「非垃圾邮件」的机器学习模型就是一个二元分类器。

    binning/bucketing

    根据值的范围将一个连续特征转换成多个称为 buckets 或者 bins 二元特征,称为 buckets 或者 bins。例如,将温度表示为单一的浮点特征,可以将温度范围切割为几个离散的 bins。假如给定的温度的敏感度为十分之一度,那么分布在 0.0 度和 15.0 度之间的温度可以放入一个 bin 中,15.1 度到 30.0 度放入第二个 bin,30.1 度到 45.0 度放入第三个 bin。

    C

    标定层(calibration layer)

    一种调整后期预测的结构,通常用于解释预测偏差。调整后的预期和概率必须匹配一个观察标签集的分布。

    候选采样(candidate sampling)

    一种优化训练时间的,使用 Softmax 等算法计算所有正标签的概率,同时只计算一些随机取样的负标签的概率。例如,有一个样本标记为「小猎兔狗」和「狗」,候选取样将计算预测概率,和与「小猎兔狗」和「狗」类别输出(以及剩余的类别的随机子集,比如「猫」、「棒棒糖」、「栅栏」)相关的损失项。这个想法的思路是,负类别可以通过频率更低的负强化(negative reinforcement)进行学习,而正类别经常能得到适当的正强化,实际观察确实如此。候选取样的动力是计算有效性从所有负类别的非计算预测的得益。

    检查点(checkpoint)

    在特定的时刻标记模型的变量的状态的数据。检查点允许输出模型的权重,也允许通过多个阶段训练模型。检查点还允许跳过错误继续进行(例如,抢占作业)。注意其自身的图式并不包含于检查点内。

    类别(class)

    所有同类属性的目标值作为一个标签。例如,在一个检测垃圾邮件的二元分类模型中,这两个类别分别是垃圾邮件和非垃圾邮件。而一个多类别分类模型将区分狗的种类,其中的类别可以是贵宾狗、小猎兔狗、哈巴狗等等。

    类别不平衡数据集(class-imbalanced data set)

    这是一个二元分类问题,其中两个类别的标签的分布频率有很大的差异。比如,一个疾病数据集中若 0.01% 的样本有正标签,而 99.99% 的样本有负标签,那么这就是一个类别不平衡数据集。但对于一个足球比赛预测器数据集,若其中 51% 的样本标记一队胜利,而 49% 的样本标记其它队伍胜利,那么这就不是一个类别不平衡数据集。

    分类模型(classification)

    机器学习模型的一种,将数据分离为两个或多个离散类别。例如,一个自然语言处理分类模型可以将一句话归类为法语、西班牙语或意大利语。分类模型与回归模型(regression model)成对比。

    分类阈值(classification threshold)

    应用于模型的预测分数以分离正类别和负类别的一种标量值标准。当需要将 logistic 回归的结果映射到二元分类模型中时就需要使用分类阈值。例如,考虑一个确定给定邮件为垃圾邮件的概率的 logistic 回归模型,如果分类阈值是 0.9,那么 logistic 回归值在 0.9 以上的被归为垃圾邮件,而在 0.9 以下的被归为非垃圾邮件。

    混淆矩阵(confusion matrix)

    总结分类模型的预测结果的表现水平(即,标签和模型分类的匹配程度)的 NxN 表格。混淆矩阵的一个轴列出模型预测的标签,另一个轴列出实际的标签。N 表示类别的数量。在一个二元分类模型中,N=2。例如,以下为一个二元分类问题的简单的混淆矩阵:

    上述混淆矩阵展示了在 19 个确实为肿瘤的样本中,有 18 个被模型正确的归类(18 个真正),有 1 个被错误的归类为非肿瘤(1 个假负类)。类似的,在 458 个确实为非肿瘤的样本中,有 452 个被模型正确的归类(452 个真负类),有 6 个被错误的归类(6 个假正类)。

    多类别分类的混淆矩阵可以帮助发现错误出现的模式。例如,一个混淆矩阵揭示了一个识别手写数字体的模型倾向于将 4 识别为 9,或者将 7 识别为 1。混淆矩阵包含了足够多的信息可以计算很多的模型表现度量,比如精度(precision)和召回(recall)率。

    连续特征(continuous feature)

    拥有无限个取值点的浮点特征。和离散特征(discrete feature)相反。

    收敛(convergence)

    训练过程达到的某种状态,其中训练损失和验证损失在经过了确定的迭代次数后,在每一次迭代中,改变很小或完全不变。换句话说就是,当对当前数据继续训练而无法再提升模型的表现水平的时候,就称模型已经收敛。在深度学习中,损失值下降之前,有时候经过多次迭代仍保持常量或者接近常量,会造成模型已经收敛的错觉。

    凸函数(concex function)

    一种形状大致呈字母 U 形或碗形的函数。然而,在退化情形中,凸函数的形状就像一条线。例如,以下几个函数都是凸函数:

    • L2 损失函数
    • Log 损失函数
    • L1 正则化函数
    • L2 正则化函数

    凸函数是很常用的损失函数。因为当一个函数有最小值的时候(通常就是这样),梯度下降的各种变化都能保证找到接近函数最小值的点。类似的,随机梯度下降的各种变化有很大的概率(虽然无法保证)找到接近函数最小值的点。

    两个凸函数相加(比如,L2 损失函数+L1 正则化函数)后仍然是凸函数。

    深度模型通常是非凸的。出乎意料的是,以凸优化的形式设计的算法通常都能在深度网络上工作的很好,虽然很少能找到最小值。

    成本(cost)

    loss 的同义词。

    交叉熵(cross-entropy)

    多类别分类问题中对 Log 损失函数的推广。交叉熵量化两个概率分布之间的区别。参见困惑度(perplexity)。

    D

    数据集(data set)

    样本的集合。

    决策边界(decision boundary)

    在一个二元分类或多类别分类问题中模型学习的类别之间的分离器。例如,下图就展示了一个二元分类问题,决策边界即橙点类和蓝点类的边界。

    深度模型(deep model)

    一种包含多个隐藏层的神经网络。深度模型依赖于其可训练的非线性性质。和宽度模型对照(wide model)。

    密集特征(dense feature)

    大多数取值为非零的一种特征,通常用取浮点值的张量(tensor)表示。和稀疏特征(sparse feature)相反。

    派生特征(derived feature)

    合成特征(synthetic feature)的同义词。

    离散特征(discrete feature)

    只有有限个可能取值的一种特征。例如,一个取值只包括动物、蔬菜或矿物的特征就是离散(或类别)特征。和连续特征(continuous feature)对照。

    dropout 正则化(dropout regularization)

    训练神经网络时一种有用的正则化方法。dropout 正则化的过程是在单次梯度计算中删去一层网络中随机选取的固定数量的单元。删去的单元越多,正则化越强。

    动态模型(dynamic model)

    以连续更新的方式在线训练的模型。即数据连续不断的输入模型。

    E

    早期停止法(early stopping)

    一种正则化方法,在训练损失完成下降之前停止模型训练过程。当验证数据集(validation data set)的损失开始上升的时候,即泛化表现变差的时候,就该使用早期停止法了。

    嵌入(embeddings)

    一类表示为连续值特征的明确的特征。嵌入通常指将高维向量转换到低维空间中。例如,将一个英语句子中的单词以以下任何一种方式表示:

    • 拥有百万数量级(高维)的元素的稀疏向量,其中所有的元素都是整数。向量的每一个单元表示一个单独的英语单词,单元中的数字表示该单词在一个句子中出现的次数。由于一个句子中的单词通常不会超过 50 个,向量中几乎所有的单元都是 0。少量的非零的单元将取一个小的整数值(通常为 1)表示句子中一个单词的出现次数。
    • 拥有数百个(低维)元素的密集向量,其中每一个元素取 0 到 1 之间的浮点数。

    在 TensorFlow 中,嵌入是通过反向传播损失训练的,正如神经网络的其它参量一样。

    经验风险最小化(empirical risk minimization,ERM)

    选择能最小化训练数据的损失的模型函数的过程。和结构风险最小化(structual risk minimization)对照。

    集成(ensemble)

    多个模型预测的综合考虑。可以通过以下一种或几种方法创建一个集成方法:

    • 设置不同的初始化;
    • 设置不同的超参量;
    • 设置不同的总体结构。

    深度和广度模型是一种集成。

    评估器(Estimator)

    tf.Estimator 类的一个例子,封装 logic 以建立一个 TensorFlow 图并运行一个 TensorFlow session。你可以通过以下方式创建自己的评估器:https://www.tensorflow.org/extend/estimators

    样本(example)

    一个数据集的一行内容。一个样本包含了一个或多个特征,也可能是一个标签。参见标注样本(labeled example)和无标注样本(unlabeled example)。

    F

    假负类(false negative,FN)

    被模型错误的预测为负类的样本。例如,模型推断一封邮件为非垃圾邮件(负类),但实际上这封邮件是垃圾邮件。

    假正类(false positive,FP)

    被模型错误的预测为正类的样本。例如,模型推断一封邮件为垃圾邮件(正类),但实际上这封邮件是非垃圾邮件。

    假正类率(false positive rate,FP rate)

    ROC 曲线(ROC curve)中的 x 轴。FP 率的定义是:假正率=假正类数/(假正类数+真负类数)

    特征(feature)

    输入变量,用于做出预测。

    特征列(feature columns/FeatureColumn)

    具有相关性的特征的集合,比如用户可能居住的所有可能的国家的集合。一个样本的一个特征列中可能会有一个或者多个特征。

    TensorFlow 中的特征列还可以压缩元数据比如下列情况:

    • 特征的数据类型;
    • 一个特征是固定长度的或应该转换为嵌入。
    • 一个特征列可以仅包含一个特征。「特征列」是谷歌专用的术语。在 VW 系统(Yahoo/Microsoft)中特征列的意义是「命名空间」(namespace),或者场(field)。

    特征交叉(feature cross)

    将特征进行交叉(乘积或者笛卡尔乘积)运算后得到的合成特征。特征交叉有助于表示非线性关系。

    特征工程(feature engineering)

    在训练模型的时候,决定哪些特征是有用的,然后将记录文件和其它来源的原始数据转换成上述特征的过程。在 TensorFlow 中特征工程通常意味着将原始记录文件输入 tf.Example 协议缓存中。参见 tf.Transform。特征工程有时候也称为特征提取。

    特征集(feature set)

    机器学习模型训练的时候使用的特征群。比如,邮政编码,面积要求和物业状况可以组成一个简单的特征集,使模型能预测房价。

    特征定义(feature spec)

    描述所需的信息从 tf.Example 协议缓存中提取特征数据。因为 tf.Example 协议缓存只是数据的容器,必须明确以下信息:

    • 需要提取的数据(即特征的关键信息)
    • 数据类型(比如,浮点数还是整数)
    • 数据长度(固定的或者变化的)

    Estimator API 提供了从一群特征列中生成一个特征定义的工具。

    完全 softmax(full softmax)

    参见 softmax。和候选采样对照。

    G

    泛化(generalization)

    指模型利用新的没见过的数据而不是用于训练的数据作出正确的预测的能力。

    广义线性模型(generalized linear model)

    最小二乘回归模型的推广/泛化,基于高斯噪声,相对于其它类型的模型(基于其它类型的噪声,比如泊松噪声,或类别噪声)。广义线性模型的例子包括:

    • logistic 回归
    • 多分类回归
    • 最小二乘回归

    广义线性模型的参数可以通过凸优化得到,它具有以下性质:

    • 最理想的最小二乘回归模型的平均预测结果等于训练数据的平均标签。
    • 最理想的 logistic 回归模型的平均概率的预测结果等于训练数据的平均标签。

    广义线性模型的能力局限于其特征的性质。和深度模型不同,一个广义线性模型无法「学习新的特征」。

    梯度(gradient)

    所有变量的偏导数的向量。在机器学习中,梯度是模型函数的偏导数向量。梯度指向最陡峭的上升路线。

    梯度截断(gradient clipping)

    在应用梯度之前先修饰数值,梯度截断有助于确保数值稳定性,防止梯度爆炸出现。

    梯度下降(gradient descent)

    通过计算模型的相关参量和损失函数的梯度最小化损失函数,值取决于训练数据。梯度下降迭代地调整参量,逐渐靠近权重和偏置的最佳组合,从而最小化损失函数。

    图(graph)

    在 TensorFlow 中的一种计算过程展示。图中的节点表示操作。节点的连线是有指向性的,表示传递一个操作(一个张量)的结果(作为一个操作数)给另一个操作。使用 TensorBoard 能可视化计算图。

    H

    启发式(heuristic)

    一个问题的实际的和非最优的解,但能从学习经验中获得足够多的进步。

    隐藏层(hidden layer)

    神经网络中位于输入层(即特征)和输出层(即预测)之间的合成层。一个神经网络包含一个或多个隐藏层。

    折页损失函数(Hinge loss)

    损失函数的一个类型,用于分类模型以寻找距离每个样本的距离最大的决策边界,即最大化样本和边界之间的边缘。KSVMs 使用 hinge 损失函数(或相关的函数,比如平方 hinge 函数)。在二元分类中,hinge 损失函数按以下方式定义:

    loss=max(0,1−(y′∗y))

    其中 y'是分类器模型的列输出:

    y′=b+w_1x_1+w_2x_2+…w_nx_n

    y 是真实的标签,-1 或+1。

    因此,hinge 损失将是下图所示的样子:

    测试数据(holdout data)

    有意不用于训练的样本。验证数据集(validation data set)和测试数据集(test data set)是测试数据(holdout data)的两个例子。测试数据帮助评估模型泛化到除了训练数据之外的数据的能力。测试集的损失比训练集的损失提供了对未知数据集的损失更好的估计。

    超参数(hyperparameter)

    连续训练模型的过程中可以拧动的「旋钮」。例如,相对于模型自动更新的参数,学习率(learning rate)是一个超参数。和参量对照。

    I

    独立同分布(independently and identically distributed,i.i.d)

    从不会改变的分布中获取的数据,且获取的每个值不依赖于之前获取的值。i.i.d. 是机器学习的理想情况——一种有用但在现实世界中几乎找不到的数学构建。例如,网页访客的分布可能是短暂时间窗口上的 i.i.d;即分布不会在该时间窗口发生改变,每个人的访问都与其他人的访问独立。但是,如果你扩展了时间窗口,则会出现网页访客的季节性差异。

    推断(inference)

    在机器学习中,通常指将训练模型应用到无标注样本来进行预测的过程。在统计学中,推断指在观察到的数据的基础上拟合分布参数的过程。

    输入层(input layer)

    神经网络的第一层(接收输入数据)。

    评分者间一致性(inter-rater agreement)

    用来衡量一项任务中人类评分者意见一致的指标。如果意见不一致,则任务说明可能需要改进。有时也叫标注者间信度(inter-annotator agreement)或评分者间信度(inter-rater reliability)。

    K

    Kernel 支持向量机(Kernel Support Vector Machines/KSVM)

    一种分类算法,旨在通过将输入数据向量映射到更高维度的空间使正类和负类之间的边际最大化。例如,考虑一个输入数据集包含一百个特征的分类问题。为了使正类和负类之间的间隔最大化,KSVM 从内部将特征映射到百万维度的空间。KSVM 使用的损失函数叫作 hinge 损失。

    L

    L1 损失函数(L1 loss)

    损失函数基于模型对标签的预测值和真实值的差的绝对值而定义。L1 损失函数比起 L2 损失函数对异常值的敏感度更小。

    L1 正则化(L1 regularization)

    一种正则化,按照权重绝对值总和的比例进行惩罚。在依赖稀疏特征的模型中,L1 正则化帮助促使(几乎)不相关的特征的权重趋近于 0,从而从模型中移除这些特征。

    L2 损失(L2 loss)

    参见平方损失。

    L2 正则化(L2 regularization)

    一种正则化,按照权重平方的总和的比例进行惩罚。L2 正则化帮助促使异常值权重更接近 0 而不趋近于 0。(可与 L1 正则化对照阅读。)L2 正则化通常改善线性模型的泛化效果。

    标签(label)

    在监督式学习中,样本的「答案」或「结果」。标注数据集中的每个样本包含一或多个特征和一个标签。比如,在房屋数据集中,特征可能包括卧室数量、卫生间数量、房龄,而标签可能就是房子的价格。在垃圾邮件检测数据集中,特征可能包括主题、发出者何邮件本身,而标签可能是「垃圾邮件」或「非垃圾邮件」。

    标注样本(labeled example)

    包含特征和标签的样本。在监督式训练中,模型从标注样本中进行学习。

    lambda

    正则化率的同义词。(该术语有多种含义。这里,我们主要关注正则化中的定义。)

    层(layer)

    神经网络中的神经元序列,可以处理输入特征序列或神经元的输出。

    它也是 TensorFlow 的一种抽象化概念。层是将张量和配置选项作为输入、输出其他张量的 Python 函数。一旦必要的张量出现,用户就可以通过模型函数将结果转换成估计器。

    学习率(learning rate)

    通过梯度下降训练模型时使用的一个标量。每次迭代中,梯度下降算法使学习率乘以梯度,乘积叫作 gradient step。

    学习率是一个重要的超参数。

    最小二乘回归(least squares regression)

    通过 L2 损失最小化进行训练的线性回归模型。

    线性回归(linear regression)

    对输入特征的线性连接输出连续值的一种回归模型。

    logistic 回归(logistic regression)

    将 sigmoid 函数应用于线性预测,在分类问题中为每个可能的离散标签值生成概率的模型。尽管 logistic 回归常用于二元分类问题,但它也用于多类别分类问题(这种情况下,logistic 回归叫作「多类别 logistic 回归」或「多项式 回归」。

    对数损失函数(Log Loss)

    二元 logistic 回归模型中使用的损失函数。

    损失

    度量模型预测与标签距离的指标,它是度量一个模型有多糟糕的指标。为了确定损失值,模型必须定义损失函数。例如,线性回归模型通常使用均方差作为损失函数,而 logistic 回归模型使用对数损失函数。

    M

    机器学习(machine learning)

    利用输入数据构建(训练)预测模型的项目或系统。该系统使用学习的模型对与训练数据相同分布的新数据进行有用的预测。机器学习还指与这些项目或系统相关的研究领域。

    均方误差(Mean Squared Error/MSE)

    每个样本的平均平方损失。MSE 可以通过平方损失除以样本数量来计算。TensorFlow Playground 展示「训练损失」和「测试损失」的值是 MSE。

    小批量(mini-batch)

    在训练或推断的一个迭代中运行的整批样本的一个小的随机选择的子集。小批量的大小通常在 10 到 1000 之间。在小批量数据上计算损失比在全部训练数据上计算损失要高效的多。

    小批量随机梯度下降(mini-batch stochastic gradient descent)

    使用小批量的梯度下降算法。也就是,小批量随机梯度下降基于训练数据的子集对 梯度进行评估。Vanilla SGD 使用 size 为 1 的小批量。

    模型(model)

    机器学习系统从训练数据中所学内容的表示。该术语有多个含义,包括以下两个相关含义:

    • TensorFlow 图,显示如何计算预测的结构。
    • TensorFlow 图的特定权重和偏差,由训练决定。

    模型训练(model training)

    确定最佳模型的过程。

    动量(Momentum)

    一种复杂的梯度下降算法,其中的学习步不只依赖于当前步的导数,还依赖于先于它的步。动量包括随着时间计算梯度的指数加权移动平均数,类似于物理学中的动量。动量有时可以阻止学习陷于局部最小值。

    多类别(multi-class)

    在多于两类的类别中进行分类的分类问题。例如,有约 128 种枫树,那么分类枫树品种的模型就是多类别的。反之,把电子邮件分成两个类别(垃圾邮件和非垃圾邮件)的模型是二元分类器模型。

    N

    NaN trap

    训练过程中,如果模型中的一个数字变成了 NaN,则模型中的很多或所有其他数字最终都变成 NaN。NaN 是「Not a Number」的缩写。

    负类(negative class)

    在二元分类中,一个类别是正类,另外一个是负类。正类就是我们要找的目标,负类是另外一种可能性。例如,医疗测试中的负类可能是「非肿瘤」,电子邮件分类器中的负类可能是「非垃圾邮件」。

    神经网络(neural network)

    该模型从大脑中获取灵感,由多个层组成(其中至少有一个是隐藏层),每个层包含简单的连接单元或神经元,其后是非线性。

    神经元(neuron)

    神经网络中的节点,通常输入多个值,生成一个输出值。神经元通过将激活函数(非线性转换)应用到输入值的加权和来计算输出值。

    归一化(normalization)

    将值的实际区间转化为标准区间的过程,标准区间通常是-1 到+1 或 0 到 1。例如,假设某个特征的自然区间是 800 到 6000。通过减法和分割,你可以把那些值标准化到区间-1 到+1。参见缩放。

    numpy

    Python 中提供高效数组运算的开源数学库。pandas 基于 numpy 构建。

    O

    目标(objective)

    算法尝试优化的目标函数。

    离线推断(offline inference)

    生成一组预测并存储,然后按需检索那些预测。可与在线推断对照阅读。

    one-hot 编码(one-hot encoding)

    一个稀疏向量,其中:

    • 一个元素设置为 1。
    • 所有其他的元素设置为 0。

    独热编码常用于表示有有限可能值集合的字符串或标识符。例如,假设一个记录了 15000 个不同品种的植物数据集,每一个用独特的字符串标识符来表示。作为特征工程的一部分,你可能将那些字符串标识符进行独热编码,每个向量的大小为 15000。

    一对多(one-vs.-all)

    给出一个有 N 个可能解决方案的分类问题,一对多解决方案包括 N 个独立的二元分类器——每个可能的结果都有一个二元分类器。例如,一个模型将样本分为动物、蔬菜或矿物,则一对多的解决方案将提供以下三种独立的二元分类器:

    • 动物和非动物
    • 蔬菜和非蔬菜
    • 矿物和非矿物

    在线推断(online inference)

    按需生成预测。可与离线推断对照阅读。

    运算(Operation/op)

    TensorFlow 图中的一个节点。在 TensorFlow 中,任何创建、控制或损坏张量的步骤都是运算。例如,矩阵乘法是一个把两个张量作为输入、生成一个张量作为输出的运算。

    优化器(optimizer)

    梯度下降算法的特定实现。TensorFlow 的基类优化器是 tf.train.Optimizer。不同的优化器(tf.train.Optimizer 的子类)对应不同的概念,如:

    • 动量(Momentum)
    • 更新频率(AdaGrad = ADAptive GRADient descent;Adam = ADAptive with Momentum;RMSProp)
    • 稀疏性/正则化(Ftrl)
    • 更复杂的数学(Proximal 及其他)

    你甚至可以想象 NN-driven optimizer。

    异常值(outlier)

    与大多数值差别很大的值。在机器学习中,下列都是异常值:

    • 高绝对值的权重。
    • 与实际值差距过大的预测值。
    • 比平均值多大约 3 个标准差的输入数据的值。

    异常值往往使模型训练中出现问题。

    输出层(output layer)

    神经网络的「最后」一层。这一层包含整个·模型所寻求的答案。

    过拟合(overfitting)

    创建的模型与训练数据非常匹配,以至于模型无法对新数据进行正确的预测。

    P

    pandas

    一种基于列的数据分析 API。很多机器学习框架,包括 TensorFlow,支持 pandas 数据结构作为输入。参见 pandas 文档。

    参数(parameter)

    机器学习系统自行训练的模型的变量。例如,权重是参数,它的值是机器学习系统通过连续的训练迭代逐渐学习到的。可与超参数对照阅读。

    参数服务器(Parameter Server/PS)

    用于在分布式设置中跟踪模型参数。

    参数更新(parameter update)

    在训练过程中调整模型参数的操作,通常在梯度下降的单个迭代中进行。

    偏导数(partial derivative)

    一个多变量函数的偏导数是它关于其中一个变量的导数,而保持其他变量恒定。例如,f(x, y) 对于 x 的偏导数就是 f(x) 的导数,y 保持恒定。x 的偏导数中只有 x 是变化的,公式中其他的变量都不用变化。

    分区策略(partitioning strategy)

    在多个参数服务器中分割变量的算法。

    性能(performance)

    具有多种含义:

    • 在软件工程中的传统含义:软件运行速度有多快/高效?
    • 在机器学习中的含义:模型的准确率如何?即,模型的预测结果有多好?

    困惑度(perplexity)

    对模型完成任务的程度的一种度量指标。例如,假设你的任务是阅读用户在智能手机上输入的单词的头几个字母,并提供可能的完整单词列表。该任务的困惑度(perplexity,P)是为了列出包含用户实际想输入单词的列表你需要进行的猜测数量。

    困惑度和交叉熵的关系如下:

    流程(pipeline)

    机器学习算法的基础架构。管道包括收集数据、将数据放入训练数据文件中、训练一或多个模型,以及最终输出模型。

    正类(positive class)

    在二元分类中,有两种类别:正类和负类。正类是我们测试的目标。(不过必须承认,我们同时测试两种结果,但其中一种不是重点。)例如,医疗测试中正类可能是「肿瘤」,电子邮件分类器中的正类可能是「垃圾邮件」。可与负类对照阅读。

    精度(precision)

    分类模型的一种指标。准确率指模型预测正类时预测正确的频率。即:

    预测(prediction)

    模型在输入样本后的输出结果。

    预测偏差(prediction bias)

    揭示预测的平均值与数据集中标签的平均值的差距。

    预制评估器(pre-made Estimator)

    已经构建好的评估器。TensorFlow 提供多个预制评估器,包括 DNNClassifier、DNNRegressor 和 LinearClassifier。你可以根据指导(https://www.tensorflow.org/extend/estimators)构建自己的预制评估器。

    预训练模型(pre-trained model)

    已经训练好的模型或模型组件(如嵌入)。有时,你将预训练嵌入馈送至神经网络。其他时候,你的模型自行训练嵌入,而不是依赖于预训练嵌入。

    先验信念(prior belief)

    训练开始之前你对数据的信念。例如,L2 正则化依赖于权重值很小且正常分布在 0 周围的信念。

    Q

    队列(queue)

    实现队列数据结构的 TensorFlow 操作。通常在输入/输出(I/O)中使用。

    R

    秩(rank)

    机器学习领域中包含多种含义的术语:

    • 张量中的维度数量。比如,标量有 1 个秩,向量有 1 个秩,矩阵有 2 个秩。(注:在这个词汇表中,「秩」的概念和线性代数中「秩」的概念不一样,例如三阶可逆矩阵的秩为 3。)
    • 机器学习问题中类别的序数位置,按从高到低的顺序给类别分类。比如,行为排序系统可以把狗的奖励按从高(牛排)到低(甘蓝)排序。

    评分者(rater)

    为样本提供标签的人,有时也叫「标注者」。

    召回率(recall)

    分类模型的一个指标,可以回答这个问题:模型能够准确识别多少正标签?即:

    修正线性单元(Rectified Linear Unit/ReLU)

    一种具备以下规则的激活函数:

    • 如果输入为负或零,则输出为 0。
    • 如果输入为正,则输出与输入相同。

    回归模型(regression model)

    一种输出持续值(通常是浮点数)的模型。而分类模型输出的是离散值,如「day lily」或「tiger lily」。

    正则化(regularization)

    对模型复杂度的惩罚。正则化帮助防止过拟合。正则化包括不同种类:

    • L1 正则化
    • L2 正则化
    • dropout 正则化
    • early stopping(这不是正式的正则化方法,但可以高效限制过拟合)

    正则化率(regularization rate)

    一种标量级,用 lambda 来表示,指正则函数的相对重要性。从下面这个简化的损失公式可以看出正则化率的作用:

    minimize(loss function + λ(regularization function))

    提高正则化率能够降低过拟合,但可能会使模型准确率降低。

    表征

    将数据映射到有用特征的过程。

    受试者工作特征曲线(receiver operating characteristic/ROC Curve)

    反映在不同的分类阈值上,真正类率和假正类率的比值的曲线。参见 AUC。

    根目录(root directory)

    指定放置 TensorFlow 检查点文件子目录和多个模型的事件文件的目录。

    均方根误差(Root Mean Squared Error/RMSE)

    均方误差的平方根。

    S

    Saver

    负责存储模型检查点文件的 TensorFlow 对象。

    缩放(scaling)

    特征工程中常用的操作,用于控制特征值区间,使之与数据集中其他特征的区间匹配。例如,假设你想使数据集中所有的浮点特征的区间为 0 到 1。给定一个特征区间是 0 到 500,那么你可以通过将每个值除以 500,缩放特征值区间。还可参见正则化。

    scikit-learn

    一种流行的开源机器学习平台。网址:www.scikit-learn.org

    序列模型(sequence model)

    输入具有序列依赖性的模型。例如,根据之前观看过的视频序列对下一个视频进行预测。

    会话(session)

    保持 TensorFlow 程序的状态(如变量)。

    Sigmoid 函数(sigmoid function)

    把 logistic 或多项式回归输出(对数几率)映射到概率的函数,返回的值在 0 到 1 之间。sigmoid 函数的公式如下:

    其中σ在 logistic 回归问题中只是简单的:

    在有些神经网络中,sigmoid 函数和激活函数一样。

    softmax

    为多类别分类模型中每个可能的类提供概率的函数。概率加起来的总和是 1.0。例如,softmax 可能检测到某个图像是一只狗的概率为 0.9,是一只猫的概率为 0.08,是一匹马的概率为 0.02。(也叫作 full softmax)。

    稀疏特征(sparse feature)

    值主要为 0 或空的特征向量。比如,一个向量的值有 1 个 1,、一百万个 0,则该向量为稀疏向量。再比如,搜索查询中的单词也是稀疏向量:在一种语言中有很多可以用的单词,但给定的查询中只用了其中的一些。

    可与稠密特征对照阅读。

    平方损失(squared loss)

    线性回归中使用的损失函数(也叫作 L2 Loss)。该函数计算模型对标注样本的预测值和标签真正值之间差的平方。在平方之后,该损失函数扩大了不良预测的影响。即,平方损失比 L1 Loss 对异常值(outlier)的反应更加强烈。

    静态模型(static model)

    离线训练的模型。

    稳态(stationarity)

    数据集中的一种数据属性,数据分布在一或多个维度中保持不变。通常情况下,维度是时间,意味着具备平稳性的数据不会随着时间发生变化。比如,具备平稳性的数据从 9 月到 12 月不会改变。

    步(step)

    一个批量中的前向和后向评估。

    步长(step size)

    学习速率(learning rate)乘以偏导数的值,即梯度下降中的步长。

    随机梯度下降(stochastic gradient descent/SGD)

    批量大小为 1 的梯度下降算法。也就是说,SGD 依赖于从数据集中随机均匀选择出的一个样本,以评估每一步的梯度。

    结构风险最小化(structural risk minimization/SRM)

    这种算法平衡两个目标:

    • 构建预测性最强的模型(如最低损失)。
    • 使模型尽量保持简单(如强正则化)。

    比如,在训练集上的损失最小化 + 正则化的模型函数就是结构风险最小化算法。更多信息,参见 http://www.svms.org/srm/。可与经验风险最小化对照阅读。

    摘要(summary)

    在 TensorFlow 中,特定步计算的值或值的集合,通常用于跟踪训练过程中的模型指标。

    监督式机器学习(supervised machine learning)

    利用输入数据及其对应标签来训练模型。监督式机器学习类似学生通过研究问题和对应答案进行学习。在掌握问题和答案之间的映射之后,学生就可以提供同样主题的新问题的答案了。可与非监督机器学习对照阅读。

    合成特征(synthetic feature)

    不在输入特征中,而是从一个或多个输入特征中派生出的特征。合成特征的类型包括:

    • 特征与自己或其他特征相乘(叫作特征交叉)。
    • 两个特征相除。
    • 将连续的特征放进 range bin 中。

    由归一化或缩放单独创建的特征不是合成特征。

    T

    张量(tensor)

    TensorFlow 项目的主要数据结构。张量是 N 维数据结构(N 的值很大),经常是标量、向量或矩阵。张量可以包括整数、浮点或字符串值。

    张量处理单元(Tensor Processing Unit,TPU)

    优化 TensorFlow 性能的 ASIC(application-specific integrated circuit,专用集成电路)。

    张量形状(Tensor shape)

    张量的元素数量包含在不同维度中。比如,[5, 10] 张量在一个维度中形状为 5,在另一个维度中形状为 10。

    张量大小(Tensor size)

    张量包含的标量总数。比如,[5, 10] 张量的大小就是 50。

    TensorBoard

    展示一个或多个 TensorFlow 项目运行过程中保存的摘要数据的控制面板。

    TensorFlow

    大型分布式机器学习平台。该术语还指 TensorFlow 堆栈中的基础 API 层,支持数据流图上的通用计算。

    尽管 TensorFlow 主要用于机器学习,但是它也适用于要求使用数据流图进行数值运算的非机器学习任务。

    TensorFlow Playground

    一个可以看到不同超参数对模型(主要是神经网络)训练的影响的平台。前往 http://playground.tensorflow.org,使用 TensorFlow Playground。

    TensorFlow Serving

    帮助训练模型使之可部署到产品中的平台。

    测试集(test set)

    数据集的子集。模型经过验证集初步测试之后,使用测试集对模型进行测试。可与训练集和验证集对照阅读。

    tf.Example

    一种标准 protocol buffer,用于描述机器学习模型训练或推断的输入数据。

    训练(training)

    确定组成模型的完美参数的流程。

    训练集(training set)

    数据集子集,用于训练模型。可与验证集和测试集对照阅读。

    真负类(true negative,TN)

    被模型正确地预测为负类的样本。例如,模型推断某封电子邮件不是垃圾邮件,然后该电邮真的不是垃圾邮件。

    真正类(true positive,TP)

    被模型正确地预测为正类的样本。例如,模型推断某封电子邮件是垃圾邮件,结果该电邮真的是垃圾邮件。

    真正类率(true positive rate,TP rate)

    召回率(recall)的同义词。即:

    TruePositiveRate=TruePositives/(TruePositives+FalseNegatives)

    真正类率是 ROC 曲线的 y 轴。

    U

    无标签样本(unlabeled example)

    包含特征但没有标签的样本。无标签样本是推断的输入。在半监督学习和无监督学习的训练过程中,通常使用无标签样本。

    无监督机器学习(unsupervised machine learning)

    训练一个模型寻找数据集(通常是无标签数据集)中的模式。

    无监督机器学习最常用于将数据分成几组类似的样本。例如,无监督机器学习算法可以根据音乐的各种属性聚类数据。用这种方式收集的数据可以作为其他机器学习算法(如音乐推荐服务)的输入。聚类在难以获取真正标签的情景中非常有用。例如,在反欺诈和反滥用的情景中,聚类可以帮助人类更好地理解数据。

    无监督机器学习的另一个例子是主成分分析(principal component analysis,PCA)。如,将 PCA 应用于包含数百万购物车内容的数据集中时,就有可能发现有柠檬的购物车往往也有解酸剂。可与监督式机器学习对照阅读。

    V

    验证集(validation set)

    数据集的一个子集(与训练集不同),可用于调整超参数。可与训练集和测试集对照阅读。

    W

    权重(weight)

    线性模型中的特征系数,或者深度网络中的边缘。线性模型的训练目标是为每个特征确定一个完美的权重。如果权重为 0,则对应的特征对模型而言是无用的。

    宽模型(wide model)

    线性模型通常具备很多稀疏输入特征。我们称之为「宽」模型,因其具有大量与输出节点直接连接的输入,是一种特殊类型的神经网络。宽模型通常比深度模型更容易调试(debug)和检查。尽管宽模型无法通过隐藏层表达非线性,但它们可以使用特征交叉和 bucketization 等转换用不同方式对非线性建模。可与深度模型对照阅读。

    原文链接:https://developers.google.com/machine-learning/glossary

    展开全文
  • 为大家提供一个编程常见术语中英文的翻译,htm格式,方便保存
  • 大数据常见术语

    2017-07-07 13:59:58
    摘要: 大数据常见术语表 大数据的出现带来了许多新的术语,但这些术语往往比较难以理解。因此,我们通过本文给出一个常用的大数据术语表,抛砖引玉,供大家深入了解。其中部分定义参考了相应的博客文章。当然,这...

    原文链接

    摘要: 大数据常见术语表 大数据的出现带来了许多新的术语,但这些术语往往比较难以理解。因此,我们通过本文给出一个常用的大数据术语表,抛砖引玉,供大家深入了解。其中部分定义参考了相应的博客文章。当然,这份术语表并没有100%包含所有的术语,如果你认为有任何遗漏之处,请告之我们。

    大数据常见术语表

    大数据的出现带来了许多新的术语,但这些术语往往比较难以理解。因此,我们通过本文给出一个常用的大数据术语表,抛砖引玉,供大家深入了解。其中部分定义参考了相应的博客文章。当然,这份术语表并没有100%包含所有的术语,如果你认为有任何遗漏之处,请告之我们。

    A

    • 聚合(Aggregation) – 搜索、合并、显示数据的过程
    • 算法(Algorithms) – 可以完成某种数据分析的数学公式
    • 分析法(Analytics) – 用于发现数据的内在涵义
    • 异常检测(Anomaly detection) – 在数据集中搜索与预期模式或行为不匹配的数据项。除了“Anomalies”,用来表示异常的词有以下几种:outliers, exceptions, surprises, contaminants.他们通常可提供关键的可执行信息
    • 匿名化(Anonymization) – 使数据匿名,即移除所有与个人隐私相关的数据
    • 应用(Application) – 实现某种特定功能的计算机软件
    • 人工智能(Artificial Intelligence) – 研发智能机器和智能软件,这些智能设备能够感知周遭的环境,并根据要求作出相应的反应,甚至能自我学习

    B

    • 行为分析法(Behavioural Analytics) – 这种分析法是根据用户的行为如“怎么做”,“为什么这么做”,以及“做了什么”来得出结论,而不是仅仅针对人物和时间的一门分析学科,它着眼于数据中的人性化模式
    • 大数据科学家(Big Data Scientist) – 能够设计大数据算法使得大数据变得有用的人
    • 大数据创业公司(Big data startup) – 指研发最新大数据技术的新兴公司
    • 生物测定术(Biometrics) – 根据个人的特征进行身份识别
    • B字节 (BB: Brontobytes) – 约等于1000 YB(Yottabytes),相当于未来数字化宇宙的大小。1 B字节包含了27个0!
    • 商业智能(Business Intelligence) – 是一系列理论、方法学和过程,使得数据更容易被理解

    C

    • 分类分析(Classification analysis) – 从数据中获得重要的相关性信息的系统化过程; 这类数据也被称为元数据(meta data),是描述数据的数据
    • 云计算(Cloud computing) – 构建在网络上的分布式计算系统,数据是存储于机房外的(即云端)
    • 聚类分析(Clustering analysis) – 它是将相似的对象聚合在一起,每类相似的对象组合成一个聚类(也叫作簇)的过程。这种分析方法的目的在于分析数据间的差异和相似性
    • 冷数据存储(Cold data storage) – 在低功耗服务器上存储那些几乎不被使用的旧数据。但这些数据检索起来将会很耗时
    • 对比分析(Comparative analysis) – 在非常大的数据集中进行模式匹配时,进行一步步的对比和计算过程得到分析结果
    • 复杂结构的数据(Complex structured data) – 由两个或多个复杂而相互关联部分组成的数据,这类数据不能简单地由结构化查询语言或工具(SQL)解析
    • 计算机产生的数据(Computer generated data) – 如日志文件这类由计算机生成的数据
    • 并发(Concurrency) – 同时执行多个任务或运行多个进程
    • 相关性分析(Correlation analysis) – 是一种数据分析方法,用于分析变量之间是否存在正相关,或者负相关
    • 客户关系管理(CRM: Customer Relationship Management) – 用于管理销售、业务过程的一种技术,大数据将影响公司的客户关系管理的策略

    D

    • 仪表板(Dashboard) – 使用算法分析数据,并将结果用图表方式显示于仪表板中
    • 数据聚合工具(Data aggregation tools) - 将分散于众多数据源的数据转化成一个全新数据源的过程
    • 数据分析师(Data analyst) – 从事数据分析、建模、清理、处理的专业人员
    • 数据库(Database) – 一个以某种特定的技术来存储数据集合的仓库
    • 数据库即服务(Database-as-a-Service) – 部署在云端的数据库,即用即付,例如亚马逊云服务(AWS: Amazon Web Services)
    • 数据库管理系统(DBMS: Database Management System) – 收集、存储数据,并提供数据的访问
    • 数据中心(Data centre) – 一个实体地点,放置了用来存储数据的服务器
    • 数据清洗(Data cleansing) – 对数据进行重新审查和校验的过程,目的在于删除重复信息、纠正存在的错误,并提供数据一致性
    • 数据管理员(Data custodian) – 负责维护数据存储所需技术环境的专业技术人员
    • 数据道德准则(Data ethical guidelines) – 这些准则有助于组织机构使其数据透明化,保证数据的简洁、安全及隐私
    • 数据订阅(Data feed) – 一种数据流,例如Twitter订阅和RSS
    • 数据集市(Data marketplace) – 进行数据集买卖的在线交易场所
    • 数据挖掘(Data mining) – 从数据集中发掘特定模式或信息的过程
    • 数据建模(Data modelling) – 使用数据建模技术来分析数据对象,以此洞悉数据的内在涵义
    • 数据集(Data set) – 大量数据的集合
    • 数据虚拟化(Data virtualization) – 数据整合的过程,以此获得更多的数据信息,这个过程通常会引入其他技术,例如数据库,应用程序,文件系统,网页技术,大数据技术等等
    • 去身份识别(De-identification) – 也称为匿名化(anonymization),确保个人不会通过数据被识别
    • 判别分析(Discriminant analysis) – 将数据分类;按不同的分类方式,可将数据分配到不同的群组,类别或者目录。是一种统计分析法,可以对数据中某些群组或集群的已知信息进行分析,并从中获取分类规则。
    • 分布式文件系统(Distributed File System) – 提供简化的,高可用的方式来存储、分析、处理数据的系统
    • 文件存贮数据库(Document Store Databases) – 又称为文档数据库(document-oriented database), 为存储、管理、恢复文档数据而专门设计的数据库,这类文档数据也称为半结构化数据

    E

    • 探索性分析(Exploratory analysis) – 在没有标准的流程或方法的情况下从数据中发掘模式。是一种发掘数据和数据集主要特性的一种方法
    • E字节(EB: Exabytes) – 约等于1000 PB(petabytes), 约等于1百万 GB。如今全球每天所制造的新信息量大约为1 EB
    • 提取-转换-加载(ETL: Extract, Transform and Load) – 是一种用于数据库或者数据仓库的处理过程。即从各种不同的数据源提取(E)数据,并转换(T)成能满足业务需要的数据,最后将其加载(L)到数据库

    F

    • 故障切换(Failover) – 当系统中某个服务器发生故障时,能自动地将运行任务切换到另一个可用服务器或节点上
    • 容错设计(Fault-tolerant design) – 一个支持容错设计的系统应该能够做到当某一部分出现故障也能继续运行

    G

    • 游戏化(Gamification) – 在其他非游戏领域中运用游戏的思维和机制,这种方法可以以一种十分友好的方式进行数据的创建和侦测,非常有效。
    • 图形数据库(Graph Databases) – 运用图形结构(例如,一组有限的有序对,或者某种实体)来存储数据,这种图形存储结构包括边缘、属性和节点。它提供了相邻节点间的自由索引功能,也就是说,数据库中每个元素间都与其他相邻元素直接关联。
    • 网格计算(Grid computing) – 将许多分布在不同地点的计算机连接在一起,用以处理某个特定问题,通常是通过云将计算机相连在一起。

    H

    • Hadoop – 一个开源的分布式系统基础框架,可用于开发分布式程序,进行大数据的运算与存储。
    • Hadoop数据库(HBase) – 一个开源的、非关系型、分布式数据库,与Hadoop框架共同使用
    • HDFS – Hadoop分布式文件系统(Hadoop Distributed File System);是一个被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统
    • 高性能计算(HPC: High-Performance-Computing) – 使用超级计算机来解决极其复杂的计算问题

    I

    • 内存数据库(IMDB: In-memory) – 一种数据库管理系统,与普通数据库管理系统不同之处在于,它用主存来存储数据,而非硬盘。其特点在于能高速地进行数据的处理和存取。
    • 物联网(Internet of Things) – 在普通的设备中装上传感器,使这些设备能够在任何时间任何地点与网络相连。

    J

    • 法律上的数据一致性(Juridical data compliance) – 当你使用的云计算解决方案,将你的数据存储于不同的国家或不同的大陆时,就会与这个概念扯上关系了。你需要留意这些存储在不同国家的数据是否符合当地的法律。

    K

    • 键值数据库(KeyValue Databases) – 数据的存储方式是使用一个特定的键,指向一个特定的数据记录,这种方式使得数据的查找更加方便快捷。键值数据库中所存的数据通常为编程语言中基本数据类型的数据。

    L

    • 延迟(Latency) – 表示系统时间的延迟
    • 遗留系统(Legacy system) – 是一种旧的应用程序,或是旧的技术,或是旧的计算系统,现在已经不再支持了。
    • 负载均衡(Load balancing) – 将工作量分配到多台电脑或服务器上,以获得最优结果和最大的系统利用率。
    • 位置信息(Location data) – GPS信息,即地理位置信息。
    • 日志文件(Log file) – 由计算机系统自动生成的文件,记录系统的运行过程。

    M

    • M2M数据(Machine2Machine data) – 两台或多台机器间交流与传输的内容
    • 机器数据(Machine data) – 由传感器或算法在机器上产生的数据
    • 机器学习(Machine learning) – 人工智能的一部分,指的是机器能够从它们所完成的任务中进行自我学习,通过长期的累积实现自我改进。
    • MapReduce – 是处理大规模数据的一种软件框架(Map: 映射,Reduce: 归纳)。
    • 大规模并行处理(MPP: Massively Parallel Processing) – 同时使用多个处理器(或多台计算机)处理同一个计算任务。
    • 元数据(Metadata) – 被称为描述数据的数据,即描述数据数据属性(数据是什么)的信息。
    • MongoDB – 一种开源的非关系型数据库(NoSQL database)
    • 多维数据库(Multi-Dimensional Databases) – 用于优化数据联机分析处理(OLAP)程序,优化数据仓库的一种数据库。
    • 多值数据库(MultiValue Databases) – 是一种非关系型数据库(NoSQL), 一种特殊的多维数据库:能处理3个维度的数据。主要针对非常长的字符串,能够完美地处理HTML和XML中的字串。

    N

    • 自然语言处理(Natural Language Processing) – 是计算机科学的一个分支领域,它研究如何实现计算机与人类语言之间的交互。
    • 网络分析(Network analysis) – 分析网络或图论中节点间的关系,即分析网络中节点间的连接和强度关系。
    • NewSQL – 一个优雅的、定义良好的数据库系统,比SQL更易学习和使用,比NoSQL更晚提出的新型数据库
    • NoSQL – 顾名思义,就是“不使用SQL”的数据库。这类数据库泛指传统关系型数据库以外的其他类型的数据库。这类数据库有更强的一致性,能处理超大规模和高并发的数据。

    • 原文链接

    展开全文
  • 金融方面的常见词汇形成的词典/语料,jieba.load_userdict()即可使用
  • 数据仓库基础术语名词一览

    千次阅读 2015-08-09 09:36:43
    即席查询生成的方式很多,最常见的就是使用即席查询工具。一般的数据展现工具都会提供即席查询的功能。通常的方式是,将数据仓库中的维度表和事实表映射到语义层,用户可以通过语义层选择表,建立表间的关联,最终...

    冰山查询――iceberg query 

    在数据仓库领域有一个概念叫Iceberg query,中文一般翻译为“冰山查询”。冰山查询在一个属性或属性集上计算一个聚集函数,以找出大于某个指定阈值的聚集值。

    以销售数据为例,你想产生这样的一个顾客-商品对的列表,这些顾客购买商品的数量达到3件或更多。这可以用下面的冰山查询表示:

    Select        P.cust_ID, P.item_ID, SUM(P.qty)

    From           Purchase P

    Group by    P.cust_ID, P.item_ID

    Having       SUM(P.qty)>=3

    这种在给出大量输入数据元组的情况下,使用having字句中的阈值来进行过滤的查询方法就叫做冰山查询。输出结果可以看作“冰山顶”,而“冰山”是输入数据。

    这种冰山查询在数据仓库的数据概况分析阶段、数据质量检查阶段和数据挖掘的购物篮分析中都经常使用。而且,冰山查询也是面试中出现频率非常高的一道题,经常用来检测SQL能力。

    操作集市――oper mart

    在数据仓库领域有一个概念叫Oper Mart,中文一般翻译为“操作集市”。操作集市是为了企业战术性的分析提供支持,它的数据来源是操作数据存储(ODS)。它是ODS在分析功能上的扩展,使用户可以对操作型数据进行多维分析。

    一个操作集市应该有如下特征:

    1.操作集市是ODS的子集,数据来源于ODS,用于战略分析和报表。

    2.操作集市中的数据和ODS中的数据同步更新。

    3.操作集市以多维技术进行建模,即星型结构。

    4.操作集市是一个临时的结构,当不在需要时会清掉所有数据,即不保存历史数据。

    操作集市和数据集市很相似,但是它不能用来取代用于战略性分析的数据集市。由于操作集市的数据来源于ODS,所以它的数据比数据集市的数据要新。但是出于容量的考虑,操作集市中不保存历史数据,是一个临时的结构。

    操作数据存储――operational data store

    Kimball对操作数据存储的定义是,面向主题的、集成的、经常更新的细节数据存储,用集成的数据来支持事务系统。Kimball也认可Inmon对ODS的分类,但是他认为ODS应该以星型结构来进行建模。

    虽然Kimball对操作数据存储(ODS)的定义和Inmon基本上一样,但是他对操作数据存储的理解、作用与实现和Inmon有着较大的不同。

    Kimball认为ODS在两种情况下是需要的:第一种情况是提供操作型报表,这些报表需要提供面向主题的、集成的数据,所以操作型的源系统无法提供;这些报表和数据仓库中的报表也不相同,因为它们可以是一些定制好的,写死在程序中的报表。第二种情况是需要提供实时的信息时,由于数据仓库的更新频率一般都是24小时,而用户会有更急切的需求来了解数据源的信息,这时,建立操作数据存储是很有必要的。

    对于ODS是保存最细粒度数据的地方的说法,Kimball认为对于最细粒度数据,即原子数据层,应该保存在数据仓库中,而且应该置于维度框架和总线架构中。

    代理关键字--surrogate key

    在数据仓库领域有一个概念叫Surrogate key,中文一般翻译为“代理关键字”。代理关键字一般是指维度表中使用顺序分配的整数值作为主键,也称为“代理键”。代理关键字用于维度表和事实表的连接。

    代理关键字的称呼有surrogate keysmeaningless keysinteger keysnonnatural keysartificial keyssynthetic keys等。与之相对的自然关键字的称呼有natural keyssamat keys等。

    Kimball的维度建模领域里,是强烈推荐使用代理关键字的。在维度表和事实表的每一个联接中都应该使用代理关键字,而不应该使用自然关键字或者智能关键字(Smart Keys)。数据仓库中的主键不应该是智能的,也就是说,要避免通过主键的值就可以了解一些业务信息。当然,退化维度作为事实表的复合主键之一时例外。

    使用代理关键字,有很多优点。

    1.使用代理关键字能够使数据仓库环境对操作型环境的变化进行缓冲。也就是说,当数据仓库需要对来在多个操作型系统的数据进行整合时,这些系统中的数据有可能缺乏一致的关键字编码,即有可能出现重复,这时代理关键字可以解决这个问题。

    2.使用代理关键字可以带来性能上的优势。和自然关键字相比,代理关键字很小,是整型的,可以减小事实表中记录的长度。这样,同样的IO就可以读取更多的事实表记录。另外,整型字段作为外键联接的效率也很高。

    3.使用代理关键字可以建立一些不存在的维度记录,例如“不在促销之列”,“日期待定”,“日期不可用”等维度记录。

    4.使用代理关键字可以用来处理缓慢变化维。维度表数据的历史变化信息的保存是数据仓库设计的实施中非常重要的一部分。Kimball的缓慢变化维处理策略的核心就是使用代理关键字。

    当然,使用代理关键字也有它的缺点,代理关键字的使用使数据加载变得非常复杂。有关使用代理关键字的维度表和事实表的加载方法在ETL Toolkit中有详细的描述。使用代理关键字是一个从长远考虑的策略。

    多值维度――multivalue dimension

    在维度建模的数据仓库中,有一种维度表叫multivalue dimension,中文一般翻译为“多值维度”。

    多值维度有两种情况,第一种情况是指维度表中的某个属性字段同时有多个值。举例来说,一个帐户维度表中,帐户持有人姓名,可能会有多个顾客。这样,一个帐户对应多个顾客姓名,一个顾客也可以有多个帐户,它们之间是多对多的关系。正因为一个帐户可能会有多个对应的顾客,所以不能直接将顾客ID放入帐户维度表中。而帐户维度表中的这种情况就叫做多值维度。

    多值维度的第二种情况是事实表在某个维度表中有多条对应记录。举例来说,对于一个健康护理单分列项事实表来说,它的粒度是一个健康护理单,但是该护理单却有可能有多次诊断,即该事实表与诊断维度的是一对多的关系。这个与事实表粒度不匹配的诊断维度也称之为多值维度。

    处理多值维度最好的办法是降低事实表的粒度。如第二种情况中,将健康护理单分列项事实表的粒度降低到具体的诊断粒度上,这样就避免了多值维度的出现。这种处理方式也是维度建模的一个原则,即事实表应该建立在最细粒度上。这样的处理,需要对事实表的事实进行分摊。

    但是有些时候,事实表的粒度是不能降低的,多值维度的出现是无法避免的。如第一种情况中,事实表是月帐户快照事实表,这张事实表与顾客维度没有直接的关系,不能将数据粒度进行细分,即使细分的话帐户余额也很难分摊。这时,可以采用桥接表技术进行处理。在帐户维度表和顾客维度表之间建立个帐户-顾客桥接表。这个桥接表可以解决掉帐户维度和顾客维度之间的多对多关系,也解决掉的帐户维度表的多值维度问题。

    总之,多值维度是应该尽量避免的,它给数据处理带来了很大的麻烦。如果多值维度不能避免的话,应该建立桥接表来进行处理。

    非事实型事实表――factless fact table

    在维度建模的数据仓库中,有一种事实表叫Factless Fact Table,中文一般翻译为“非事实型事实表”。在事实表中,通常会保存十个左右的维度外键和多个度量事实,度量事实是事实表的关键所在。在非事实型事实表中没有这些度量事实,只有多个维度外键。非事实型事实表通常用来跟踪一些事件或者说明某些活动的范围。下面举例来进行说明。

    第一类非事实型事实表是用来跟踪事件的事实表。例如:学生注册事件,学校需要对学生按学期进行跟踪。维度表包括学期维度、课程维度、系维度、学生维度、注册专业维度和取得学分维度,而事实表是由这些维度的主键组成,事实只有注册数,并且恒为1。这样的事实表可以回答大量关于大学开课注册方面的问题,主要是回答各种情况下的注册数。

    第二类非事实型事实表是用来说明某些活动范围的事实表。例如:促销范围事实表。通常销售事实表可以回答如促销商品的销售情况,但是对于那些没有销售出去的促销商品没法回答。这时,通过建立促销范围事实表,将商场需要促销的商品单独建立事实表保存。然后,通过这个促销范围事实表和销售事实表即可得出哪些促销商品没有销售出去。这样的促销范围事实表只是用来说明促销活动的范围,其中没有任何事实度量。

    合并事实表--consolidated/ merged fact table

    在数据仓库领域有一个概念叫merged fact table,或者consolidated fact table,中文一般都翻译为“合并事实表”。合并事实表是将不同事实表的事实合并到同一张事实表的建模方法,合并的事实要保证在相同的粒度。

    这种建模方法通常被用来横跨多个业务主题域来建立数据集市,Kimball将这样的数据集市称为第二级的数据集市。使用合并事实表技术,可以避免性能较差的交叉探察操作。

    但是,这种合并事实表和使用交叉探察操作还有着细微的不同,在一些基础表中没有记录的时候,合并事实表中可能会存储一条记录,字段值保存为零。

    合并事实表可以给数据仓库带来很大的性能提升,提供的跨主题的事实数据也给用户带来了很大的方便。但是,合并事实表给ETL工作带来了较大的麻烦。对于合并事实表中涉及到的维度,需要在数据准备区保证它们是一致性维度。

    缓慢变化维――slowly changing dimension

    维度建模的数据仓库中,有一个概念叫Slowly Changing Dimensions,中文一般翻译成“缓慢变化维”,经常被简写为SCD。缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化。这种随时间发生变化的维度我们一般称之为缓慢变化维,并且把处理维度表的历史变化信息的问题称为处理缓慢变化维的问题,有时也简称为处理SCD的问题。

    处理缓慢变化维的方法通常分为三种方式。

    第一种方式是直接覆盖原值。这样处理,最容易实现,但是没有保留历史数据,无法分析历史变化信息。第一种方式通常简称为“TYPE 1

    第二种方式是添加维度行。这样处理,需要代理键的支持。实现方式是当有维度属性发生变化时,生成一条新的维度记录,主键是新分配的代理键,通过自然键可以和原维度记录保持关联。第二种方式通常简称为“TYPE 2

    第三种方式是添加属性列。这种处理的实现方式是对于需要分析历史信息的属性添加一列,来记录该属性变化前的值,而本属性字段使用TYPE 1来直接覆盖。这种方式的优点是可以同时分析当前及前一次变化的属性值,缺点是只保留了最后一次变化信息。第三种方式通常简称为“TYPE 3”。

    在实际建模中,我们可以联合使用三种方式,也可以对一个维度表中的不同属性使用不同的方式,这些,都需要根据实际情况来决定,但目的都是一样的,就是能够支持方便的分析历史变化情况。

    即席查询――ad hoc queries

    在数据仓库领域有一个概念叫Ad hoc queries,中文一般翻译为“即席查询”。即席查询是指那些用户在使用系统时,根据自己当时的需求定义的查询。

    即席查询生成的方式很多,最常见的就是使用即席查询工具。一般的数据展现工具都会提供即席查询的功能。通常的方式是,将数据仓库中的维度表和事实表映射到语义层,用户可以通过语义层选择表,建立表间的关联,最终生成SQL语句。

    即席查询与通常查询从SQL语句上来说,并没有本质的差别。它们之间的差别在于,通常的查询在系统设计和实施时是已知的,所有我们可以在系统实施时通过建立索引、分区等技术来优化这些查询,使这些查询的效率很高。而即席查询是用户在使用时临时生产的,系统无法预先优化这些查询,所以即席查询也是评估数据仓库的一个重要指标。

    即席查询的位置通常是在关系型的数据仓库中,即在EDW或者ROLAP中。多维数据库有自己的存储方式,对即席查询和通常查询没有区别。

    在一个数据仓库系统中,即席查询使用的越多,对数据仓库的要求就越高,对数据模型的对称性的要求也越高。对称性的数据模型对所有的查询都是相同的,这也是维度建模的一个优点。

    交叉探察――drill across

    在维度建模的数据仓库中,有一种操作叫Drill Across ,中文一般翻译为“交叉探查”。

    在基于总线架构(Bus Architecture)的维度建模中,大部分的维度表是由事实表共有的。比如“营销事务事实表”和“库存快照事实表”就会有相同的维度表,“日期维度”、“产品维度”和“商场维度”。这时,如果有个需求是想按共有维度来对比查看销售和库存的事实,这时就需要发出两个SQL,分别查出按维度统计出的销售数据和库存数据。然后再基于共有的维度进行外连接,将数据合并。这种发出多路SQL再进行合并的操作就是交叉探查。

    当这种交叉探查的需求很常用时,有一种建模方法可以避免交叉探查,就是合并事实表(Consolidated Fact Table)。合并事实表是指将位于不同事实表中处于相同粒度的事实进行组合的一种建模方法。即新建立一个事实表,它的维度是两个或多个事实表的相同维度的集合,事实是几个事实表中感兴趣的事实。这个事实表的数据和其他事实表的数据一样来自Staging Area。

    合并事实表在性能和易用性上都比交叉探查要好,但是被组合的事实表必须处于相同的粒度和维度层次上。

    角色模仿维度--role-playing dimensions

    在数据仓库领域有一个概念叫Role-playing dimensions,中文一般翻译为“角色模仿维度”。角色模仿维度是为了处理一个维度在一个事实表中同时出现多次而使用的一种技术处理手段。

    在建立了角色模仿维度以后,在底层只有一个物理表存在,但是针对这个物理表会建立多个角色提供给数据访问工具,而且对数据访问工具来说这多个角色是不同的。例如对与累计快照事实表中会出现多个日期字段联接到日期维度。这时就可以针对日期维度建立多个角色模仿维度。

    角色模仿维度的建立方法通常是使用视图来完成。例如订单日期维度表如下所示:

    CREATE VIEW order_date(order_date_key, order_day_of_week, order_month, … )

    AS SELECT data_key, day_of_week, month, … FROM DATA

    使用同样的方式还可以建立多个不同日期的角色模仿维度。

    聚集事实表--aggregated fact table

     

    累计快照事实表--accumulating snapshot fact table

     

    桥接表--bridge table

     

    切片事实表--sliced fact table

    在数据仓库领域有一个概念叫sliced fact table,中文一般翻译为“切片事实表”。切片事实表中的字段结构和相应的基础表完全相同,差别在于存储的记录的范围。切片事实表中保存记录的是相应基础表中记录的子集,记录数通常与某个维度记录数相同。

    这种建模方法一般用来满足特殊需要,如需要分析某些特殊问题时,可以将与之相关的数据切片出来。相反,这种方法也常用于合并存储在不同地区的数据,即各个地区都保存自己地区的数据,总部和所有地区的表结构都相同,然后总部将所有地区的数据合并在一起。

    切片事实表的结构与相对应的基础表相同,数据来源于相对应的基础表。切片事实表由于缩小了表中数据的记录数,所以查询的效率得到了很大的提高。

    事实表――fact table

    在维度建模的数据仓库中,事实表是指其中保存了大量业务度量数据的表。事实表中的度量值一般称为事实。在事实表中最有用的事实就是数字类型的事实和可加类型的事实。事实表的粒度决定了数据仓库中数据的详细程度。

    一般来说,以粒度作为化分依据,主要有三种事实表,分别是事务粒度事实表(Transaction Grain Fact Table),周期快照粒度事实表(Periodic Snapshot Grain Fact Table)和累积快照粒度事实表(Accumulating Snapshot Grain Fact Table)

    事务粒度事实表中的一条记录代表了业务系统中的一个事件。事务出现以后,就会在事实中出现一条记录。事务粒度事实表也称为原子粒度。典型的例子是销售单分列项事实表。

    周期快照粒度事实表用来记录有规律的,可预见时间间隔的业务累计数据。通常的时间间隔可以是每天、每周或者每月。典型的例子是库存日快照事实表。

    累积快照事实表一般用来涵盖一个事务的生命周期内的不确定的时间跨度。典型的例子是KDT#2中描述的具有多个日期字段的发货事实表。

    通常来说,事务和快照是建模中的两个非常重要的特点,将两者相结合可以使模型建立的更完整。

    从用途的不同来说,事实表可以分为三类,分别是原子事实表,聚集事实表和合并事实表。

    原子事实表(Atom Fact Table)是保存最细粒度数据的事实表,也是数据仓库中保存原子信息的场所。

    聚集事实表(Aggregated Fact Table)是原子事实表上的汇总数据,也称为汇总事实表。即新建立一个事实表,它的维度表是比原维度表要少,或者某些维度表是原维度表的子集,如用月份维度表代替日期维度表;事实数据是相应事实的汇总,即求和或求平均值等。在做数据迁移时,当相关的维度数据和事实数据发生变化时,聚集事实表需要做相应的刷新。物化视图是实现聚集事实表的一种有效方式,可以设定刷新方式,具体功能由DBMS来实现。

    合并事实表(Consolidated Fact Table)是指将位于不同事实表中处于相同粒度的事实进行组合建模而成的一种事实表。即新建立一个事实表,它的维度是两个或多个事实表的相同维度的集合;事实是几个事实表中感兴趣的事实。在Kimball的总线架构中,由合并事实表为主组成的合并数据集市称为二级数据集市。合并事实表的粒度可以是原子粒度也可以是聚集粒度。在做数据迁移时,当相关的原子事实表的数据有改变时,合并事实表的数据需要重新刷新。合并事实表和交叉探察是两个互补的操作。

    聚集事实表和合并事实表的主要差别是合并事实表一般是从多个事实表合并而来。但是它们的差别不是绝对的,一个事实表既是聚集事实表又是合并事实表是很有可能的。因为一般合并事实表需要按相同的维度合并,所以很可能在做合并的同时需要进行聚集,即粒度变粗。

    事实维度--fact dimension

     

    事务事实表--transaction fact table

     

    审计维度--audit dimension

     

    数据世系――data lineage

    数据仓库中有一个概念叫做Data Lineage,中文一般翻译为“数据世系”。数据世系描述的是从源系统抽取数据开始,经过数据转换到最终的数据加载的整个过程中各种信息。

    数据世系信息需要留下详细的文档记载。数据世系包括源系统的数据库中数据定义以及该数据在数据仓库中的最终位置等信息。

    数据世系是数据仓库的元数据中最重要的一部分。这部分元数据的产生位置是在ETL的处理过程中。

    如果在ETL的处理过程中使用的ETL工具的话,ETL工具可以记录下元数据的一部分,但是这部分一般都是数据的属性描述,而不是完全的数据世系。换一句说,完全依靠ETL工具来维护元数据是不够的。

    双桶连接--double-barreled joins

     

    退化维度――degenerate dimension

    在维度建模的数据仓库中,有一种维度叫Degenerate Dimension,中文一般翻译为“退化维度”。这种退化维度一般都是事务的编号,如订单编号、发票编号等。这类编号需要保存到事实表中,但是不需要对应的维度表,所以称为退化维度。

    退化维度是维度建模领域中的一个非常重要的概念,它对理解维度建模有着非常重要的作用,尤其是对维度建模的入门者。

    退化维度经常会和其他一些维度一起组合成事实表的主键。在Kimball提出的维度建模中,事实表应该保存最细粒度的数据。所以对于象销售单这样的事实表来说,需要销售单编号和产品来共同作为主键,而不能用销售日期、商场、产品等用来分析的维度共同作为主键。

    退化维度在分析中可以用来做分组使用。它可以将同一个事务中销售的产品集中在一起。

    微型维度――minidimension

    维度建模的数据仓库中,有一种维度叫minidimension,中文一般翻译成“微型维度”。微型维度的提出主要是为了解决快变超大维度(rapidly changing monster dimension)。

    以客户维度举例来说,如果维度表中有数百万行记录或者还要多,而且这些记录中的字段又经常变化,这样的维度表一般称之为快变超大维度。对于快变超大维度,设计人员一般不会使用TYPE 2的缓慢变化维处理方法,因为大家都不愿意向本来就有几百万行的维度表中添加更多的行。

    这时,有一项技术可以解决这个问题。解决的方法是,将分析频率比较高或者变化频率比较大的字段提取出来,建立一个单独的维度表。这个单独的维度表就是微型维度表。

    微型维度表有自己的关键字,这个关键字和原客户维度表的关键字一起进入事实表。有时为了分析的方便,可以把微型维度的关键字的最新值作为外关键字进入客户维度表。这时一定要注意,这个外关键字必须做TYPE 1型处理。

    在微型维度表中如果有像收入这样分布范围较广的属性时,应该将它分段处理。比如,存储¥31257.98这样过于分散的数值就不如存储¥30000-¥34999这样的范围。这样可以极大的减少微型维度中的记录数目,也给分析带来方便。

    蜈蚣事实表――centipede fact table

    在数据仓库领域有一个概念叫Centipede fact table,中文一般翻译为“蜈蚣事实表”。蜈蚣事实表是指那些一张事实表中有太多维度的事实表。连接在事实表两边的维度表过多,看起来就像蜈蚣一样,所以称为“蜈蚣事实表”。

    通常来说,蜈蚣事实表的出现是由于建模师对事实表和维度表逆规范化过了头。例如,不单将产品主键放入事实表中,对于产品层级结构中的每一层的主键都放入事实表中,这样事实表中与产品相关的就会有产品ID、商标ID、子类ID、类别ID等多个外键。同样,也有建模师将日期相关的日期ID、月ID、年ID都放入事实表中。这些都将产生蜈蚣事实表,使自己落入维度过多的陷阱。

    蜈蚣事实表虽然使查询效率有所提高,但是伴之而来的是存储空间的大量增长。在维度建模的数据仓库中,维度表的字段个数可以尽可能的增加,但是事实表的字段要尽量减少,因为相比而言,事实表的记录数要远远大于维度表的记录数。

    一般来说,事实表相关的维度在15个以下为正常,如果维度个数超过25个,就出现了维度过多的蜈蚣事实表。这时,需要做的事情是自己核查,将相关的维度进行合并,减少维度的个数。

    稀疏事实表--sparse facts

     

    旋转事实表--pivoted fact table

    在数据仓库领域有一个概念叫pivoted fact table,中文一般翻译为“旋转事实表”。旋转事实表是将一条记录中的多个事实字段转化为多条记录,其中每条记录保存一个事实字段的一种建模方法。或者反过来,也可以由多条记录转化为一条记录。

    旋转事实表建模方法的使用通常是为了简化前端数据展现的查询。它通过改变后端的事实记录存储方式,使相应的查询需求的性能得到的极大的提高。如果在SQL或者查询工具中进行这种转换会非常麻烦,效率也很差。

    和合并事实表类似,有时当基础表中没有记录时,旋转事实表也要存储一些零值在里面。

    一致性事实――comformed fact

    维度建模的数据仓库中,有一个概念叫Conformed Fact,中文一般翻译为“一致性事实”。一致性事实是Kimball的多维体系结构(MD)中的三个关键性概念之一,另两个是总线架构(Bus Architecture)和一致性维度(Conformed Dimension)。

    在建立多个数据集市时,完成一致性维度的工作就已经完成了一致性的80%-90%的工作量。余下的工作就是建立一致性事实。

    一致性事实和一致性维度有些不同,一致性维度是由专人维护在后台(Back Room),发生修改时同步复制到每个数据集市,而事实表一般不会在多个数据集市间复制。需要查询多个数据集市中的事实时,一般通过交叉探查(drill across)来实现。

    为了能在多个数据集市间进行交叉探查,一致性事实主要需要保证两点。第一个是KPI的定义及计算方法要一致,第二个是事实的单位要一致性。如果业务要求或事实上就不能保持一致的话,建议不同单位的事实分开建立字段保存。

    这样,一致性维度将多个数据集市结合在一起,一致性事实保证不同数据集市间的事实数据可以交叉探查,一个分布式的数据仓库就建成了。

    一致性维度――comformed dimension

    维度建模的数据仓库中,有一个概念叫Conformed Dimension,中文一般翻译为“一致性维度”。一致性维度是Kimball的多维体系结构(MD)中的三个关键性概念之一,另两个是总线架构(Bus Architecture)和一致性事实(Conformed Fact)。

    在多维体系结构中,没有物理上的数据仓库,由物理上的数据集市组合成逻辑上的数据仓库。而且数据集市的建立是可以逐步完成的,最终组合在一起,成为一个数据仓库。如果分步建立数据集市的过程出现了问题,数据集市就会变成孤立的集市,不能组合成数据仓库,而一致性维度的提出正式为了解决这个问题。

    一致性维度的范围是总线架构中的维度,即可能会在多个数据集市中都存在的维度,这个范围的选取需要架构师来决定。一致性维度的内容和普通维度并没有本质上区别,都是经过数据清洗和整合后的结果。

    一致性维度建立的地点是多维体系结构的后台(Back Room),即数据准备区。在多维体系结构的数据仓库项目组内需要有专门的维度设计师,他的职责就是建立维度和维护维度的一致性。在后台建立好的维度同步复制到各个数据集市。这样所有数据集市的这部分维度都是完全相同的。建立新的数据集市时,需要在后台进行一致性维度处理,根据情况来决定是否新增和修改一致性维度,然后同步复制到各个数据集市。这是不同数据集市维度保持一致的要点。

    在同一个集市内,一致性维度的意思是两个维度如果有关系,要么就是完全一样的,要么就是一个维度在数学意义上是另一个维度的子集。例如,如果建立月维度话,月维度的各种描述必须与日期维度中的完全一致,最常用的做法就是在日期维度上建立视图生成月维度。这样月维度就可以是日期维度的子集,在后续钻取等操作时可以保持一致。如果维度表中的数据量较大,出于效率的考虑,应该建立物化视图或者实际的物理表。

    这样,维度保持一致后,事实就可以保存在各个数据集市中。虽然在物理上是独立的,但在逻辑上由一致性维度使所有的数据集市是联系在一起,随时可以进行交叉探察等操作,也就组成了数据仓库。

    因果维度--casual dimension

     

    预连接聚集表――pre-joined aggregate table

    在数据仓库领域有一个概念叫pre-joined aggregagte table,中文一般翻译为“预连接聚集表”。预连接聚集表是通过对事实表和维度表的联合查询而生成的一类汇总表。在预连接聚集表中,保存有维度表中的描述信息和事实表的事实值。

    通过预连接,可以避免在用户查询时RDBMS的连接操作,所以预连接聚集表的查询效率要高很多。

    典型的预连接聚集表如下例所示的销售事实表,

    产品名称

    商标名称

    年份

    月份

    销售人员名称

    销售量

    销售金额

    在这个销售事实表,前五个字段都来自于维度表的描述字段,后两个字段来自于事实表的事实字段。这样在用户提交查询后,RDBMS就不需要连接维度表和事实表了,只需直接在该表中查询即可。

    预连接聚集表有一个很大的缺点,它需要占用大量的存储空间。预连接事实表的记录和事实表一样多,每条记录的长度和维度表一样长,所以对存储空间的需求是非常大的。除非情况特殊,或者该表是高度汇总的,否则不建议建立预连接聚集表。在建立预连接聚集表时需要平衡效率和存储空间的矛盾。

    预连接聚集表的生成方式较为简单,直接使用SQL查询即可生成。

    如果聚集导航器的功能很强大的话,也可以处理预连接聚集表。否则,需要用户理解预连接聚集表,并在SQL中直接使用该表。

    预连接聚集表在数据仓库领域有着很重要的作用,是汇总表的一种。它的优点和缺点都很明显,在使用时需要综合考虑。

    原子事实表--atom fact table

     

    杂项维度――junk dimension

    在维度建模的数据仓库中,有一种维度叫Junk Dimension,中文一般翻译为“杂项维度”。杂项维度是由操作系统中的指示符或者标志字段组合而成,一般不在一致性维度之列。

    在操作系统中,我们定义好各种维度后,通常还会剩下一些在小范围内取离散值的指示符或者标志字段。例如:支付类型字段,包括现金和信用卡两种类型,在源系统中它们可能是维护在类型表中,也可能直接保存在交易表中。

    一张事实表中可能会存在好几个类似的字段,如果作为事实存放在事实表中,会导致事实表占用空间过大;如果单独建立维度表,外键关联到事实表,会出现维度过多的情况;如果将这些字段删除,会有人不同意。

    这时,我们通常的解决方案就是建立杂项维度,将这些字段建立到一个维度表中,在事实表中只需保存一个外键。几个字段的不同取值组成一条记录,生成代理键,存入维度表,并将该代理键保存入相应的事实表字段。建议不要直接使用所有的组合生成完整的杂项维度表,在抽取时遇到新的组合时生成相应记录即可。杂项维度的ETL过程比一般的维度略为复杂。

    总线架构――bus architecture

    维度建模的数据仓库中,有一个概念叫Bus Architecture,中文一般翻译为“总线架构”。总线架构是Kimball的多维体系结构(MD)中的三个关键性概念之一,另两个是一致性维度(Conformed Dimension)和一致性事实(Conformed Fact)。

    在多维体系结构(MD)的数据仓库架构中,主导思想是分步建立数据仓库,由数据集市组合成企业的数据仓库。但是,在建立第一个数据集市前,架构师首先要做的就是设计出在整个企业内具有统一解释的标准化的维度和事实,即一致性维度和一致性事实。而开发团队必须严格的按照这个体系结构来进行数据集市的迭代开发。

    一致性维度就好比企业范围内的一组总线,不同数据集市的事实的就好比插在这组总线上的元件。这也是称之为总线架构的原因。

    实际设计过程中,我们通常把总线架构列表成矩阵的形式,其中列为一致性维度,行为不同的业务处理过程,即事实,在交叉点上打上标记表示该业务处理过程与该维度相关。这个矩阵也称为总线矩阵(Bus Matrix)。

    总线架构和一致性维度、一致性事实共同组成了Kimball的多维体系结构的基础,也建立了一套可以逐步建立数据仓库的方法论。由于总线架构是多维体系结构的核心,所以我们有时就把多维体系结构直接称为总线架构。

    支架维度--outrigger dimension

     

    周期快照事实表--periodic snapshot fact table

     

    展开全文
  • Java技术常见术语及其解释(常见缩写)

    万次阅读 多人点赞 2018-12-20 17:39:37
    Java技术常见术语及其解释(Terminology) Terminology是“术语,专门用语”的意思。Java中有太多的缩写词、技术术语,初学者经常被各个术语搞得晕头转向。下边来汇总一下,希望对大家有所帮助。 JRE 与 JDK JRE: ...

    Java技术常见术语及其解释(常见缩写)

    Terminology是“术语,专门用语”的意思。Java中有太多的缩写词、技术术语,初学者经常被各个术语搞得晕头转向。下边来汇总一下,希望对大家有所帮助。

    Java SE 、Java EE、 Java ME

    Java分为: 标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。

    (1) Java SE (Java Platform, Standard Edition) 标准版本:

    J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程

    (2) Java EE (Java Platform,Enterprise Edition) 企业版本:

    J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JSP、XML、事务控制

    (3) Java ME (Java Platform,Micro Edition) 微型版本:

    Java ME 又称为 J2ME(Java Platform,Micro Edition),是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。
    J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒

    2005年6月,JavaOne 大会召开,SUN 公司公开 Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME。

    JRE 与 JDK

    JRE: Java运行环境

    JRE 是 Java Runtime Environment 缩写,指Java运行环境,是Sun的产品。运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库

    JDK: Java开发工具(包含JRE)

    JDK 是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

    JSR:

    JSR 是Java Specification Requests的缩写,意思是Java 规范提案。
    是指向 JCP (Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。
    JSR已成为Java界的一个重要标准。

    JCP:

    JCP (Java Community Process) 是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新。

    JAR、 EAR、 WAR 包文件?

    (1) JAR:Java Archive

    JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。

    JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。

    JAR包,通常是将多个 class 文件压缩成一个文件,可作为一个类库供其他项目引用。

    (2) EAR: Enterprise Archive file

    EAR 包含内容:Servlet、JSP页面、JSP标记库、JAR库文件、HTML/XML文档和其他公用资源文件,如图片、音频文件等; 除了包含JAR、WAR以外,还包括 EJB 组件·

    (3) WAR: Web Application Archive

    WAR 与 JAR 类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织,是做好一个web应用后,通常是一个网站,打成包部署到容器中。

    Java虚拟机: JVM

    JVM 是 Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

    Java 语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。
    而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。

    Java 语言使用 Java虚拟机 屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
    Java虚拟机 在执行字节码时,把字节码解释成具体平台上的机器指令执行。
    这就是 Java 的能够“一次编译,到处运行”的原因。

    应用服务器: Tomcat

    Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。
    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

    The Apache Tomcat software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies.

    Java Servlet 技术

    Java Servlet technology provides Web developers with a simple, consistent mechanism for extending the functionality of a Web server and for accessing existing business systems.
    A servlet can almost be thought of as an applet that runs on the server side–without a face.
    Java servlets make many Web applications possible.

    Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
    使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
    Java Servlet 通常情况下与使用 CGI (Common Gateway Interface,公共网关接口)实现的程序可以达到异曲同工的效果。但是相比于 CGI,Servlet 有以下几点优势:
    性能明显更好。
    Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
    Servlet 是独立于平台的,因为它们是用 Java 编写的。
    服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
    Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。

    Java Servlet 为创建基于 web 的应用程序提供了基于组件、独立于平台的方法,可以不受 CGI 程序的性能限制。
    Java Servlet 有权限访问所有的 Java API,包括访问企业级数据库的 JDBC API。

    JSP: JavaServer Pages Technology

    JSP全称Java Server Pages,和PHP, ASP类似,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。

    JavaServer Pages (JSP) technology provides a simplified, fast way to create dynamic web content.
    JSP technology enables rapid development of web-based applications that are server- and platform-independent.

    Java Expression Language (JEXL)

    JEXL implements an Expression Language based on some extensions to the JSTL Expression Language supporting most of the constructs seen in shell-script or ECMAScript.

    EL主要作用: 获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。

    JSF: JavaServer Faces

    JavaServer Faces (JSF) 是一种用于构建 Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。
    它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。

    典型的JSF应用程序包含下列部分:
    一组JSP页面
    一组后台 bean(为在一个页面上的UI组件定义的属性和函数的 JavaBean 组件)
    应用程序配置资源文件(定义页面导航规则、配置bean和其它的自定对象,如自定义组件)
    部署描述文件(web.xml)
    一组由应用程序开发者创建的自定义对象(有可能)
    一些可能包含自定义组件、约束、转换器或者监听器的对象
    为在页面中表现自定义对象的一组自定义tag
    包含JSP页面的JSF应用程序也使用由为了表现UI组件和在页面上的其他对象的JSF技术而定义的标准的tag库。

    Java Applet

    A Java applet was a small application that is written in the Java programming language, or another programming language that compiles to Java bytecode, and delivered to users in the form of Java bytecode.

    Applet 是一种 Java 程序。它一般运行在支持 Java 的 Web 浏览器内。因为它有完整的 Java API支持,所以Applet 是一个全功能的 Java 应用程序。

    JavaBean

    JavaBean 是特殊的Java类,使用J ava语言书写,并且遵守JavaBean API规范。
    JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。
    JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。

    简单的Java对象: POJO

    POJO (Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。

    • PO: Persistant Object. 持久对象,数据;

    PO 是 Persistant Object 的缩写,用于表示数据库中的一条记录映射成的 java 对象。
    PO 仅仅用于表示数据,没有任何数据操作。
    通常遵守 Java Bean 的规范,拥有 getter/setter 方法。

    • DTO: Data Transform Object. 传输对象,前端调用时传输 ;

    DTO 通常用于不同服务或服务不同分层之间的数据传输。
    DTO 与 VO 概念相似,并且通常情况下字段也基本一致。
    但 DTO 与 VO 又有一些不同,这个不同主要是设计理念上的,比如 API 服务需要使用的 DTO 就可能与 VO 存在差异。
    通常遵守 Java Bean 的规范,拥有 getter/setter 方法。

    • VO: Value Object. 表现对象,前端界面展示。

    VO 是 Value Object 的缩写,用于表示一个与前端进行交互的 java 对象。
    这里的 VO 只包含前端需要展示的数据即可,对于前端不需要的数据,比如数据创建和修改的时间等字段,出于减少传输数据量大小和保护数据库结构不外泄的目的,不应该在 VO 中体现出来。

    • BO: Business Object. 业务对象,封装对象、复杂对象 ,里面可能包含多个类;

    BO 包括了业务逻辑,常常封装了对 DAO、RPC 等的调用,可以进行 PO 与 VO/DTO 之间的转换。
    BO 通常位于业务层,要区别于直接对外提供服务的服务层:
    BO 提供了基本业务单元的基本业务操作,在设计上属于被服务层业务流程调用的对象,一个业务流程可能需要调用多个 BO 来完成。

    • DAO 是 Data Access Object 的缩写,用于表示一个数据访问对象。

    使用 DAO 访问数据库,包括插入、更新、删除、查询等操作,与 PO 一起使用。
    配合 VO, 提供数据库的 CRUD 操作
    DAO 一般在持久层,完全封装数据库操作,对外暴露的方法使得上层应用不需要关注数据库相关的任何信息。

    DO(Domain Object)领域对象
    就是从现实世界中抽象出来的有形或无形的业务实体。一般和数据中的表结构对应。

    TO(Transfer Object) ,数据传输对象
    在应用程序不同 tie( 关系 ) 之间传输的对象

    上面说的 PO、VO、DTO 都是典型的 POJO。而 DAO、BO 一般都不是 POJO,只提供一些调用方法。

    EJB: Enterprise JavaBean

    EJB 是Sun的 JavaEE 服务器端组件模型,设计目标与核心应用是部署分布式应用程序。
    EJB (Enterprise JavaBean) 是J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。

    在 J2EE 里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。
    在 EJB3.0 推出以后,实体Bean被单独分了出来,形成了新的规范JPA。

    JPA: Java Persistence API

    JPA 是 Java Persistence API 的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

    Java构建工具

    • Apache Maven

    Apache Maven 是一个软件项目管理和综合工具。

    Maven 是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

    Maven 的核心功能便是合理叙述项目间的依赖关系,即根据 pom.xml 文件的配置获取 jar 包,不用手动去添加jar包。

    • Apache Ant

    Apache Ant is a Java-based build tool. In theory, it is kind of like make, without make’s wrinkles.

    • Gradle (推荐使用)

    Gradle 是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
    Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

    Maven中 GroupId 和 ArtifactId 都是什么?

    GroupId 和 ArtifactId 被统称为“坐标”是为了保证项目唯一性而提出的.

    GroupId 一般分为多个段,一般第一段为域,第二段为公司名称。域又分为org、com、cn等,其中org为非营利组织,com为商业组织。

    举个 apache 公司的 tomcat 项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。

    org.springframework » spring-webmvc

    比如 spring-boot 项目:

    其 GroupId 是 org.springframework.boot , 分为三段,第一段为 org , 第二段为框架 springframework, 第三段为 boot
    其 ArtifactId 指明项目是 spring-boot

    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot</artifactId>
        <version>2.0.1.RELEASE</version>
    </dependency>
    

    GroupId 是项目组织唯一的标识符, 比如我的项目叫test001 那么GroupID应该是 com.lixiaoming.test001 域名.公司名.项目名

    ArtifactId 就是项目的唯一的标识符, 一般是 项目名-xxx 比如test001-model

    POM

    POM(Project Object Model)作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。

    Java数据库连接: JDBC

    JDBC (Java DataBase Connectivity, Java数据库连接) 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
    JDBC 提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序.

    JDBC API 是一个Java API可以访问任何类型的数据库的数据,尤其是存储在关系数据库中的数据。

    • MySQL Connector/J

    MySQL Connector/J 8.0, a JDBC and X DevAPI driver for communicating with MySQL servers.

    X DevAPI: The X DevAPI is implemented by MySQL Shell and MySQL Connectors that support X Protocol.

    SSH:

    SSH 为 Struts + Spring + Hibernate 的一个集成框架,是之前较流行的一种Web应用程序开源框架。

    • Struts框架

    Apache Struts 2 是一种流行的 Java模型 - 视图 - 控制器(MVC)框架,成功地结合了 WebWork 和 Struts1.x 两种 Web 框架。

    Struts2 是一个基于MVC设计模式的 Web 应用框架,它本质上相当于一个 Servlet,在MVC设计模式中,Struts2 作为控制器(Controller)来建立模型与视图的数据交互。

    • Spring框架

    Spring 框架是一个开源的 Java 平台,它为容易而快速的开发出耐用的 Java 应用程序提供了全面的基础设施。
    Spring 框架最初是由 Rod Johnson 编写的,并且 2003 年 6 月首次在 Apache 2.0 许可下发布。

    • Hibernate: Everything data.

    Hibernate 是一个开放源代码的对象关系映射(ORM)框架,它对 JDBC 进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的 ORM 框架.
    Hibernate 可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
    Hibernate 框架使用在数据持久化层(DAO)。

    • ORM: Object Relational Mapping

    ORM:对象关系映射, 采用映射元数据(配置文件)来描述对象-关系的映射细节。
    ORM 框架通过配置文件将实体对象和数据库表对应起来。
    采用映射元数据(配置文件)来描述对象-关系的映射细节。
    ORM 框架通过配置文件将实体对象和数据库表对应起来。

    • MyBatis

    MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records.

    MyBatis 是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
    MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
    MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs 映射成数据库中的记录。

    MyBatis 本是 Apache 的一个开源项目 iBatis, 2010年这个项目由 Apache Software Foundation 迁移到了 Google Code,并且改名为 MyBatis 。2013年11月迁移到Github。

    Apache Derby数据库

    Apache Derby, 是 Apache DB 下的一个子项目,是全部由 Java 实现的关系型数据库,其内嵌 JDBC 驱动,小巧,易于安装、部署和使用。
    由于 Derby 是一个纯Java程序,因此只需要操作系统支援Java虚拟机,Derby便可执行。
    由于 SQL 程序转成的Java bytecode 能被 JIT 动态翻译,因此 Derby 可能比传统的数据库管理系统更佳的性能。

    Apache Cassandra数据库

    Cassandra 是一套开源分布式NoSQL数据库系统。

    Cassandra, 卡珊德拉(希腊神话人物),它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。

    Facebook 于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等知名Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。

    欢迎留言补充!

    [END]

    展开全文
  • C语言常见术语

    千次阅读 2012-12-25 13:55:57
    语言常见术语: 库函数: |-  为了 代码重用 ,在 C 语言中提供了一些 常用的 、 用于执行一些标准任务 ( 如输入 / 出 ) 的函数 ,这些函数 事先被编译 ,并生成 目标代码 ,然后将生成的目标代码 打包成一...
  • Python基础概念_14_常见术语

    千次阅读 多人点赞 2017-06-16 09:46:02
    常见术语 15 常见术语 15.1 简介 Python里有一些常见的专业名词、用语,我们一般统称为术语。为了更方便的学习python我们通过表格的方式列举了常用的术语和单词以及工具。 15.2 常见术语 术语名称 相关...
  • Python中常见术语

    千次阅读 2020-04-19 10:32:36
    已经有两年多的Python使用经验了,也看了一些Python方面的书籍、视频教程,做了很多笔记,但是在学习《流畅的Python》,将最后术语表章节copy整理时,发现很多知识点虽然我知道、会用,但是让我像书中那样讲清楚,...
  • LabVIEW入门第一天

    千次阅读 2020-02-19 22:17:27
    它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它...
  • 术语1.9.0 这是一个EFL终端仿真器,带有一些额外的提示。 :warning_selector: :warning_selector...术语附带一些常见的配色方案。 要了解如何修改或添加一些新的配色方案,请阅读 。 滑鼠控制 Right mouse button =
  • 程序人生之常见术语与名词解释

    千次阅读 2019-03-04 11:19:54
    JSTL(JSP Standard Tag Library,JSP标准标签)是一个不断完善的开放源代码的JSP标签.主要是简化JSP和WEB应用程序. MVC(Model View Controller),是模型(model)-视图(view)-控制器(controller)的缩写。 ...
  • Android之——JNI与C语言常见术语

    千次阅读 2015-08-12 20:39:48
    库函数: ...文件中的函数被称为库函数,文件被称为函数。 |- 在Windows中C语言库函数中的中间代码都是以.obj为后缀的,Linux中是以 .o为后缀。 提示:单个目标代码是无法直接执行的,目标代码在
  • 由于人工智能不再是一个模糊的营销术语,而是更多的精确意识形态,因此理解所有AI术语越来越成为一项挑战。国外AI领域的专家们聚在一起,为大家定义了人工智能领域的一些最初常见...
  • 软件测试面试题汇总

    万次阅读 多人点赞 2018-09-27 12:31:09
    转载自: ... 软件测试面试题汇总 测试技术面试题 ...........................................................................................................
  • 《数据库原理》— 数据库系统概论第五版习题解析

    万次阅读 多人点赞 2017-05-29 14:57:48
    13.试述关系模型的概念,定义并解释以下术语: ( l )关系( 2 )属性( 3 )域( 4 )元组 ( 5 )主码( 6 )分量( 7 )关系模式 答:  关系模型由关系数据结构、关系操作集合和关系完整性...
  • 的基本概念设计中使用的文件逻辑单元时序模型NLDM 非...格式 内容 设计中用途 说明 logic lib逻辑单元 target_library,在elaborate时使用 .db 描述单元名,端口名,面积,时延弧,端口负...
  • 大数据的出现带来了许多新的术语,但这些术语往往比较难以理解。因此,我们通过本文给出一个常用的大数据术语表,抛砖引玉,供大家深入了解。其中部分定义参考了相应的博客文章。当然,这份术语表并没有100%包含所有...
  • 工业企业全业务域数据资源中心涉及跨专业领域术语很多,笔者近期根据国家层面发布的相关官方文档整理近55个常见名词术语,对工业企业全业务数据中心的常见关键术语进行定义和解析,便于读者更好的理解和开展数据资源...
  • JavaWeb

    千次阅读 多人点赞 2017-12-26 09:09:24
    **JSP的taglib指令:指示JSP引入标签: 标签的URI的路径" prefix="标签的别名" %> ***JSP的9大内置对象: 内置对象:在JSP中可以直接使用的对象 * request HttpServletRequest getParameter(),setAttribute...
  • Pitaya-火云术语 v3.0.2

    2019-10-31 08:40:32
    火云术语是国内首个云端翻译辅助软件,专注于术语管理与术语应用以提高翻译准确度和效率,同时提供目前为止国内最大最全的多语术语库以及方便易用的专业查词功能,是适合于专业用户和普通用户的最佳翻译助手。...
  • 常见STM32术语解释

    万次阅读 2017-06-27 20:51:12
    引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术InvenSense的运动处理资料,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。...
  • 顾名思义,可让您在WordPress博客上创建知识/常见问题解答部分。 该插件是在我尝试了几个免费的插件和主题之后诞生的,这与我的目的不符。 它的设计使其非常易于安装和使用,并且我将在核心和附加组件中添加更多...
  • 55、MySql一般数据达到千万级的数据就得分分表。 56、分布式事务CAP定理 57、CAP三者是否可以共有 58、BASE 59、是否真的需要分布式事务 60、通过消息队列实现分布式事务 61、为什么使用消息队列MQ 62、subString...
  • 信息安全中常用术语介绍

    千次阅读 2019-04-10 21:44:54
    我们在一些重大的安全事件发生后,经常会...今天我们就来对这些常用术语的具体含义和用途做一个基本的了解,以便于以后不会在傻傻分不清这些术语的含义。 什么是 VUL VUL,Vulnerability 的缩写,泛指漏洞。 什...
  • 语料库术语汇编

    千次阅读 2011-04-13 15:05:00
    转自:http://www.corpus4u.org/forum/showthread.php?p=35335#post35335语料库术语汇编:欢迎增补、批评指正【Updated on March 28, 2010】左边为英文,右边的汉语凡以分号(;)隔开的表示该术语有不同含义,以...
  • 系统流程包括基于左右信息熵扩展的候选领域术语获取、基于词性搭配规则与边界信息出现概率知识相结合的词语度筛选策略以及基于词频—逆文档频率(TF-IDF)的领域度筛选策略。运用此算法不但能抽取出领域的常见用词...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,343
精华内容 17,737
关键字:

常见术语库的格式