机器数据分析平台

  • 机器数据分析平台 > 使用文档 > 应用平台 > Pandora机器学习工具包 >fit的使用方法详述 > 连续数据聚类

    连续数据聚类

    最近更新时间:2020-12-15 10:44:31

    使用场景

    连续数据不限于定义的单独值,而是可以占用连续范围内的任何值。在任何两个连续数据值之间,可能有无限多个其他值。比如身高、体重、温度、价格等等。当我们需要将连续数据通过其特征相似性合并成几个大类的时候,我们通常使用聚类算法(Clustering)来解决问题。

    分类和聚类算法的目的都是将数据判断成某一类,但他们训练所需的数据不同。分类算法是一种监督性学习方法,意味着在训练模型的时候,样本数据中必须包含每一行数据的属性特征及其所属的类别,目的是将每一条记录分别属于哪一类标记出来。而聚类算法为非监督性学习,意味着在训练模型的时候,样本数据中只包含每一行数据的属性特征,但是并不知道他们所属的类别。目的只是根据提供的属性特征,把相似的东西聚到一起。

    通用语法:

    ...|fit <algo_name> [options] <feature_field_1> <feature_field_2> [into model_name]... 
    

    通用参数说明:

    • <algo_name> 必填,用来指定训练模型采用的算法名称。
    • [options]可选,为算法的内置参数,根据提供的算法变化。
    • <feature_field> 必填,可以是一个或者多个字段,用来指定建模使用的特征字段,给定的feature_field值必须存在于数据集中。
    • [into model_name]可选,用来将fit训练出来的模型保存成model_name以便下次调用。需要注意的是,只有K均值算法支持保存模型,层次聚类法不支持模型的保存和重新应用。如果需要用层级聚类法做新数据集的聚类分析,则需要直接在新数据上用层次聚类法训练产生模型。
    • 数据集必须不为空。

    以下算法可以用来预测未来某个时间的连续指标:

    K均值 - KMeans

    K均值算法是一种常用的聚类分析的方法,通过给定的k值,将数据分成k个簇,使得每个数据点到聚类中心的距离最小。在没有很明确的偏好算法的情况下,建议可以使用K均值算法来得出初步的聚类分析模型

    语法:

    ...|fit KMeans n_clusters=<int> init=<"k-means++" (default)| random> n_init=<int> max_iter=<int> random_state=<int> <feature_field_1> <feature_field_2>... 
    

    参数说明:

    • n_clusters参数,用来指定形成的簇/中心点的数量。如不提供,默认值为8。
    • init参数,用来指定初始值选择的方式
      • k-means++(默认值): 优化过选择方式
      • random:完全随机
    • n_init参数,用来指定用不同的初始点运行算法的次数。如不提供,默认值为10。
    • max_iter参数,用来指定在单次运算中,KMeans计算反复的最大限度。如不提供,默认值为300。在数据量或者特征数量特别大的情况下,可以适量增大。
    • random_state为随机数种子,用来控制样本自助抽样的随机性和特征抽样的随机性。如果给定特定值,重新跑模型的时候,可以得出同样的结果。

    层次聚类法 - Hierarchical Clustering

    层次聚类法是聚类分析的一种,通过计算不同类别的相似度类创建一个有层次的嵌套的树。 在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节点。

    语法:

    ...|fit HierarchicalClustering n_clusters=<int | None> linkage=<ward(default) | complete | average | single> affinity=<euclidean(default) | l1 | l2 | manhattan | cosine> distance_threshold=<float | None> <feature_field_1> <feature_field_2>... 
    

    参数说明:

    • n_clusters参数,用来指定形成的簇/中心点的数量。如不提供,默认值为2。与distance_threshold不能一起使用。
    • linkage参数,用来指定计算两个组合数据点间距离的方法
      • linkage=ward(默认值),将组合内各个数据点之间方差最小的组作为最终形成的组。
      • linkage=single,计算两个组合数据点中距离最近的两个数据点间的距离作为这两个组合数据点的距离
      • linkage=complete,计算两个组合数据点中距离最远的两个数据点间的距离作为这两个组合数据点的距离
      • linkage=average,计算两个组合数据点中的每个数据点与其他所有数据点的距离。将所有距离的均值作为两个组合数据点间的距离
    • affinity参数,用来指定计算linkage的方法。
      • affinity=euclidean,使用欧式距离
      • affinity=l1,使用曼哈顿距离(即affinity=manhattan)
      • affinity=l2,使用欧式距离(即affinity=euclidean)
      • affinity=manhattan,使用曼哈顿距离(即affinity=l1)
      • affinity=cosine,使用余弦相似度
        • distance_threshold,用来指定距离阀值。两个组合数据点之间的距离大于阀值的情况下,这两个组合不会合并。与n_clusters不能一起使用。
        • 如果提供distance_threshold且distance_threshold不为None,n_clusters必须为None或者不提供。反之亦然。
    以上内容是否对您有帮助?
  • Qvm free helper
    Close