• 机器学习——生成分类数据的坐标系边界需要用到的技术方法


    0、前言:

    • 如果遇到一种应用场景需要将x轴数据和y轴数据所有点映射到坐标系中,需要得到坐标系中x和y映射的坐标点,就要用到meshgrid把x和y映射到坐标系中,然后把得到的结果用ravel把结果转成一维的。
    • 用np.c_()把x数据和y数据堆叠在一起,就可以用来输入模型做训练。
    • 如下图就是把一组x轴数据和一组y轴数据变成组合在一起的坐标的方法,先通过meshgrid将x轴数据和y轴数据一一对应成为坐标轴网格数据中的x坐标和y坐标,然后扁平化,然后再组合成坐标对。
      在这里插入图片描述

    1、numpy库中的meshgrid方法:

    • 该函数常用于在二维或三维空间中创建网格点坐标
    • 示例
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    x = [1,2,3]
    y = [4,5]
    X,Y = np.meshgrid(x,y)
    display(pd.DataFrame(X))
    '''
    	0	1	2
    0	1	2	3
    1	1	2	3
    '''
    display(pd.DataFrame(Y))
    '''
    	0	1	2
    0	4	4   4
    1	5	5	5
    
    '''
    # 组合
    # 相交点
    XY = np.c_[X.ravel(),Y.ravel()]
    display(pd.DataFrame(XY))
    '''
    	0	1
    0	1	4
    1	2	4
    2	3	4
    3	1	5
    4	2	5
    5	3	5
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 理解:通过meshgrid方法,就是相当于把输入的x坐标和输入的y坐标组合在一起对应成网格点,然后把网格点对应x坐标和y坐标以网格点的形式返回。例如我们看到显示返回的x坐标的时候,每一列都是同一个数,返回y坐标中每一行都是同一个数。

    2、np.ravel() :

    • 在 NumPy 中,你可以使用 np.ravel() 方法来将一个多维数组转换成一个一维数组。
    a = np.array(
        [[1,1,1],
         [2,2,2],
         [3,3,3]]
    )
    a.ravel() # array([1, 1, 1, 2, 2, 2, 3, 3, 3])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3、np.c_[a,b]:

    • numpy中的.c_方法把他们按照坐标的形式组合在一起。np.c_ 或 np.column_stack 将输入的数组以列为主导(左右组合)进行堆叠,生成一个新的数组。输入数组的每一行都会成为新数组的一列。这对于需要将多个一维数组组合成二维数组的情况非常有用。
    a = np.array(
        [[1,1,1],
         [2,2,2],
         [3,3,3]]
    )
    b = np.array(
        [[4,4,4],
         [5,5,5],
         [6,6,6]]
    )
    A = np.c_[a,b]
    '''
    array([[1, 1, 1, 4, 4, 4],
           [2, 2, 2, 5, 5, 5],
           [3, 3, 3, 6, 6, 6]])
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    4、sklearn.datasets.make_blobs:

    • 这是一个Scikit-learn库中的函数,用于创建带有随机分隔的聚类数据集。
    • 示例:
    data,target = make_blobs()
    '''
    参数:
    n_samples=100,样本数量,行数
    n_features=2, 特征数量,列数
    centers=None,中心点个数,默认3
    cluster_std=1.0,聚集,表示每一堆点的聚集程度
    center_box=(-10,10),表示中心的范围
    '''
    plt.scatter(data[:,0],data[:,1],c=target)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

  • 相关阅读:
    nginx部署多个前端项目
    如何备份和恢复 Docker Desktop 数据
    Java面向对象学习笔记-4
    五、伊森商城 前端基础-Vue p24
    SpringBoot介绍及自动装配
    开源大模型正在“杀死”闭源?
    深度学习笔记Week3
    46. 全排列
    SVN基本使用笔记——广州云科
    web前端设计与开发期末作品_期末大作业【使用HTML制作汽车首页】
  • 原文地址:https://blog.csdn.net/sz1125218970/article/details/132788842