【机器学习】经典数据集鸢尾花的分类识别

news2024/9/20 5:00:09

【机器学习】经典数据集鸢尾花的分类识别

  • 1、数据集介绍
    • 1.1 数据集详情
  • 2、实验内容
    • 2.1 准备数据集
    • 2.2 创建颜色映射对象
    • 2.3 绘制特征散点图
    • 2.4 数据的归一化
    • 2.5 数据的标准化
  • 3、实验截图
    • 提取萼片长度与萼片宽度分类
    • 提取萼片长度与花瓣长度分类
    • 提取萼片长度与花瓣宽度分类
    • 提取萼片宽度与花瓣长度分类
    • 提取萼片宽度与花瓣宽度分类
    • 提取花瓣长度与花瓣宽度分类


1、数据集介绍

       鸢尾花(Iris)是单子叶百合目花卉,是一种比较常见的花,而且鸢尾花的品种较多。鸢尾花数据集(Iris dataset)是非常著名的机器学习数据集之一,常被用来进行分类和模式识别任务的训练和评估。
       鸢尾花数据集最初由Edgar Anderson 测量得到,而后在著名的统计学家和生物学家R.A Fisher于1936年发表的文章中被使用,用其作为线性判别分析(Linear Discriminant Analysis)的一个例子,证明分类的统计方法,从此而被众人所知,尤其是在机器学习这个领域。


1.1 数据集详情

       该数据集包含了三个品种的鸢尾花(Setosa、Versicolor、Virginica)每个品种各有50个样本,共计150个样本。对于每个样本,测量了4个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度),以及其所属的品种标签。
       数据集包括4个属性,分别为花萼的长、花萼的宽、花瓣的长和花瓣的宽。对花瓣我们可能比较熟悉,花萼是什么呢?花萼是花冠外面的绿色被叶,在花尚未开放时,保护着花蕾。四个属性的单位都是cm,属于数值变量,四个属性均不存在缺失值的情况,字段如下表所示:

字段名称含义
sepal length萼片长度
sepal width萼片宽度
petal length花瓣长度
petal width花瓣宽度
Species品种类别:分别是:Setosa、Versicolour、Virginica

2、实验内容

       目标要求:通过选取鸢尾花的四种特征中的任意两种特征,对鸢尾花数据集进行种类的分类识别,并对识别后的结果进行统一化与标准化。

2.1 准备数据集

       注:在实验前需要注意可视化的中文以及负号显示,使用以下代码:

plt.rcParams['font.sans-serif'] = ['SimHei']    # 显示中文  
plt.rcParams['axes.unicode_minus'] = False      # 显示负号  

       首先使用 load_iris() 函数加载鸢尾花数据集,并将特征矩阵存储在 X 中,分类值存储在 y 中。
       数据集里面的特征依次为花萼长、宽和花瓣长、宽; 而类别标签为0,1,2分别表示山鸢尾(setosa),变色鸢尾(versicolor)和维吉尼亚鸢尾(virginica)
       然后,通过索引操作从 X 中提取了前5条数据,即 X[0:5],以及第二个品种对应的前5条数据: X[50:55]。使用 np.concatenate 函数将这两组数据合并为一个新的特征矩阵 X1。接下来,同样的操作也应用于目标值 y,提取了相应的标签并存储在 y1 中。


2.2 创建颜色映射对象

       使用了 matplotlib.colors.ListedColormap 函数创建了一个颜色映射对象 cm_dark。这个函数接受一个包含颜色名称或颜色代码的列表作为参数。在这里,我传入了一个包含红色、绿色和蓝色的列表 [‘r’, ‘g’, ‘b’]。
       可以将 cm_dark 应用于绘图中的相关元素,以改变它们的颜色显示效果。例如,可以在绘制散点图时使用 cmap=cm_dark 参数将数据点的颜色设置为红、绿、蓝三种颜色之一。


2.3 绘制特征散点图

       使用 plt.scatter 函数绘制了两个特征(萼片长度和萼片宽度)的散点图,并根据目标值 y1 的类别将数据点着色。
       plt.scatter 函数的第一个参数是要绘制的数据点的 x 坐标,即萼片长度(X1[:, 0]);第二个参数是 y 坐标,即萼片宽度(X1[:, 1])。
       通过设置 c=np.squeeze(y1),您将目标值 y1 的类别用作颜色映射的输入。它会根据类别的不同,将数据点着上不同的颜色。edgecolor=‘k’ 设置边缘颜色为黑色。s=50 设置散点的大小为 50。最后,使用 plt.show() 显示绘制的散点图。
