大数据HCIE成神之路之数据预处理(3)——数值离散化

数值离散化

    • 1.1 无监督连续变量的离散化 – 聚类划分
      • 1.1.1 实验任务
        • 1.1.1.1 实验背景
        • 1.1.1.2 实验目标
        • 1.1.1.3 实验数据解析
      • 1.1.2 实验思路
      • 1.1.3 实验操作步骤
      • 1.1.4 结果验证
    • 1.2 无监督连续变量的离散化 – 等宽划分
      • 1.2.1 实验任务
        • 1.2.1.1 实验背景
        • 1.2.1.2 实验目标
        • 1.2.1.3 实验数据解析
      • 1.2.2 实验思路
      • 1.2.3 实验操作步骤
      • 1.2.4 结果验证
    • 1.3 无监督连续变量的离散化 – 等频划分
      • 1.3.1 实验任务
        • 1.3.1.1 实验背景
        • 1.3.1.2 实验目标
        • 1.3.1.3 实验数据解析
      • 1.3.2 实验思路
      • 1.3.3 实验操作步骤
      • 1.3.4 结果验证
    • 1.4 有监督连续变量的离散化 – 基于卡方检验的方法
      • 1.4.1 实验任务
        • 1.4.1.1 实验背景
        • 1.4.1.2 实验目标
        • 1.4.1.3 实验数据解析
      • 1.4.2 实验思路
      • 1.4.3 实验操作步骤
      • 1.4.4 结果验证

1.1 无监督连续变量的离散化 – 聚类划分

聚类划分 是指使用聚类算法将数据分为K类,需要自己设定K值大小。从而把同属一类的数值标记为相同标签。目前常用的聚类划分方法是Kmeans算法。

聚类划分的实现使用Python中sklearn库的KMeans ( ) 函数,其基本格式如下:

KMeans(n_clusters=8, init='k-means++', n_init=10, max_iter=300, tol=0.0001, precompute_distances='auto', verbose=0, random_state=None, copy_x=True, n_jobs=1, algorithm='auto')

关键参数详解:

  • n_clusters=8,表示要分成的簇数,默认为8。
  • init=‘k-means++’,表示初始化质心,默认采用k-means++,是一种生成初始质心的算法。
  • n_init=10,表示选择的质心种子次数,默认为10次。返回质心最好的一次结果,即计算时长最短的一次结果)。
  • max_iter=300,表示每次迭代的最大次数,默认为300。
  • tol=0.0001,表示容忍的最小误差,当误差小于tol就会退出迭代,默认值为0.0001。
  • precompute_distances=auto,这个参数会在空间和时间之间做权衡,如果是True会把整个距离矩阵都放到内存中,auto状态下会默认在数据样本大于featurs*samples 的数量时则False。
  • verbose=0,表示是否输出详细信息 。
  • random_state=None,表示随机生成器的种子,和初始化中心有关。
  • copy_x=True,表示是否对输入数据继续copy 操作,以便不修改用户的输入数据。
  • n_jobs=1,表示使用进程的数量,默认为1。

1.1.1 实验任务

1.1.1.1 实验背景

KMeans是最简单的聚类算法之一,但是运用十分广泛。KMeans一般在数据分析前期使用,选取适当的k,将数据分类后,然后分类研究不同聚类下数据的特点。

1.1.1.2 实验目标

掌握对数据进行KMeans聚类划分的操作。

1.1.1.3 实验数据解析

数据使用鸢尾花数据集。

1.1.2 实验思路

  • 导入实验数据集。

  • 使用KMean( )函数对数据进行聚类划分并可视化展示出来。

1.1.3 实验操作步骤

步骤 1 导入数据集

iris是150*4的数据集,为实验过程更易被理解。特取其中2-4列的数据进行聚类划分实验。

import numpy as np 
from sklearn.datasets import load_iris 
iris=load_iris()
# 只取数据集中的 3列【petal length (cm)】、4列【petal width (cm)】的数据
X = iris.data[:, 2:4]

X的部分结果如下:

