聚类分析法

文章目录

  • 聚类分析法
    • 1.简介
    • 2.基本内容介绍
      • 1.数据变换
      • 2. 样品间亲疏程度的测度计算
        • 常用距离计算
          • 1. 闵式(Minkowski)距离
          • 2. 马氏(Mahalanobis)距离
        • 相似系数的计算
          • 1. 夹角余弦
          • 2.皮尔逊相关系数
      • 3.使用scipy.cluster.hierarchy模块实现层次聚类
        • 1. distance.padist
        • 2. linkage
        • 3.fcluster
        • 4.H=dendrogram(Z,p)
      • 4.基于类间距离的层次聚类
        • 1. 最短距离法
        • 2. 例子:
        • 3. 最长距离法
        • 4.例子:

1.简介

​ 聚类分析又称群分析,它是研究分类问题的一种多元统计分析.所谓类,通俗地说,就是指相似元素的集合.要将相似元素聚为一类,通常选取元素的许多共同指标,然后通过分析元素的指标值来分辨元素间的差距,从而达到分类的目的. 聚类分析可以分为Q型聚类(堂本聚类)、R型聚类(指标聚类)

​ 聚类分析内容非常丰富,有层次聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法。在本篇内容中,我们重点介绍层次聚类和k-means聚类算法.以后面,还会在模糊数学那一章里更新模糊聚类算法.

聚类算法在机器学习中的非监督学习中应用非常广泛,特别是K-means,是机器学习算法工程师必须要掌握的算法.由此可见,数学建模与机器学习联系紧密,机器学习本质上就是应用数学或者说应用统计学.

2.基本内容介绍

1.数据变换

设有n个样品,每个样品测得p项指标(变量), 原始数据阵为(n,p)
A=[a11a12⋅⋅⋅a1pa21a22⋅⋅⋅a2p⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅an1an2⋅⋅⋅anp]A=\begin{bmatrix} a_{11}&a_{12}&···&a_{1p} \\ a_{21}&a_{22}&···&a_{2p} \\ ·&·&·&· \\ ·&·&·&· \\ ·&·&·&· \\ a_n1&a_n2&···&a_np \end{bmatrix} A=⎣⎢⎢⎢⎢⎢⎢⎡​a11​a21​⋅⋅⋅an​1​a12​a22​⋅⋅⋅an​2​⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅​a1p​a2p​⋅⋅⋅an​p​⎦⎥⎥⎥⎥⎥⎥⎤​
aij(i=1,⋅⋅⋅,n;j=1,⋅⋅⋅,p)为第i个样本ωi的第j个指标的观察数据a_{ij}(i=1,···,n;j=1,···,p)为第i个样本\omega_i的第j个指标的观察数据 aij​(i=1,⋅⋅⋅,n;j=1,⋅⋅⋅,p)为第i个样本ωi​的第j个指标的观察数据