在绘制散点图中使用:

plt.grid(color='black', linestyle='--')//添加网格线,颜色为黑色,线型为虚线。
plt.xlabel('sepal length(萼片长度)')  
plt.ylabel('sepal width(萼片宽度)')//分别设置 x 轴和 y 轴的标签。
plt.title("通过提取萼片长度与宽度的分类")//设置图表的标题。
handles, labels = scatter.legend_elements()//获取散点图中的每个类别对应的标记和标签
//定义图例中的标签内容
legend_labels = ['山鸢尾花(Iris-setosa)','变色鸢尾花(Iris-versicolor)']
//创建图例,并将标记和标签添加进去。
plt.legend(handles, legend_labels, loc='best')

下图为一个可视化的示例:

import numpy as np
from matplotlib import pyplot as plt
import matplotlib as mpl
from sklearn.svm import SVC

from sklearn.datasets import load_iris

plt.rcParams['font.sans-serif'] = ['SimHei']	# 显示中文
plt.rcParams['axes.unicode_minus'] = False		# 显示负号

data = load_iris()
X = data['data']
y = data['target']

# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
print(X1)

y1 = np.concatenate([y[0:5], y[50:55]])
print(y1)

cm_dark = mpl.colors.ListedColormap(['r', 'g', 'b'])

#通过提取列表的第一个特征与第二个特征,即萼片长度与萼片宽度
scatter=plt.scatter(X1[:,0],X1[:,1], c=np.squeeze(y1), edgecolor='k', s=50)


plt.grid(color='black', linestyle='--')
plt.xlabel('sepal length(萼片长度)')
plt.ylabel('sepal width(萼片宽度)')
plt.title("通过提取萼片长度与宽度的分类")
# 创建图例
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
plt.legend(handles, legend_labels, loc='best')
plt.show()

在这里插入图片描述


2.4 数据的归一化

       归一化(Normalization) 是将数值型数据缩放到一个固定的范围,通常是[0, 1]。归一化可以通过以下公式实现:
                                                                X_norm = (X - X_min) / (X_max - X_min)
       其中,X表示原始数据,X_norm表示归一化后的数据,X_min和X_max分别表示原始数据的最小值和最大值。
       归一化使得不同特征的数据具有相同的尺度范围,避免了某些特征对模型训练产生过大的影响。常见的归一化方法有最大最小值归一化和Z-score归一化。


2.5 数据的标准化

       标准化(Standardization) 是将数值型数据转换为均值为0、标准差为1的分布。标准化可以通过以下公式实现:
                                                                X_std = (X - X_mean) / X_stddev
       其中,X表示原始数据,X_std表示标准化后的数据,X_mean和X_stddev分别表示原始数据的均值和标准差。
       标准化使得数据分布更符合标准正态分布,对异常值和离群点的影响较小。通常情况下,标准化是数据预处理的常用选择。


3、实验截图

       本节放置实验截图,共六张,为四种特征任选两种特征进行数据的可视化以及统一和标准化。

提取萼片长度与萼片宽度分类

import numpy as np
from matplotlib import pyplot as plt
import matplotlib.gridspec as gridspec
import matplotlib as mpl
from sklearn.datasets import load_iris

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

data = load_iris()
X = data['data']
y = data['target']

# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 = (X1-np.min(X1))/(np.max(X1)-np.min(X1))

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

fig = plt.figure(figsize=(10, 4))
gs = gridspec.GridSpec(1, 2, width_ratios=[1, 1])