array([[1.4, 0.2],[1.4, 0.2],[1.3, 0.2],[1.5, 0.2],[1.4, 0.2],[1.7, 0.4],[1.4, 0.3],[1.5, 0.2],[1.4, 0.2],

步骤 2 聚类划分

# 导入 KMeans 包
from sklearn.cluster import KMeans
# 构造聚类器实例
estimator = KMeans(n_clusters=3) 
# 聚类
estimator.fit(X) 
# 获取聚类标签
label_pred = estimator.labels_

补充:

label_pred 的结果如下:

array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])

打印 label_pred==0 的值:

x0 = X[label_pred == 0]
x0

部分结果显示如下:

array([[1.4, 0.2],[1.4, 0.2],[1.3, 0.2],[1.5, 0.2],[1.4, 0.2],[1.7, 0.4],[1.4, 0.3],[1.5, 0.2],[1.4, 0.2],[1.5, 0.1],[1.5, 0.2],[1.6, 0.2],

解释: label_pred 的元素个数与 X 的行数是一样的(因为一个标签,对应一行数据), label_pred 的元素值如果为0,则为True, X[label_pred == 0] 其实就是把为True的对应位置的元素保留了下来,所以就相当于实现了筛选。

步骤 3 可视化展示聚类划分结果

# 导入可视化包
import matplotlib.pyplot as plt
# 可视化 k-means 结果
# 设置测试数据
x0 = X[label_pred == 0]
x1 = X[label_pred == 1]
x2 = X[label_pred == 2]
# 设置绘制的图像为散点图,输入数据 x0,散点的颜色为红色,散点的形状为 o,标签为label0
plt.scatter(x0[:, 0], x0[:, 1], c="red", marker='o',label='label0')
# 设置绘制的图像为散点图,输入数据 x1,散点的颜色为绿色,散点的形状为*,标签为label1
plt.scatter(x1[:, 0], x1[:, 1], c="green", marker='*',label='label1')
# 设置绘制的图像为散点图,输入数据 x2,散点的颜色为蓝色,散点的形状为+,标签为label2
plt.scatter(x2[:, 0], x2[:, 1], c="blue", marker='+',label='label2')
# 设置 x 轴标题为'petal length'
plt.xlabel('petal length')
# 设置 y 轴标题为'petal width'
plt.ylabel('petal width')
# 设置图例显示的位置为左上角
plt.legend(loc=2)
# 显示可视化结果
plt.show()

输出结果如下:
在这里插入图片描述
扩展学习:

下面是一些常用的estimator属性和方法:

labels_ :聚类标签。它是一个大小为 n_samples 的一维数组,表示每个样本所属的聚类簇的标签。

label_pred = estimator.labels_

cluster_centers_ :聚类中心。它是一个大小为 (n_clusters, n_features) 的二维数组,表示每个聚类簇的中心点的坐标。

centers = estimator.cluster_centers_

inertia_ :聚类内部的平方和误差 (SSE) 。它是一个标量值,表示所有样本到其所属聚类中心的距离的总和。

sse = estimator.inertia_

n_clusters :聚类的 数量 。它是一个整数,表示聚类器指定的聚类簇的个数。

num_clusters = estimator.n_clusters

fit(X) :对数据进行聚类。X是一个大小为 (n_samples, n_features) 的二维数组,表示输入的特征数据。

estimator.fit(X)

fit_predict(X) :对数据进行聚类,并返回聚类 标签

labels = estimator.fit_predict(X)

整理成表格如下:

属性/方法描述
labels_聚类标签。大小为 n_samples 的一维数组,表示每个样本所属的聚类簇的标签。
cluster_centers_聚类中心。大小为 (n_clusters, n_features) 的二维数组,表示每个聚类簇的中心点的坐标。
inertia_聚类内部平方和误差(SSE)。标量值,表示所有样本到其所属聚类中心的距离的总和。
n_clusters聚类的数量。整数,表示聚类器指定的聚类簇的个数。
fit(X)对数据进行聚类。X 是一个大小为 (n_samples, n_features) 的二维数组,表示输入的特征数据。
fit_predict(X)对数据进行聚类,并返回聚类标签

这些属性和方法可以帮助你使用KMeans聚类器进行聚类操作,并获取聚类结果、聚类中心以及聚类质量的评估。你可以根据具体的需求选择适当的属性或方法来处理聚类结果。

1.1.4 结果验证

由上述实验结果可知,使用 k-means 方法对鸢尾花部分数据集进行聚类划分之后将数据的分成了三类,几乎没有数据点是异常的。

1.2 无监督连续变量的离散化 – 等宽划分

等宽划分 是指把连续变量按照相同的区间间隔划分几等份。换句话说,就是根据连续变量的 最大值最小值 ,将变量划分为N等份。

等宽划分的实现使用Python中pandas库的cut ( ) 函数,其基本格式如下:

pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)

关键参数详解:

  • x,表示进行划分的 一维数组
  • bins,定义分箱边界的标准,表示将x划分为多少个等间距的区间。
  • right=True,是否包含右端点,表示是否包含箱子的最右边的边界。如果right=True,那么箱子[1, 2, 3, 4]表示(1,2], (2,3], (3,4]。
  • labels=None,指定返回的箱子的标签,表示是否用标记来代替返回的bins,必须与结果的箱子长度相同。
  • retbins=False,表示是否返回箱子。默认为False,False 则返回x中每个值对应的bin的列表,Ture则返回x中每个值对应的bin的列表和对应的bins。
  • precision=3,表示存储和显示箱子标签的精度,默认为3,表示返回的数据将包含三位小数。
  • include_lowest=False,表示是否包含左端点,表示第一个区间是否应该是左包含的。

1.2.1 实验任务

1.2.1.1 实验背景

可以使用cut( )函数进行等宽划分,按照相同宽度将数据分成几等份。缺点是受到异常值的影响比较大。

1.2.1.2 实验目标

掌握对数据进行等宽划分的操作。

1.2.1.3 实验数据解析

实验使用鸢尾花数据集。

1.2.2 实验思路

  • 导入实验数据集。
  • 使用cut ( )函数对数据进行等宽划分。

1.2.3 实验操作步骤

步骤 1 数据准备

import pandas as pd
from sklearn.datasets import load_iris
iris=load_iris()
X=iris.data[:,1]

步骤 2 等宽划分

#指定分段的段数为 5 
x=pd.cut(X,5)
x

输出结果如下:

[(3.44, 3.92], (2.96, 3.44], (2.96, 3.44], (2.96, 3.44], (3.44, 3.92], ..., (2.96, 3.44], (2.48, 2.96], (2.96, 3.44], (2.96, 3.44], (2.96, 3.44]]
Length: 150
Categories (5, interval[float64]): [(1.998, 2.48] < (2.48, 2.96] < (2.96, 3.44] < (3.44, 3.92] < (3.92, 4.4]]

扩展:加上retbins=True

pd.cut(X, 5, retbins = True)

则多打印一行:

array([1.9976, 2.48  , 2.96  , 3.44  , 3.92  , 4.4   ]))