由于样本数据矩阵由多个指标组成,不同指标一般有不同的量纲,为相除量纲的影响,通常需要进行数据变换处理.常用的数据变化方法有以下两种.(也就是机器学习中常说的数据预处理(去中心化和标准化)

  1. 规格化变换

    规格化变化是从数据矩阵的每一个变量值中找出其最大值和最小值,这两者之差称为极差,然后从每个变量值的原始数据中减去该变量值的最小值,再除以极差,就得到规格化数据,即:

  1. 标准化变换

    标准化变换就是我们常见的处理方式,将数据变换为标准正态分布

    首先对每个变量(随机变量(抽样数据))进行中心化变换,然后用该变量的标准差进行标准化,即有

变换处理后的数据矩阵记为:

2. 样品间亲疏程度的测度计算

研究样品的亲疏程度或相似程度的数量指标通常由两种:一种是相似系数,性质越接近的样品,其取值越接近于1或-1,而彼此无关的样品相似系数则接近于0,相似的归为一类,不相似的归为不同类.另一种是距离,它将每个样品看成p维空间的一个点,n个样品组成p维空间的n个点.用各点之间的距离来衡量各样品之间的相似程度.距离近的点归为一类,距离远的点属于不同的类.(距离相对来说用的更多)

常用距离计算

令dij表示样品ωi与ωj的距离.常用的距离有以下几种.令d_{ij}表示样品\omega_{i}与\omega_{j}的距离.常用的距离有以下几种.令dij​表示样品ωi​与ωj​的距离.常用的距离有以下几种.

1. 闵式(Minkowski)距离

​ dij(q)=(∑k=1p∣bik−bjk∣q)1qdij(q)={(\sum_{k=1}^{p}|{b_{ik}-b_{jk}|}^{q})}^\frac{1}{q}dij(q)=(k=1∑p​∣bik​−bjk​∣q)q1​

当q=1的时候,dij(1)=(∑k=1p∣bik−bjk∣q)1,也就是绝对值距离.当q=1的时候,dij(1)={(\sum_{k=1}^{p}|{b_{ik}-b_{jk}|}^{q})}^1,也就是绝对值距离.当q=1的时候,dij(1)=(k=1∑p​∣bik​−bjk​∣q)1,也就是绝对值距离.

当q=2的时候,dij(2)=(∑k=1p∣bik−bjk∣2)12,即欧式距离.当q=2的时候,dij(2)={(\sum_{k=1}^{p}|{b_{ik}-b_{jk}|}^{2})}^\frac{1}{2},即欧式距离.当q=2的时候,dij(2)=(k=1∑p​∣bik​−bjk​∣2)21​,即欧式距离.

当q=∞的时候,dij(∞)=max1≤k≤p∣bik−bjk∣,即切比雪夫距离.当q=\infty的时候,d_{ij}(\infty)=max_{1\leq k\leq p}|b_{ik}-b_{jk}|,即切比雪夫距离.当q=∞的时候,dij​(∞)=max1≤k≤p​∣bik​−bjk​∣,即切比雪夫距离.

2. 马氏(Mahalanobis)距离

马氏距离是由印度统计学家马哈拉诺比斯于1936年定义的,故称为马氏距离.

其计算公式为

Bi表示矩阵B的第i行,∑表示观测变量之间的协方差阵,∑=(σij)p×pB_i表示矩阵B的第i行,\sum表示观测变量之间的协方差阵,\sum={(\sigma_{ij})}_{p\times p}Bi​表示矩阵B的第i行,∑表示观测变量之间的协方差阵,∑=(σij​)p×p​

其中:

这里uj=1n∑k=1nbkju_j=\frac{1}{n}\sum_{k=1}^{n}b_{kj}uj​=n1​k=1∑n​bkj​

相似系数的计算

研究样品之间的关系,除了用距离表示外,还有相似系数.相似系数是描述样品之间相似程度的一个统计量,常用的相似系数有以下几种.

1. 夹角余弦

将任何两个样品ωi与ωj看成p维空间的两个相邻,这两个向量的夹角余弦用cosθij表示,则将任何两个样品\omega_i与\omega_j看成p维空间的两个相邻,这两个向量的夹角余弦用cos\theta_{ij}表示,则将任何两个样品ωi​与ωj​看成p维空间的两个相邻,这两个向量的夹角余弦用cosθij​表示,则

cosθij=1时,说明两个样品wi和wj完全相似;cosθij接近1时,说明ωi和ωj相似密切;cos\theta_{ij}=1时,说明两个样品w_i和w_j完全相似; cos\theta_{ij}接近1时,说明\omega_i和\omega_j相似密切;cosθij​=1时,说明两个样品wi​和wj​完全相似;cosθij​接近1时,说明ωi​和ωj​相似密切;

cosθij=0时,说明ωi与ωj完全不一样;cosθij接近于0时,说明ωi和ωj差别大.cos\theta_{ij}=0时,说明\omega_i与\omega_j完全不一样;cos\theta_{ij}接近于0时,说明\omega_i和\omega_j差别大.cosθij​=0时,说明ωi​与ωj​完全不一样;cosθij​接近于0时,说明ωi​和ωj​差别大.

把所有两两样品的相似系数都计算出来,可排成相似系数矩阵.把所有两两样品的相似系数都计算出来,可排成相似系数矩阵.把所有两两样品的相似系数都计算出来,可排成相似系数矩阵.

Figure 相似系数矩阵

其中cosθ11=⋅⋅⋅cosθnn=1.其中cos\theta_{11}=···cos\theta_{nn}=1.其中cosθ11​=⋅⋅⋅cosθnn​=1.

根据θ可对n个样品进行分类,把比较相似的样品归为一类,不怎么相似的样品归为不同的类.根据\theta可对n个样品进行分类,把比较相似的样品归为一类,不怎么相似的样品归为不同的类.根据θ可对n个样品进行分类,把比较相似的样品归为一类,不怎么相似的样品归为不同的类.

2.皮尔逊相关系数

第i个样品与第j个样品之间的相关系数定义为

实际上,rij就是两个向量Bi−B‾i与Bj−B‾j的夹角余弦,其中B‾i=ui‾[1,2,⋅⋅⋅,P].若将原始数据标准化,满足B‾i=B‾j=0,实际上,r_{ij}就是两个向量 B_i-\overline{B}_i与B_j-\overline{B}_j的夹角余弦,其中\overline{B}_i=\overline{u_i}[1,2,···,P].若将原始数据标准化,满足\overline{B}_i=\overline{B}_j=0,实际上,rij​就是两个向量Bi​−Bi​与Bj​−Bj​的夹角余弦,其中Bi​=ui​​[1,2,⋅⋅⋅,P].若将原始数据标准化,满足Bi​=Bj​=0,

(这是因为经过标准化后,每一个样本的每一个特征(随机变量)都满足N(0,1),所以这里求特征均值还是为0).这时rij=cosθij.(这是因为经过标准化后,每一个样本的每一个特征(随机变量)都满足N(0,1),所以这里求特征均值还是为0).这时r_{ij}=cos\theta{ij}.(这是因为经过标准化后,每一个样本的每一个特征(随机变量)都满足N(0,1),所以这里求特征均值还是为0).这时rij​=cosθij.

其中,r11=⋅⋅⋅=rnn=1,可根据R对n个样品进行分类其中,r_{11}=···=r{nn}=1,可根据R对n个样品进行分类其中,r11​=⋅⋅⋅=rnn=1,可根据R对n个样品进行分类

3.使用scipy.cluster.hierarchy模块实现层次聚类

scipy.cluster.hierarchy模块的层次聚类函数介绍如下.

1. distance.padist

B=pdist(A,metric=‘euclidean’)用metric指定的方法计算n×p矩阵A(看作n个p维行向量,每行是一个对象的数据)中两两对象间的距离,metric可取下面表格中的特征字符串,就是表示求距离的方式.输出B是包含距离信息的长度为(n-1)·n/2的向量.((n-1)·n/2是n个样本中两两配对不重复的元素数 等差数列求和(0+n-1)·n/2)一般会用distance.squareform函数将此向量转换为方阵(距离矩阵),这样可使矩阵中的(i,j)元素对应原始数据集中对象 i 和 j 间的距离.这样就更方便我们去调用.

字符串 含义
‘euclidean’ 欧式距离(缺省值)-在无决策者干预情况下,对于决策或应用软件、计算机程序的系统参数的自动选择
‘cityblock’ 绝对值距离
‘minkowski’ Minkowski距离
‘chebychev’ Chebychev距离(切比雪夫距离)
‘mahalanobis’ Mahalanobis距离(马氏距离)

metric的取值很多,可以在函数源码或者帮助中查阅.

import scipy.cluster.hierarchy as sch
help(sch.distance.pdist)
2. linkage

Z=linkage(B,‘method’)使用由’method’指定的算法计算生成聚类树,输入矩阵B为pdist函数输出的n·(n-1)/2维距离行向量,'method’可取表11.10中特征字符串值.默认使用’single’

字符串 含义
‘single’ 最短距离(缺省值)
‘average’ 无权平均距离
‘centroid’ 重心距离
‘complete’ 最大距离
‘ward’ 离差平方和方法(Ward方法)

输出z为包含聚类树信息的(n-1)×4矩阵.聚类树上的叶节点为原始数据集中的对象,其编号由0到n-1,它们是单元素的类,级别更高的类都由它们生成对应于Z中第j行中每个新生成的类,其索引为n+j.其中n为初始叶节点的数量.

​ Z的第一列和第二列Z[:,:2]

​ 如果是由初始元素(样本)生成的第一个聚合类 那么第一列和第二列显示的就是初始元素(样本)的编号

​ 如果已经是由初始类和初始类形成的更高级类,那么第一列和第二列分别代表的就是更高级类的两个连接子类分别的编号(子类的第一和第二列)的和.

​ Z的第三列Z[:,2]包含了相应的在类中的两两对象间的连接距离.

​ Z的第四列Z[:,3]表示当前类中原始对象的个数.

​ 详情可以看下面的栗子

3.fcluster

T=fcluster(Z,t) 从linkage的输出Z,根据给定的阈值t创建聚类.

4.H=dendrogram(Z,p)

由linkage产生的数据矩阵Z画聚类树状图.p是结点数,默认值是30.

后面会举一个怎么使用这个模块的栗子

4.基于类间距离的层次聚类

层次聚类法是聚类分析方法中使用最多的方法.其基本思想是:聚类相近的样品(或变量)先聚为一类,距离远的后聚成类,此过程一直进行下去,每个样品总能聚到合适的类中.它包含如下步骤:

  1. 将每个样品独自聚成一类,构造n个类.

  2. 根据所确定的样品距离公式,计算n个样品(或变量)两两间的距离,构造距离矩阵,记为D(0).

  3. 把距离最近的两类归为一新类,其他样品仍各自聚为一类,共聚成n-1类.

  4. 计算新类与当前各类的距离,将距离最近的两个类进一步聚成一类,共聚成n-2类.以上步骤一直进行下去,最后将所有的样品聚成一类.

  5. 画聚类谱系图

  6. 决定类的个数及各类包含的样品数,并对类作出解释.

    正如样品之间的距离可以有不同的定义方法一样,类与类之间的距离也有各种定义.例如,可以定义类与类的距离为两类之间最近样品的距离,或者定义为两类之间最远样品的距离,也可以定义为两类重心之间的距离等.**类与类之间用不同的方法定义距离,也产生了不同的层次聚类方法.**常用的层次聚类方法有:

    最短距离法、最长距离法、中间距离法、重心法、类平均法、可变类平均法、可变法和离差平方和法

    介绍两种常用的层次聚类法

1. 最短距离法

最短距离法定义类Gi与Gj之间的距离为两类间最邻近的两样品之距离,即Gi与Gj两类间的距离定义为最短距离法定义类G_i与G_j之间的距离为两类间最邻近的两样品之距离,即G_i与G_j两类间的距离定义为最短距离法定义类Gi​与Gj​之间的距离为两类间最邻近的两样品之距离,即Gi​与Gj​两类间的距离定义为

设类Gp与Gq合并成一个新类记为Gr,则任一类Gk与Gr的距离是设类G_p与G_q合并成一个新类记为G_r,则任一类G_k与G_r的距离是设类Gp​与Gq​合并成一个新类记为Gr​,则任一类Gk​与Gr​的距离是

最短距离法聚类的步骤如下:

1.定义样品之间的距离:计算样品两两间的距离,得一距离矩阵记为D(0)=(dij)n×n,开始每个样品自成一类,显然这时Dij=dij.1.定义样品之间的距离:计算样品两两间的距离,得一距离矩阵记为D_{(0)}=(d_{ij})_{n×n},开始每个样品自成一类,显然这时D_{ij}=d_{ij}.1.定义样品之间的距离:计算样品两两间的距离,得一距离矩阵记为D(0)​=(dij​)n×n​,开始每个样品自成一类,显然这时Dij​=dij​.

2.找出D(0)的非对角线最小元素,设为dpq,则将GP和Gq合并成一个新类,记为Gr,即Gr={Gp,Gq}.2.找出D_{(0)}的非对角线最小元素,设为d_{pq},则将G_P和G_q合并成一个新类,记为G_r,即G_r=\{G_p,G_q\}.2.找出D(0)​的非对角线最小元素,设为dpq​,则将GP​和Gq​合并成一个新类,记为Gr​,即Gr​={Gp​,Gq​}.
3.找出计算新类与其他类的距离公式:3.找出计算新类与其他类的距离公式:3.找出计算新类与其他类的距离公式:
Dkr=min{Dkp,Dkq}.D_{kr}=min\{D_{kp},D_{kq}\}.Dkr​=min{Dkp​,Dkq​}.

将D(0)中第p,q行及p,q列,用上面公式合并成一个新行新列,新行新列对应Gr,所得到的矩阵记为D(1).将D_{(0)}中第p,q行及p,q列,用上面公式合并成一个新行新列,新行新列对应G_r,所得到的矩阵记为D_{(1)}.将D(0)​中第p,q行及p,q列,用上面公式合并成一个新行新列,新行新列对应Gr​,所得到的矩阵记为D(1)​.

4.对D(1)重复上述类似D(0)的(2),(3)两步得到D(2).如此下去,直到所有的元素并成一类为止.4.对D_{(1)}重复上述类似D_{(0)}的(2),(3)两步得到D_{(2)}.如此下去,直到所有的元素并成一类为止.4.对D(1)​重复上述类似D(0)​的(2),(3)两步得到D(2)​.如此下去,直到所有的元素并成一类为止.

如果某一步D(k)中非对角线最小的元素不止一个,则对应这些最小元素的类可以同时合并.如果某一步D_{(k)}中非对角线最小的元素不止一个,则对应这些最小元素的类可以同时合并.如果某一步D(k)​中非对角线最小的元素不止一个,则对应这些最小元素的类可以同时合并.

2. 例子:

栗:在某地区有7个矽卡岩体,对7个岩体的三种元素Cu,W,Mo作分析的原始数据见表11.11,对这7个样品进行聚类.

1 2 3 4 5 6 7
Cu 2.9909 3.2044 2.8392 2.5315 2.5897 2.9600 3.1184
W 0.3111 0.5348 0.5696 0.4528 0.3010 3.0480 2.8395
Mo 0.5324 0.7718 0.7614 0.4893 0.2735 1.4997 1.9850

​ Figure : 7个 矽卡岩体 数据图

数学原理及聚类过程就不赘述了.按照最短距离聚类时,所画的聚类图如下图所示.

如果取阈值d=0.5(也就是画一条线y=0.5),则可把这些岩体划分为两类, 6 7 为一类

1 2 ···5为另外一类

​ Figure :最短距离聚类图

可以看到,画出的聚类图就是一棵树的形状(所以又叫作聚类树)

​ Figure: 输出矩阵Z

import numpy as np
from sklearn import preprocessing as pp #sklearn的数据预处理模块
import scipy.cluster.hierarchy as sch
import matplotlib.pyplot as plt
a=np.loadtxt("Pdata11_11.txt")     #数据文件在资源里面
b=pp.minmax_scale(a.T)   #数据规格化
d = sch.distance.pdist(b)  #求对象之间的两两距离向量
dd = sch.distance.squareform(d)  #转换为矩阵格式
z=sch.linkage(d); print(z) #进行聚类并显示
s=[str(i+1) for i in range(7)]; plt.rc('font',size=16)
sch.dendrogram(z,labels=s); plt.show()  #画聚类图

3. 最长距离法

定义类Gi与类Gj之间的距离为两类最远样品的距离,即定义类G_i与类G_j之间的距离为两类最远样品的距离,即定义类Gi​与类Gj​之间的距离为两类最远样品的距离,即

最长距离法与最短距离法的合并步骤完全一样,也是将各样品先自成一类,然后将非对角线上最小元素对应的两类合并.最长距离法与最短距离法的合并步骤完全一样,也是将各样品先自成一类,然后将非对角线上最小元素对应的两类合并.最长距离法与最短距离法的合并步骤完全一样,也是将各样品先自成一类,然后将非对角线上最小元素对应的两类合并.

设某一步将类Gp和Gq合并为Gr,则任一类Gk与Gr的最长距离公式为设某一步将类G_p和G_q合并为G_r,则任一类G_k与G_r的最长距离公式为设某一步将类Gp​和Gq​合并为Gr​,则任一类Gk​与Gr​的最长距离公式为

再找非对角线元素对应的两类并类,直至所有的样品全归为一类为止.
可见,最长距离法与最短距离法只有两点不同,一是类与类之间的距离定义不同;二是计算新类与其他类的距离所用的公式不同.

4.例子:

我们还是以上面的例题为例子

栗:在某地区有7个矽卡岩体,对7个岩体的三种元素Cu,W,Mo作分析的原始数据见表11.11,对这7个样品进行聚类.

import numpy as np
from sklearn import preprocessing as pp
import scipy.cluster.hierarchy as sch
import matplotlib.pyplot as plt
a=np.loadtxt("Pdata11_11.txt")
b=pp.minmax_scale(a.T)   #数据规格化
d = sch.distance.pdist(b)  #求对象之间的两两距离向量
dd = sch.distance.squareform(d)  #转换为矩阵格式
print(dd)
z=sch.linkage(d,'complete'); print(z) #进行聚类并显示  使用最大距离法
s=[str(i+1) for i in range(7)]; plt.rc('font',size=16)
sch.dendrogram(z,labels=s); plt.show()  #画聚类图


学完了不要着急走开,赶紧趁热打铁学习下一篇:
聚类分析法-K均值聚类

聚类分析法-层次聚类相关推荐

  1. R语言聚类分析之层次聚类(hierarchical clustering)实战

    R语言聚类分析之层次聚类(hierarchical clustering)实战 目录 R语言聚类分析之层次聚类(hierarchical clustering)实战 #距离计算

  2. R循环有两个_R语言数据分析与挖掘(第九章):聚类分析(2)——层次聚类

    层次聚类(hierarchical clustering)基于簇间的相似度在不同层次上分析数据,从而形成树形的聚类结构,层次聚类一般有两种划分策略:自底向上的聚合(agglomerative)策略和自 ...

  3. 机器学习——“物以类聚,人以群分”之聚类分析(层次聚类,K-means)

    由浅入深聚类分析·算法原理及核心步骤 引入 聚类分析概念 1.簇 2.簇的类型划分 3.相似性度量 聚类方法 1.聚类类型的划分依据 2.常用的聚类分析方法 (1)层次聚类 (2)划分(分割)聚类-- ...

  4. Matlab聚类分析_层次聚类+kmeans聚类等

    Matlab提供了两种方法进行聚类分析. 一种是利用 clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法: 另一种是分步聚类:(1)找到数据集合中变 ...

  5. 聚类分析法-K-means聚类

    K-means聚类法 文章目录 K-means聚类法 1.简介 2.栗子: 3.k-means算法思想揭秘-期望最大化 4.K-means最佳簇数K值的确定 1.簇内离差平方和拐点法 2.轮廓系数法 ...

  6. matlab 实现分层聚类算法,[转载]MATLAB层次聚类分析法(转)

    层次聚类是基于距离的聚类方法,MATLAB中通过pdist.linkage.dendrogram.cluster等函数来完成.层次聚类的过程可以分这么几步: (1) 确定对象(实际上就是数据集中的每个 ...

  7. 机器学习算法之 K-means、层次聚类,谱聚类

    k-means 和层次聚类都属于划分聚类,实际中最常用的是k-means,k-means效果不好的情况下才会采用其他聚类 K-means算法 K-means算法,也称为K-平均或者K-均值,是一种使用 ...

  8. 【进阶版】 机器学习之K均值聚类、层次聚类、密度聚类、实战项目含代码(15)

    目录 欢迎订阅本专栏,持续更新中~ 本专栏前期文章介绍! 机器学习配套资源推送 进阶版机器学习文章更新~ 点击下方下载高清版学习知识图册 项目要求 数据透视 代码实战 维度太多,利用PCA降维的思想进 ...

  9. 聚类分析1:层次聚类

    聚类分析是一种数据归约技术,旨在揭露一个数据集中观测值的子集.它可以把大量的观测值归约为若干个类,而事先并不知道类别的个数与结构. 最常用的两种聚类方法是层次聚类(hierarchical agglo ...

最新文章

  1. 学习笔记TF065:TensorFlowOnSpark
  2. 《数据库技术原理与应用教程》一3-5信息世界与逻辑模型
  3. python从入门到放弃系列恶搞短片-太惨!学Python方法用错,直接从入门到放弃!...
  4. 我的秋招之路(开篇)
  5. Java知识整理——ServletJSP
  6. mysql数据库财务_MySQL数据库——从入门到删库跑路(二)
  7. 怎么把一个bool数组转成char?
  8. nginx1.02+php+piwik+centos5.4构建网站统计系统
  9. python识别视频中火焰_监控视频中火焰检测算法
  10. 用友系统检查iis服务器不符,安装用友U8的时候已经安装了IIS但是环境检测的时候却通不过?...
  11. 如何让百度收录你的网站
  12. 关于山东大学(青岛)的吐槽
  13. 稻城亚丁徒步攻略,与你共同感受这片净土
  14. 黑产反诈有方法,异常识别我在行—欺诈反洗钱等领域用得最多的经典算法
  15. PyQt5实战之二维码生成器(一):基本界面设计
  16. 电脑jpg图片怎么批量转换成png
  17. 新项目筹划中。。。。
  18. Java程序设计 基础知识
  19. PhotonServer-创建APPServer和Client类
  20. 开发者数据库规范 - 团队协作

热门文章

  1. 最新版oracle 11g下载和安装教程
  2. 边缘检测之Sobel检测算子
  3. word怎么设置页面宽度和页面高度
  4. Vue纯前端:榜单管理系统
  5. [论文评析]Balanced MSE for Imbalanced Visual Regression,CVPR,2022
  6. QQ的个人中心模块思维导图
  7. 2022年建筑三类人员C1证考试题,建筑三类人员考试搜题
  8. java中String与new String的区别
  9. 机器学习中模型泛化能力和过拟合现象(overfitting)的矛盾、以及其主要缓解方法正则化技术原理初探...
  10. 新成果展示:具有倾斜台面的Micro-LED模型数据库的开发与应用