scikit-learn主要是在单机上运行,mllib可以分布式在集群上运行,可以处理更大量的数据。
    另外mllib为了处理更大量的数据减少IO通信,对算法会做一些优化,可能会牺牲一丢丢精确度。


    • 基于DataFrame的API目前正在逐步取代RDD的API。
    • 因为DataFrame的接口更加友好,在不同的机器学习算法和多种语言之中提供了统一的接口

    DataFrame促进ML Pipelines


    Basic Statistics 基本统计学知识
    1、相关关系 Correlation
    Pearson’s correlation
    Spearman’s correlation
    2、假设检验 Hypothesis testing
    用于确定一个结果是否是显著的,是否是随机发生的
    一般用卡方检验Chi-squared ( χ2) tests


    ML Pipelines
    关键概念有:

    • DataFrame:存储各种数据
    • Transformer:将一个DataFrame转成另外一种DataFrame 入:DataFrame => 出: Data Frame
    • Estiamtor:用在DataFrame上产生Transformer的算法 入:DataFrame => 出:Transformer
    • PipeLine:A Pipeline chains multiple Transformers and Estimators together to specify an ML workflow
    • Parameter: Transformers和Estimators 共享的一套通用的参数API

    Transformer

    包含feature transformers和learned models的一个抽象 1、feature transformers Transformer一般会实现一个方法transform(),这个方法通过给DataFrame加上一些栏位, 将其转化为另一个DataFrame 2、learned models 这个模型读取DataFrame中含有特征向量的栏位,预测,输出一个新的DataFrame

    (添加了一个新栏,存了预测出来的标签)

    Estimators

    一般会实现一个fit()方法,传入一个DataFrame,输出一个Model,即Transformer

    Properties of pipeline components
    Each instance of a Transformer or Estimator has a unique ID, which is useful in specifying parameters
    Pipeline
    How it works
    training time
    PipeLine,最终经LogisticRegression.fit()产生LogisticRegressionModel,这是一个Transformer
    test time
    PipeLineModel
    Details:

    1、DAG Pipelines

    PipeLine的Stage,是有一个特定的顺序的。这里的例子是线性的。

    但是当数据流形成了一个 Directed Acyclic Graph (DAG),PipeLines很可能是非线性的。

    此时stages可能是一种拓扑的顺序

    2、Runtime checking

    1. Pipelines可以处理含多种数据类型的DataFrame,所以不能做编译时类型检查
    2. 所以PipelinesPipelineModels做运行时检查
    3. 类型检查使用DataFrame schema

    3、Unique Pipeline stages

    1. 同样的实例不能多次放入一个pipeline中去

    Parameters
    Param
    ParamMap
    向算法传递参数的两种方法:set、ParamMap
    ML persistence: Saving and Loading Pipelines
    Extracting, transforming and selecting features
    Feature Extractors

    TF-IDF:信息检索数据挖掘的常用加权技术