上面这六个数,其实就是分隔区间的边界值。

1.2.4 结果验证

系统自动将数据划分为(1.998, 2.48]、 (2.48, 2.96] 、(2.96, 3.44] 、(3.44, 3.92] 、(3.92, 4.4]五个等宽区间,并将原本的数据集中的 数据对应的区间显 示出来。

思考:为什么精度是3位小数,但是结果有一些是3位,有一些是两位,有一些是一位?
回答:precision参数可以控制分箱边界的最大小数位数,但实际的小数位数还取决于数据的分布。比如4.400其实也就是4.4,就没必要写4.400了。

1.3 无监督连续变量的离散化 – 等频划分

把连续变量划分几等份,保证每份的数值个数相同。具体来说,假设共有M个数值,划分N份,每份包含(M/N)个数值,使用Python中pandas库的qcut() 函数,其基本格式如下:

qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')

关键参数详解:

  • x,表示进行划分的 一维数组
  • q,表示划分的组数。
  • labels=None,表示是否用标记来代替返回的bins。
  • retbins=False,表示返回值,False 代表返回x中每个值对应的bin的列表,Ture代表返回x中每个值对应的bin的列表和对应的bins。
  • precision=3,表示精度,默认为3。
  • duplicates如果bin值边缘不唯一,就提高错误值或删除非唯一性。