# 第一个子图
ax1 = plt.subplot(gs[0])
scatter = ax1.scatter(X1[:,0], X1[:,1], c=np.squeeze(y1), edgecolor='k', s=50)
ax1.grid(color='black', linestyle='--')
ax1.set_xlabel('sepal length(萼片长度)')
ax1.set_ylabel('sepal width(萼片宽度)')
ax1.set_title("通过提取萼片长度与宽度的分类【归一化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax1.legend(handles, legend_labels, loc='best')

X = data['data']
y = data['target']

# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 -= np.mean(X1, axis=0)
X1 /= np.std(X1, axis=0, ddof=1)

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

# 第二个子图
ax2 = plt.subplot(gs[1])
scatter = ax2.scatter(X1[:,0],X1[:,1], c=np.squeeze(y1), edgecolor='k', s=50)
ax2.grid(color='black', linestyle='--')
ax2.set_xlabel('sepal length(萼片长度)')
ax2.set_ylabel('sepal width(萼片宽度)')
ax2.set_title("通过提取萼片长度与宽度的分类【标准化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax2.legend(handles, legend_labels, loc='best')

plt.tight_layout()
plt.show()

提取萼片长度与萼片宽度分类


提取萼片长度与花瓣长度分类

import numpy as np
from matplotlib import pyplot as plt
import matplotlib.gridspec as gridspec
import matplotlib as mpl
from sklearn.datasets import load_iris

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

data = load_iris()
X = data['data']
y = data['target']


# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 = (X1-np.min(X1))/(np.max(X1)-np.min(X1))

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

fig = plt.figure(figsize=(10, 4))
gs = gridspec.GridSpec(1, 2, width_ratios=[1, 1])
#sepal length(萼片长度)
#sepal width(萼片宽度)
#petal length(花瓣长度)
#petal width (花瓣宽度)
# 第一个子图
ax1 = plt.subplot(gs[0])
scatter = ax1.scatter(X1[:,0], X1[:,2], c=np.squeeze(y1), edgecolor='k', s=50)
ax1.grid(color='black', linestyle='--')
ax1.set_xlabel('sepal length(萼片长度)')
ax1.set_ylabel('petal length(花瓣长度)')
ax1.set_title("通过提取萼片长度与花瓣长度的分类【归一化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax1.legend(handles, legend_labels, loc='best')

X = data['data']
y = data['target']

# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 -= np.mean(X1, axis=0)
X1 /= np.std(X1, axis=0, ddof=1)

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

# 第二个子图
ax2 = plt.subplot(gs[1])
scatter = ax2.scatter(X1[:,0],X1[:,2], c=np.squeeze(y1), edgecolor='k', s=50)
ax2.grid(color='black', linestyle='--')
ax2.set_xlabel('sepal length(萼片长度)')
ax2.set_ylabel('petal length(花瓣长度)')
ax2.set_title("通过提取萼片长度与花瓣长度的分类【标准化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax2.legend(handles, legend_labels, loc='best')

plt.tight_layout()
plt.show()

在这里插入图片描述


提取萼片长度与花瓣宽度分类

import numpy as np
from matplotlib import pyplot as plt
import matplotlib.gridspec as gridspec
import matplotlib as mpl
from sklearn.datasets import load_iris

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

data = load_iris()
X = data['data']
y = data['target']


# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 = (X1-np.min(X1))/(np.max(X1)-np.min(X1))

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

fig = plt.figure(figsize=(10, 4))
gs = gridspec.GridSpec(1, 2, width_ratios=[1, 1])
#sepal length(萼片长度)
#sepal width(萼片宽度)
#petal length(花瓣长度)
#petal width (花瓣宽度)
# 第一个子图
ax1 = plt.subplot(gs[0])
scatter = ax1.scatter(X1[:,0], X1[:,3], c=np.squeeze(y1), edgecolor='k', s=50)
ax1.grid(color='black', linestyle='--')
ax1.set_xlabel('sepal length(萼片长度)')
ax1.set_ylabel('petal width (花瓣宽度)')
ax1.set_title("通过提取萼片长度与花瓣宽度的分类【归一化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax1.legend(handles, legend_labels, loc='best')

X = data['data']
y = data['target']

# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 -= np.mean(X1, axis=0)
X1 /= np.std(X1, axis=0, ddof=1)

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

# 第二个子图
ax2 = plt.subplot(gs[1])
scatter = ax2.scatter(X1[:,0],X1[:,3], c=np.squeeze(y1), edgecolor='k', s=50)
ax2.grid(color='black', linestyle='--')
ax2.set_xlabel('sepal length(萼片长度)')
ax2.set_ylabel('petal width (花瓣宽度)')
ax2.set_title("通过提取萼片长度与花瓣宽度的分类【标准化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax2.legend(handles, legend_labels, loc='best')

plt.tight_layout()
plt.show()

在这里插入图片描述


提取萼片宽度与花瓣长度分类

import numpy as np
from matplotlib import pyplot as plt
import matplotlib.gridspec as gridspec
import matplotlib as mpl
from sklearn.datasets import load_iris

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

data = load_iris()
X = data['data']
y = data['target']


# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 = (X1-np.min(X1))/(np.max(X1)-np.min(X1))

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

fig = plt.figure(figsize=(10, 4))
gs = gridspec.GridSpec(1, 2, width_ratios=[1, 1])
#sepal length(萼片长度)
#sepal width(萼片宽度)
#petal length(花瓣长度)
#petal width (花瓣宽度)
# 第一个子图
ax1 = plt.subplot(gs[0])
scatter = ax1.scatter(X1[:,1], X1[:,2], c=np.squeeze(y1), edgecolor='k', s=50)
ax1.grid(color='black', linestyle='--')
ax1.set_xlabel('sepal width(萼片宽度)')
ax1.set_ylabel('petal length(花瓣长度)')
ax1.set_title("通过提取萼片宽度与花瓣长度的分类【归一化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax1.legend(handles, legend_labels, loc='best')

X = data['data']
y = data['target']

# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 -= np.mean(X1, axis=0)
X1 /= np.std(X1, axis=0, ddof=1)

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

# 第二个子图
ax2 = plt.subplot(gs[1])
scatter = ax2.scatter(X1[:,1],X1[:,2], c=np.squeeze(y1), edgecolor='k', s=50)
ax2.grid(color='black', linestyle='--')
ax2.set_xlabel('sepal width(萼片宽度)')
ax2.set_ylabel('petal length(花瓣长度)')
ax2.set_title("通过提取萼片宽度与花瓣长度的分类【标准化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax2.legend(handles, legend_labels, loc='best')

plt.tight_layout()
plt.show()

在这里插入图片描述


提取萼片宽度与花瓣宽度分类

import numpy as np
from matplotlib import pyplot as plt
import matplotlib.gridspec as gridspec
import matplotlib as mpl
from sklearn.datasets import load_iris

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

data = load_iris()
X = data['data']
y = data['target']


# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 = (X1-np.min(X1))/(np.max(X1)-np.min(X1))

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

fig = plt.figure(figsize=(10, 4))
gs = gridspec.GridSpec(1, 2, width_ratios=[1, 1])
#sepal length(萼片长度)
#sepal width(萼片宽度)
#petal length(花瓣长度)
#petal width (花瓣宽度)
# 第一个子图
ax1 = plt.subplot(gs[0])
scatter = ax1.scatter(X1[:,1], X1[:,3], c=np.squeeze(y1), edgecolor='k', s=50)
ax1.grid(color='black', linestyle='--')
ax1.set_xlabel('sepal width(萼片宽度)')
ax1.set_ylabel('petal width(花瓣宽度)')
ax1.set_title("通过提取萼片宽度与花瓣宽度的分类【归一化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax1.legend(handles, legend_labels, loc='best')

X = data['data']
y = data['target']

# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 -= np.mean(X1, axis=0)
X1 /= np.std(X1, axis=0, ddof=1)

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

# 第二个子图
ax2 = plt.subplot(gs[1])
scatter = ax2.scatter(X1[:,1],X1[:,3], c=np.squeeze(y1), edgecolor='k', s=50)
ax2.grid(color='black', linestyle='--')
ax2.set_xlabel('sepal width(萼片宽度)')
ax2.set_ylabel('petal width(花瓣宽度)')
ax2.set_title("通过提取萼片宽度与花瓣宽度的分类【标准化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax2.legend(handles, legend_labels, loc='best')

plt.tight_layout()
plt.show()

在这里插入图片描述


提取花瓣长度与花瓣宽度分类

import numpy as np
from matplotlib import pyplot as plt
import matplotlib.gridspec as gridspec
import matplotlib as mpl
from sklearn.datasets import load_iris

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

data = load_iris()
X = data['data']
y = data['target']


# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 = (X1-np.min(X1))/(np.max(X1)-np.min(X1))

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

fig = plt.figure(figsize=(10, 4))
gs = gridspec.GridSpec(1, 2, width_ratios=[1, 1])
#sepal length(萼片长度)
#sepal width(萼片宽度)
#petal length(花瓣长度)
#petal width (花瓣宽度)
# 第一个子图
ax1 = plt.subplot(gs[0])
scatter = ax1.scatter(X1[:,2], X1[:,3], c=np.squeeze(y1), edgecolor='k', s=50)
ax1.grid(color='black', linestyle='--')
ax1.set_xlabel('petal length(花瓣长度)')
ax1.set_ylabel('petal width (花瓣宽度)')
ax1.set_title("通过提取花瓣长度与花瓣宽度的分类【归一化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax1.legend(handles, legend_labels, loc='best')

X = data['data']
y = data['target']

# 按照要求提取每50条数据的前5条
X1 = np.concatenate([X[0:5], X[50:55]])
y1 = np.concatenate([y[0:5], y[50:55]])
X1 -= np.mean(X1, axis=0)
X1 /= np.std(X1, axis=0, ddof=1)

cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])

# 第二个子图
ax2 = plt.subplot(gs[1])
scatter = ax2.scatter(X1[:,2],X1[:,3], c=np.squeeze(y1), edgecolor='k', s=50)
ax2.grid(color='black', linestyle='--')
ax2.set_xlabel('petal length(花瓣长度)')
ax2.set_ylabel('petal width (花瓣宽度)')
ax2.set_title("通过提取花瓣长度与花瓣宽度的分类【标准化】")
handles, labels = scatter.legend_elements()
legend_labels = ['山鸢尾花(Iris-setosa)', '变色鸢尾花(Iris-versicolor)']
ax2.legend(handles, legend_labels, loc='best')

plt.tight_layout()
plt.show()

在这里插入图片描述


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

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

相关文章

Photoshop 2021安装教程

软件介绍 Adobe Photoshop,简称“PS”,是美国Adobe公司旗下最为出名的图像处理软件系列之一。ps 2021新增一键换天空,AI只能滤镜,新增内置的画笔工具极为丰富,成千上万的精致像素、动态和矢量画笔可以满足你的各种绘图…

谷歌深度学习研究揭示OpenAI O1模型优化策略:比规模更重要的计算效率

引言 近年来,大型语言模型(LLMs)如OpenAI的GPT-4和Google DeepMind的Palm 2已成为自然语言处理领域的佼佼者,它们通过生成类人文本、回答复杂问题、编写代码等能力,改变了许多行业的工作方式。然而,随着这…

2.4 数据库表字段约束

一、数据库三大范式 我们构造数据库的时候必须要遵守一定的原则,那这个规则就是范式关系型数据库,一共有六种范式,一般情况下只需要满足第三范式即可。 ​第一范式:原子性构造数据库必须遵循一定的规则,这种规则就是…

使用集成学习对不同的机器学习方法进行集成

数据入口:数据人才的现场调研 - Heywhale.com 本数据集中有 43 行,19 列,数据集包含如下字段: 首先读取数据: import pandas as pd# 读取Excel文件 data pd.read_excel(数据人才的现场调研.xls)可以输出每一列含有…

供方软件供应链安全保障要求及开源场景对照自评表(下)

国标《信息安全技术 软件供应链安全要求》确立了软件供应链安全目标,规定了软件供应链安全风险管理要求和供需双方的组织管理和供应活动管理安全要求。 开源软件供应链作为软件供应链的一种特殊形式,该国标亦适用于指导开源软件供应链中的供需双方开展组…

C HTML格式解析与生成之gumbo

测试 #include <fstream> #include <iostream> #include <stdlib.h> #include <string>#include "../src/gumbo.h"// 提取纯文本内容 static std::string cleantext(GumboNode* node) {if (node->type GUMBO_NODE_TEXT) {return std::st…

【TabBar嵌套Navigation案例-关于页面 Objective-C语言】

一、关于页面 1.首先,看一下我们的示例程序 点击关于以后,它实际上,跳到的也是SettingController,然后呢,传一个plist,但是,这个Controller里边,又多了一个header,所以,这个里边,我们也是用继承的方式去写,因为其他的页面没有这个header,不是所有的Setting都有he…

数据结构--结构体数组和结构体指针

1.定义结构体数组存储5个学生的信息&#xff1a;姓名&#xff0c;年龄&#xff0c;性别 定义函数实现输入&#xff0c;要求形参使用结构体指针接收 函数实现5个学生年龄排序(注意对年龄排序时&#xff0c;交换的是所有信息) 定义函数实现输出&#xff0c;要求形参使用结构体…

Innovus跑到中途想要更换library怎么办?

有的小伙伴在跑innovus时&#xff0c;可能会碰到library更新等问题。但此时&#xff0c;place已经跑完了&#xff0c;又不想重新跑&#xff0c;怎么办呢&#xff1f; 其实&#xff0c;每次保存的innovus database里面都有专门存放这些数据的文件。我们可以将其中一些setting文件…

VBA技术资料MF197:禁用复制的快捷键

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

Linux内核结构

Linux内核结构 文章目录 Linux内核结构一、Linux内核结构介绍1.1 总体结构&#xff1a;1.2 Linux内核结构框图&#xff1a; 二、图解Linux系统架构三、shell3.1 shell的含义&#xff1a;3.2 shell的作用&#xff1a;3.3 shell的类型&#xff1a;3.4 shell的使用&#xff1a;3.5…

Allow anonymous access to my Azure OpenAI chat bot

题意&#xff1a;允许匿名访问我的 Azure OpenAI 聊天机器人 问题背景&#xff1a; I have an Azure OpenAI chat bot using my own data (I configured an OpenAI resource and chose Deploy as Web App) . Members of my domain can access it by logging in. Now I want it…

2.5 数据库索引机制

我们往数据表里面保存数据记录越来越多&#xff0c;一旦达到上千万条&#xff0c;那怎么提高检索速度就需要认真考虑了。我们打开手机上的APP都希望能快些加载出内容&#xff0c;这里的因素有很多&#xff0c;但是如何减少数据查找的时间是其中的重要一环。索引机制就是提升数据…

【内网渗透】最保姆级的春秋云镜Privilege打靶笔记

目录 flag1 flag2 flag3 flag4 flag1 fscan扫外网 访问./www.zip拿到源码 tools/content-log.php存在任意文件读取 根据提示读到Jenkins初始管理员密码 ./tools/content-log.php?logfile../../../../../../../../../ProgramData/Jenkins/.jenkins/secrets/initialAdminP…

第十一章 【后端】商品分类管理微服务(11.5)——增强响应

11.5 增强响应 在前后端分离的开发模式下,我们一般会统一后端的响应格式,比如自定义 Response 结构,但每个开发者可能会封装各自的 Response 结构,造成不一致,因此我们需要将响应格式统一起来,定义一个统一的标准响应格式。 11.5.1 创建响应模块 新建 yumi-etms-respon…

AJAX Jquery $.get $.post $.getJSON

AJAX AJAX Asynchronous JavaScript and XML (异步的J avascript和XML)。 Ajax $.ajax <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, in…

【Linux进程控制】进程程序替换

目录 进程程序替换 替换函数 看现象 替换原理 多进程替换 exec*函数使用&#xff08;部分&#xff09;&#xff0c;并且认识函数参数的含义 1.execl 2.execv 3.execvp 4.execvpe execlp 和execlpe 替换函数总结 进程程序替换 替换函数 有六种以exec开头的函数&am…

AI大语言模型的全面解读

大语言模型&#xff08;Large Language Models, LLMs&#xff09;无疑是近年来最耀眼的星辰之一。他们以惊人的语言生成能力、上下文理解能力以及对复杂任务的泛化能力&#xff0c;正在深刻改变着自然语言处理&#xff08;NLP&#xff09;乃至整个AI领域的格局。 本文将从专业角…

螺栓与散装物体检测系统源码分享

螺栓与散装物体检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

代理模式-动态代理

一、代理模式 代理模式:给某一个对象提供一个代理&#xff0c;并由代理对象来控制对真实对象的访问。代理模式是一种结构型设计模式。 代理模式角色分为 3种: Subject(抽象主题角色):定义代理类和真实主题的公共对外方法&#xff0c;通常被设计成接口; RealSubject(真实主题角色…