第一章 简介

第二章 基础操作

2.1 稀疏行压缩矩阵(compress sparse row matrix)

        在科学数值计算时,长需要压缩稀疏矩阵,这时候就要用到scipy库中的sparse.csr_matrix。

csr_matrix((data, indices, indptr), shape=(3, 3)).toarray()

|—— data: 矩阵中非零元素的值
|—— indices:非零元素的列索引
|—— indptr: 0表示默认起点,0之后数值个数表示行数,count = indptr[i+1] - indptr[i]表示第i行非零元素的个数。

第三章 应用

3.1 稀疏行压缩矩阵应用

3.1.1 独热编码(one hot encoding)

        在机器学习中,我们经常会遇到分类问题。独热编码是一种常用的处理分类数据的编码方法。它将离散的分类数据转换为二进制向量,其中每个分类值被编码为一个向量中的元素,只有一个元素被置为1(表示存在),其他元素都被置为0(表示不存在)。
        独热编码的核心思想是为每个不同的分类值创建一个唯一的二进制编码。例如,一个包含颜色的分类标签集,可能取值为:红色、绿色和蓝色。使用独热编码,这些值被编码为:

  • 红色:[1, 0, 0]
  • 绿色:[0, 1, 0]
  • 蓝色:[0, 0, 1]
    def label_binarize(self, y, classes, neg_label=0, pos_label=1):
        n_samples = len(y)  # 样本数目
        n_classes = len(classes)  # 类别数目

        classes = np.asarray(classes)
        y = np.asarray(y)

        sorted_class = np.sort(classes)

        y_in_classes = np.in1d(y, classes)
        y_seen = y[y_in_classes]

        indices = np.searchsorted(sorted_class, y_seen)   # 列索引
        indptr = np.hstack((0, np.cumsum(y_in_classes)))
        data = np.full_like(indices, fill_value=pos_label)

        y = sp.csr_matrix((data, indices, indptr), shape=(n_samples, n_classes),
                          dtype=int, copy=False).toarray()

        return y
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