1.3.1 实验任务

1.3.1.1 实验背景

我们可以使用qcut( )函数进行等频划分,将数据分成几等份,每等份数据里面的个数是一样的。

1.3.1.2 实验目标

掌握使用qcut函数实现数据的等频划分。

1.3.1.3 实验数据解析

实验使用鸢尾花数据集。

1.3.2 实验思路

  • 导入实验数据集。

  • 使用qcut ( )函数对数据进行等频划分。

1.3.3 实验操作步骤

步骤 1 数据准备

iris是150*4的数据集,特取其中一个属性进行等频划分实验。

import pandas as pd
from sklearn.datasets import load_iris
iris=load_iris()
X=iris.data[:,1]

步骤 2 等频划分

#指定分段的段数为 5 
x=pd.qcut(X,5)
x

输出结果如下:

[(3.4, 4.4], (2.7, 3.0], (3.1, 3.4], (3.0, 3.1], (3.4, 4.4], ..., (2.7, 3.0], (1.999, 2.7], (2.7, 3.0], (3.1, 3.4], (2.7, 3.0]]
Length: 150
Categories (5, interval[float64]): [(1.999, 2.7] < (2.7, 3.0] < (3.0, 3.1] < (3.1, 3.4] < (3.4, 4.4]]

1.3.4 结果验证

系统自动将数据划分为(1.999, 2.7] 、(2.7, 3.0] 、(3.0, 3.1] 、(3.1, 3.4] 、(3.4, 4.4]五个等频区间。

补充一(precision参数的说明):
例如,如果我们有一个数据范围从0.123456到1.123456,我们想要将其划分为两个箱子,那么:
如果我们设置precision=2,那么我们得到的箱子边界将是(0.12, 0.62]和(0.62, 1.12]。
如果我们设置precision=3,那么我们得到的箱子边界将是(0.123, 0.623]和(0.623, 1.123]。
因此,precision参数影响了分箱标签的精度,这可能会影响我们对数据的理解和解释。但是,它并不会改变实际的分箱过程,也就是说,数据仍然会被均匀地分配到每个箱子中。

补充二(什么是等距分箱?什么是等频分箱):

  • 等距分箱:是最为常用的分箱方法之一,从最小值到最大值之间,均分为N等份,如果A,B为最小最大值,则每个区间的长度为W=(B−A)/N,则区间边界值为A+W,A+2W,….A+(N−1)W。这里只考虑边界,每个等份里面的实例数量可能不等。

  • 等频分箱:区间的边界值要经过选择,使得每个区间包含大致相等的实例数量。比如说 N=10,每个区间应该包含大约10%的实例。

这两种分箱方法都是无监督的分箱方法,只根据变量值的分布来划分区间,不需要有目标变量(标签)。

1.4 有监督连续变量的离散化 – 基于卡方检验的方法

该方法是一种自底向上的方法,运用卡方检验的策略,自底向上合并数值进行有监督离散化,核心操作是Merge。将数据集里的数值当做单独区间,递归找出可合并的最佳临近区间。判断可合并区间用到卡方统计量来检测两个区间的相关性,对符合所设定阀值的区间进行合并。常用的方法有ChiMerge、Chi2、Chi-Square Measure,下面对Chi2方法详细说明。

基于卡方检验的数值特征离散化的实现使用Python中scipy.stats统计函数库中的chi2 ( ) 函数,其基本使用格式如下:

chi2(X, y)

关键参数详解:

  • X,样本数据。
  • y,目标数据。

1.4.1 实验任务

1.4.1.1 实验背景

我们可以使用chi2 ( )函数进行卡方检验,这是一种基础的常用假设检验方法。

1.4.1.2 实验目标

掌握使用chi2 ( )函数实现数据集的卡方分箱操作。

1.4.1.3 实验数据解析

实验使用鸢尾花数据集。

1.4.2 实验思路

  • 导入实验数据集。
  • 使用chi2 ( )函数对数据进行基于卡方检验的有监督连续变量的离散化。

1.4.3 实验操作步骤

步骤 1 导入数据集

