ops

classicML的底层核心操作.

cc_bootstrap_sampling

cc_bootstrap_sampling(x, y=None, seed=None)

对样本进行自助采样.

参数

  • x: 一个 Numpy数组,特征数据.

  • y: 一个 Numpy数组,数据样本(标签).

  • seed: 整数,随机种子.

返回

自助采样后的新样本.

ConvexHull

使用Graham扫描算法计算二维凸包.

ConvexHull(points)

参数

  • points: 一个Numpy数组或列表, 计算凸包的点.

  • hull: 一个Numpy数组或列表, 凸包的点.

参考文献

compute_convex_hull

计算二维凸包.

compute_convex_hull()

返回

二维凸包.

cc_calculate_centroids

cc_calculate_centroids(x, clusters)

计算均值向量.

参数

  • x: 一个 Numpy数组, 特征数据.

  • clusters: 一个 Numpy数组, 当前的簇标记.

返回

均值向量.

cc_calculate_error

cc_calculate_error(x, y, i, kernel, alphas, non_zero_alphas, b)

计算KKT条件的违背值.

参数

  • x: 一个 Numpy数组,特征数据.

  • y: 一个 Numpy数组,标签.

  • i: 整数,第i个样本.

  • kernel: cml.kernel.Kernels实例,分类器使用的核函数.

  • alphas: 一个 Numpy数组,拉格朗日乘子.

  • non_zero_alphas: 一个 Numpy数组,非零拉格朗日乘子.

  • b: 浮点数,偏置项.

返回

KKT条件的违背值.

cc_calculate_euclidean_distance

cc_calculate_euclidean_distance(x0, x1)

计算欧式距离.

参数

  • x0, x1: Numpy数组, 要计算欧式距离的两个值.

返回

欧式距离.

cc_calculate_means

cc_calculate_means(sample, gamma)

计算均值.

参数

  • sample: 一个Numpy数组, 样本的取值.

  • gamma: 一个Numpy数组, 后验概率.

返回

新的均值.

cc_clip_alpha

cc_clip_alpha(alpha, low, high)

修剪拉格朗日乘子.

参数

  • alpha: 浮点数,拉格朗日乘子.

  • low: 浮点数,正则化系数的下界.

  • high: 浮点数,正则化系数的上界.

返回

修剪后的拉格朗日乘子.

cc_compare_differences

cc_compare_differences(x0, x1, tol)

比较差异.

参数

  • x0, x1: Numpy数组, 要比较差异的两个值.

  • tol: 浮点数, 最小差异阈值.

返回

差异向量.

cc_get_cluster

cc_get_cluster(distances)

获取类条件概率.

参数

  • distances: 一个Numpy, 距离.

返回

簇标记.

cc_get_conditional_probability

cc_get_conditional_probability(samples_on_attribute, samples_in_category, num_of_categories, smoothing)

获取类条件概率.

参数

  • samples_on_attribute: 整数,在某个属性的样本.

  • samples_in_category: 整数,在某个类别上的样本.

  • num_of_categories: 整数,类别的数量.

  • smoothing: 布尔值,是否使用平滑.

返回

类条件概率.

cc_get_dependent_prior_probability

cc_get_dependent_prior_probability(samples_on_attribute_in_category,
                                   number_of_sample,
                                   values_on_attribute,
                                   smoothing)

获取有依赖的类先验概率.

参数

  • samples_on_attribute_in_category: 整数,类别为c的属性i上取值为xi的样本.

  • number_of_sample: 整数,样本的总数.

  • values_on_attribute: 整数,在属性i上的取值数.

  • smoothing: 布尔值, 是否使用平滑.

返回

类先验概率.

cc_get_prior_probability

cc_get_prior_probability(number_of_sample, y, smoothing)

获取类先验概率.

参数

  • number_of_sample: 整数,样本的总数.

  • y: 一个 Numpy数组,标签.

  • smoothing: 布尔值, 是否使用平滑.

返回

类先验概率.

cc_get_probability_density

cc_get_probability_density(sample, mean, var)

获得概率密度.

参数

  • sample: 浮点数,样本的取值.

  • mean: 浮点数,样本在某个属性的上的均值.

  • var: 浮点数,样本在某个属性上的方差.

返回

概率密度.

cc_get_w

cc_get_w(S_w, mu_0, mu_1)

cc_get_w已经被弃用, 它将在未来的正式版本中被移除, 请使用 cc_get_w_v2.

获得投影向量.

参数

  • S_w: 一个 Numpy数组,类内散度矩阵.

  • mu_0: 一个 Numpy数组,反例的均值向量.

  • mu_1: 一个 Numpy数组,正例的均值向量.

返回

投影向量.

cc_get_w_v2

cc_get_w_v2(S_w, mu_0, mu_1)

获得投影向量.

参数

  • S_w: 一个 Numpy数组,类内散度矩阵.

  • mu_0: 一个 Numpy数组,反例的均值向量.

  • mu_1: 一个 Numpy数组,正例的均值向量.

返回

投影向量.

cc_get_within_class_scatter_matrix

cc_get_within_class_scatter_matrix(X_0, X_1, mu_0, mu_1)

获得类内散度矩阵.

参数

  • X_0: 一个 Numpy数组,反例集合.

  • X_1: 一个 Numpy数组,正例集合.

  • mu_0: 一个 Numpy数组,反例的均值向量.

  • mu_1: 一个 Numpy数组,正例的均值向量.

返回

类内散度矩阵.

cc_init_centroids

cc_init_centroids(x, n_clusters, init)

初始化初始均值向量.

参数

  • x: 一个 Numpy数组,KKT条件的违背值缓存.

  • n_clusters: 整数, 聚类簇的数量.

  • init: 均值向量的初始化方式,

    • ‘random’: 采用随机初始化;

    • 列表或一个Numpy数组: 可以指定训练数据的索引, 也可以直接给定具体的均值向量.

返回

均值向量.

异常

  • ValueError: 聚类簇数量与初始化均值向量数量不一致, 非法索引或不能自动转换的非法均值向量.

  • TypeError: 非法均值向量.

cc_select_second_alpha

cc_select_second_alpha(error, error_cache, non_bound_alphas)

选择第二个拉格朗日乘子,SMO采用的是启发式寻找的思想,找到目标函数变化量足够大,即选取变量样本间隔最大.

参数

  • error: 浮点数,KKT条件的违背值.

  • error_cache: 一个 Numpy数组,KKT条件的违背值缓存.

  • non_bound_alphas: 一个 Numpy数组,非边界拉格朗日乘子.

返回

拉格朗日乘子的下标和违背值.

cc_type_of_target

cc_type_of_target(y)

cc_type_of_target已经被弃用, 它将在未来的正式版本中被移除, 请使用 cc_type_of_target_v2.

判断输入数据的类型.

参数

  • y: 一个 Numpy数组,待判断类型的数据.

返回

  • 'binary': 元素只有两个离散值,类型不限.

  • 'continuous': 元素都是浮点数,且不是对应整数的浮点数.

  • 'multiclass': 元素不只有两个离散值,类型不限.

  • 'multilabel': 元素标签不为一,类型不限.

  • 'unknown': 类型未知.

cc_type_of_target_v2

cc_type_of_target_v2(y)

判断输入数据的类型.

参数

  • y: 一个 Numpy数组,待判断类型的数据.

返回

  • 'binary': 元素只有两个离散值,类型不限.

  • 'continuous': 元素都是浮点数,且不是对应整数的浮点数.

  • 'multiclass': 元素不只有两个离散值,类型不限.

  • 'multilabel': 元素标签不为一,类型不限.

  • 'unknown': 类型未知.