import pandas as pd
from sklearn.datasets import load_iris
iris=load_iris()# 对数据集做基于卡方检验的有监督连续变量的离散化。
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
# 选择 K 个最好的特征,返回选择特征后的数据
SelectKBest(chi2, k=2).fit_transform(iris.data, iris.target)

输出的部分结果如下:

# 输出结果
array([[1.4, 0.2],[1.4, 0.2],[1.3, 0.2],[1.5, 0.2],[1.4, 0.2],[1.7, 0.4],

1.4.4 结果验证

由上述实验结果可知,原先没有规律的数据经过卡方检验操作后,对每个样本进行了有监督连续变量的离散化,从 Iris 数据集中选择的两个最佳特征是 “花瓣长度 (cm)” 和 “花瓣宽度 (cm)”。这两个特征被认为与目标变量具有较高的相关性,因此被选择作为特征子集。提示,虽然特征选择可能是数据预处理的一部分,但它着重于选择最重要的特征,而不是对数据进行转换或清洗。因此,在上述例子中,我们可以将其归类为特征选择相关的知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Open5GSUeRANSim2:对安装在同一个VM上的OPEN5GS和UERANSIM进行配置和抓取wireshark报文

参考链接&#xff1a; Configuring SCTP & NGAP with UERANSIM and Open5GS on a Single VM for the Open5GS & UERANSIM Series https://www.youtube.com/watch?vINgEX5L5fkE&listPLZqpS76PykwIoqMdUt6noAor7eJw83bbp&index5 Configuring RRC with UERANSI…

泛微e-cology XmlRpcServlet文件读取漏洞复现

漏洞介绍 泛微新一代移动办公平台e-cology不仅组织提供了一体化的协同工作平台,将组织事务逐渐实现全程电子化,改变传统纸质文件、实体签章的方式。泛微OA E-Cology 平台XmRpcServlet接口处存在任意文件读取漏洞&#xff0c;攻击者可通过该漏洞读取系统重要文件 (如数据库配置…

fastadmin表格右侧操作栏增加审核成功和审核失败按钮,点击提交ajax到后端

fastadmin表格右侧操作栏增加审核成功和审核失败按钮,点击提交ajax到后端 效果如下 js {field: operate, title: __(Operate), table: table, events

Linux c++开发-11-Socket TCP编程简单案例

服务端&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <netinet/in.h> #include <sys/types.h>#include <errno.h>int main(void) {//1.socketint server_sock socket(A…

传统行业与人工智能融合:材料、化学、物理、生物的发展与未来展望

导言 传统行业如材料科学、化学、物理、生物学一直是科学领域的重要支柱。随着人工智能的快速发展&#xff0c;这些领域也在不断融合创新。本文将深入研究这些领域与人工智能的发展过程、遇到的问题及解决过程、未来的可用范围&#xff0c;以及在各国的应用和未来的研究趋势。 …

【uniapp】uniapp中本地存储sqlite数据库保姆级使用教程(附完整代码和注释)

数据库请求接口封装 uniapp中提供了plus.sqlite接口&#xff0c;在这里我们对常用的数据库请求操作进行了二次封装 这里的dbName、dbPath、recordsTable 可以根据你的需求自己命名 module.exports {/** * type {String} 数据库名称*/dbName: salary,/*** 数据库地址* type {…

【【迭代七次的CORDIC算法-Verilog实现】】

迭代七次的CORDIC算法-Verilog实现求解正弦余弦函数 COEDIC.v module CORDIC #(parameter DATA_WIDTH 4d8 , // we set data widthparameter PIPELINE 4d8)(input clk ,input …

深入理解 Nginx 工作原理:Master-Worker 架构与性能优化

目录 前言1 Nginx 的 Master-Worker 架构2 Worker 进程的工作原理3 Master-Worker 架构的优势3.1 热部署的便利性3.2 进程间独立性3.3 系统稳定性和容错性提升3.4 系统风险降低 4 Worker 数量的设置5 Worker 连接数&#xff08;worker_connections&#xff09;结语 前言 Nginx…

nodejs微信小程序+python+PHP购物商城网站-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Ubuntu 常用命令之 tar 命令用法介绍

tar 命令在 Ubuntu 系统中是用来打包和解包文件的工具。tar 命令可以将多个文件或目录打包成一个 tar 文件&#xff0c;也可以将 tar 文件解包成原来的文件或目录。 tar 命令的常用参数如下 c&#xff1a;创建一个新的 tar 文件。x&#xff1a;从 tar 文件中提取文件。v&…

198|鸭的喜剧,也是蝌蚪的悲剧

​ 第一次读鲁迅的《鸭的喜剧》&#xff0c;平平淡淡的文字&#xff0c;没有一丝辛辣&#xff0c;讲了一个给小朋友的故事。如果不知道&#xff0c;都不会觉得这是鲁迅的作品。 故事很简单&#xff1a;友人先是买了蝌蚪&#xff0c;想等蝌蚪长大听蛙鸣&#xff1b;后来买了四只…

机器学习之逻辑回归,一文掌握逻辑回归算法知识文集

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

H5聊天系统聊天网站源码 群聊源码 无限建群创群

H5聊天系统聊天网站源码 群聊源码 无限建群创群 1.支持自助建群 管理群 修改群资料 2.支持自动登录 登陆成功可自助修改资料 3.后台可查看群组聊天消息记录 4.支持表情 动态表情 图片发布 5.支持消息语音提醒 测试环境&#xff1a;NginxMySQL5.6PHP5.6 1.将压缩包解压到…

VueCron使用方法

1&#xff09;什么是vueCron Vue Cron 是基于 Vue.js 的定时任务管理组件&#xff0c;它提供了一种简单易用的方式来设定和管理定时任务。Vue Cron 提供了一个类似于 Linux crontab 的界面&#xff0c;用户可以通过它来创建、编辑和删除定时任务。 2&#xff09;安装依赖及应…

数据安全扫描仪荣膺网络安全优秀创新成果大赛优胜奖 - 凸显多重优势

近日&#xff0c;由中国网络安全产业联盟&#xff08;CCIA&#xff09;主办、CCI数据安全工作委员会中国电子技术标准化研究院等单位承办的“2023年网络安全优秀创新成果大赛”获奖名单公布。天空卫士数据安全扫描仪&#xff08;DSS&#xff09;产品获得创新成果大赛优胜奖。 本…

Kubernetes 容器编排(6)

企业级镜像仓库Harbor 上传harbor安装包并安装 $ tar xf harbor-offline-installer-v2.5.3.tgz $ cp harbor.yml.tmpl harbor.yml $ vim harbor.yml hostname: 192.168.246.217# http related config http:# port for http, default is 80. If https enabled, this port will…

人工智能的发展之路:时间节点、问题与解决办法的全景解析

导言 人工智能的发展历程充满了里程碑式的事件&#xff0c;从早期的概念到今天的广泛应用&#xff0c;每个时间节点都伴随着独特的挑战和创新。本文将详细描述每个关键时间节点的事件&#xff0c;探讨存在的问题、解决办法&#xff0c;以及不同阶段之间的联系。 1. 195…

Selenium库编写爬虫详细案例

一、引言 Selenium作为一个强大的自动化测试工具&#xff0c;其在网络爬虫领域也展现出了许多技术优势。首先&#xff0c;Selenium可以模拟浏览器行为&#xff0c;包括点击、填写表单、下拉等操作&#xff0c;使得它能够处理一些其他爬虫工具无法应对的情况&#xff0c;比如需…

华为配置IPv4静态路由与静态BFD联动示例

组网需求 如图1所示&#xff0c;SwitchA通过SwitchB和NMS跨网段相连。在SwitchA上通过静态路由与NMS进行正常通信。在SwitchA和SwitchB之间实现毫秒级故障感知&#xff0c;提高收敛速度 配置思路 采用如下思路配置IPv4静态路由与静态BFD联动&#xff1a; 在SwitchA和SwitchB上…

基于ssm在线交友系统论文

基于VUEssm框架的在线交友系统 摘要 本文介绍了在线交友系统的开发全过程。通过分析企业对于在线交友系统的需求&#xff0c;创建了一个计算机管理在线交友系统的方案。文章介绍了在线交友系统的系统分析部分&#xff0c;包括可行性分析等&#xff0c;系统设计部分主要介绍了系…