Python 机器学习 基础 之 构建第一个机器学习应用

Python 机器学习 基础 之  构建第一个机器学习应用

目录

Python 机器学习 基础 之  构建第一个机器学习应用

一、简单介绍

二、第一个机器学习测试应用介绍:鸢尾花分类

三、第一个机器学习测试应用 :前置环境,知识点介绍

jupyter notebook 进行开发

知识点介绍

四、第一个机器学习测试应用 :打乱数据,构建训练数据与测试数据

五、第一个机器学习测试应用 :绘制示意图,观察数据

六、第一个机器学习测试应用:构建第一个模型 - k近邻算法,进行预测和评估

1、引入 k 邻近算法,进行数据训练

2、进行预测

3、评估

七、第一个机器学习测试应用:小结

附录


一、简单介绍

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python是一种解释型脚本语言,可以应用于以下领域: Web 和 Internet开发、科学计算和统计、人工智能、教育、桌面界面开发、软件开发、后端开发、网络爬虫。

Python 机器学习是利用 Python 编程语言中的各种工具和库来实现机器学习算法和技术的过程。Python 是一种功能强大且易于学习和使用的编程语言,因此成为了机器学习领域的首选语言之一。Python 提供了丰富的机器学习库,如Scikit-learn、TensorFlow、Keras、PyTorch等,这些库包含了许多常用的机器学习算法和深度学习框架,使得开发者能够快速实现、测试和部署各种机器学习模型。

Python 机器学习涵盖了许多任务和技术,包括但不限于:

  1. 监督学习:包括分类、回归等任务。
  2. 无监督学习:如聚类、降维等。
  3. 半监督学习:结合了有监督和无监督学习的技术。
  4. 强化学习:通过与环境的交互学习来优化决策策略。
  5. 深度学习:利用深度神经网络进行学习和预测。

通过 Python 进行机器学习,开发者可以利用其丰富的工具和库来处理数据、构建模型、评估模型性能,并将模型部署到实际应用中。Python 的易用性和庞大的社区支持使得机器学习在各个领域都得到了广泛的应用和发展。

二、第一个机器学习测试应用介绍:鸢尾花分类

鸢尾花分类(Iris Classification)是机器学习领域中一个经典的示例,通常用于介绍和学习机器学习算法的基本原理和实践方法。这个问题的目标是根据鸢尾花的花萼长度、花萼宽度、花瓣长度和花瓣宽度等特征,来预测鸢尾花的品种。鸢尾花数据集是由统计学家 Ronald Fisher 在 1936 年收集整理的,其中包含了三种不同品种的鸢尾花(山鸢尾、变色鸢尾和维吉尼亚鸢尾),每种鸢尾花样本采集了四个特征。

鸢尾花(Iris)是一种常见的花卉植物,属于百合科鸢尾属(Iris)植物,是世界上最古老的观赏植物之一。鸢尾花通常生长在温带和亚热带地区,有许多不同的品种和变种。它们以花朵美丽、多样的颜色和形状而闻名,是园艺爱好者和花卉收藏家喜爱的对象之一。

鸢尾花的特征包括:

  1. 花朵形状多样:鸢尾花的花朵形状多样,有些品种的花朵呈扇形、有些呈圆形,还有些呈喇叭形。

  2. 花色丰富:鸢尾花的花色非常丰富,包括紫色、白色、黄色、粉色等各种颜色,有些品种还有斑纹或条纹。

  3. 叶片长而细:鸢尾花的叶片通常比较长而细,呈剑形或线状,叶片的颜色也有所不同,有些品种呈深绿色,有些呈浅绿色。

鸢尾花在园艺上被广泛种植,并且常常作为花园和景观中的装饰植物。由于其美丽的花朵和多样的品种,鸢尾花也经常被用于花束、插花和花艺设计中。此外,鸢尾花在文学、艺术和文化中也有着特殊的象征意义,被赋予了各种寓意和象征。

下面是实现鸢尾花分类的一般步骤:

  1. 数据准备和加载:首先,需要准备鸢尾花数据集,并加载到程序中。可以使用 Python 中的 Pandas 库或者直接使用 Scikit-learn 提供的鸢尾花数据集。

  2. 数据预处理:对数据进行预处理,包括数据清洗、缺失值处理、特征选择、特征缩放等。通常情况下,鸢尾花数据集是比较干净的,不需要进行太多的预处理。

  3. 数据分割:将数据集划分为训练集和测试集,通常使用交叉验证的方法来进行划分,保证训练集和测试集中的样本分布均匀。

  4. 选择模型:选择适合解决鸢尾花分类问题的机器学习模型,常用的包括 K 近邻算法、支持向量机(SVM)、决策树、随机森林等。

  5. 模型训练:使用训练集对选定的模型进行训练,学习模型的参数和特征权重。

  6. 模型评估:使用测试集对训练好的模型进行评估,通常使用准确率、精确率、召回率、F1 分数等指标来评估模型的性能。

  7. 模型调优:根据评估结果对模型进行调优,包括调整超参数、特征选择、模型融合等。

  8. 模型应用:使用训练好的模型对新的未知样本进行预测和分类。

一个简单的鸢尾花分类的实现步骤,具体的实现代码可以使用 Python 中的 Scikit-learn 库来完成。Scikit-learn 提供了丰富的机器学习算法和工具,能够方便地进行模型训练、评估和预测。

三、第一个机器学习测试应用 :前置环境,知识点介绍

jupyter notebook 进行开发

1、机器学习的虚拟环境,输入命名打开 jupyter notebook

如果没有安装如下图

这时候,输入 pip install jupyter 安装即可

此时,安装成功后,再次输入 jupyter notebook

2、打开 jupyter notebook

知识点介绍

假设有一名植物学爱好者对她发现的鸢尾花的品种很感兴趣。她收集了每朵鸢尾花的一些测量数据:花瓣的长度和宽度以及花萼的长度和宽度,所有测量结果的单位都是厘米。

scikit-learn 还有一些鸢尾花的测量数据,这些花之前已经被植物学专家鉴定为属于 setosa、versicolor 或 virginica 三个品种之一。对于这些测量数据,她可以确定每朵鸢尾花所属的品种。我们假设这位植物学爱好者在野外只会遇到这三种鸢尾花。

我们的目标是构建一个机器学习模型,可以从这些已知品种的鸢尾花测量数据中进行学习,从而能够预测新鸢尾花的品种。

因为我们有已知品种的鸢尾花的测量数据,所以这是一个监督学习问题。在这个问题中,我们要在多个选项中预测其中一个(鸢尾花的品种)。这是一个分类 (classification)问题的示例。可能的输出(鸢尾花的不同品种)叫作类别 (class)。数据集中的每朵鸢尾花都属于三个类别之一,所以这是一个三分类问题。

本例中我们用到了鸢尾花(Iris)数据集,这是机器学习和统计学中一个经典的数据集。它包含在 scikit-learn 的 datasets 模块中。

1、调用 load_iris 函数来加载数据:

from sklearn.datasets import load_iris
iris_dataset = load_iris()

2、load_iris 返回的 iris 对象是一个 Bunch 对象与字典非常相似,里面包含键和值:

print("Keys of iris_dataset: \n{}".format(iris_dataset.keys()))

上面的一些键进行简单说明

1)、DESCR 键对应的值是数据集的简要说明。我们这里给出说明的开头部分(你可以自己查看其余的内容):

2)target_names 键对应的值是一个字符串数组,里面包含我们要预测的花的品种:

3)feature_names 键对应的值是一个字符串列表,对每一个特征进行了说明:

4)数据包含在 target 和 data 字段中。data 里面是花萼长度、花萼宽度、花瓣长度、花瓣宽度的测量数据,格式为 NumPy 数组:

data :机器学习中的个体叫作样本 (sample),其属性叫作特征 (feature)。data 数组的形状 (shape)是样本数乘以特征数。这是 scikit-learn 中的约定,你的数据形状应始终遵循这个约定。

5)data 数组的每一行对应一朵花,列代表每朵花的四个测量数据:

6)data 数组打印前 5 个样本的特征数值:

data 里面是花萼长度、花萼宽度、花瓣长度、花瓣宽度的测量数据

从数据中可以看出,前 5 朵花的花瓣宽度都是 0.2cm,第一朵花的花萼最长,是 5.1cm。

7)target 数组包含的是测量过的每朵花的品种,也是一个 NumPy 数组:

8)target 是一维数组,每朵花对应其中一个数据:

9)target 品种被转换成从 0 到 2 的整数:

对应属于 setosa、versicolor 或 virginica 三个品种

上述数字的代表含义由 iris['target_names'] 数组给出:0 代表 setosa,1 代表 versicolor,2 代表 virginica。

四、第一个机器学习测试应用 :打乱数据,构建训练数据与测试数据

利用 scikit-learn 这些数据构建一个机器学习模型,用于预测新测量的鸢尾花的品种。但在将模型应用于新的测量数据之前,需要知道模型是否有效,也就是说,是否应该相信它的预测结果。

不幸的是,不能将用于构建模型的数据用于评估模型。因为模型会一直记住整个训练集,所以对于训练集中的任何数据点总会预测正确的标签。这种“记忆”无法告诉模型的泛化能力如何(换句话说,在新数据上能否正确预测)。

要用新数据来评估模型的性能。新数据是指模型之前没有见过的数据,而有这些新数据的标签。通常的做法是将收集好的带标签数据(此例中是 150 朵花的测量数据)分成两部分。一部分数据用于构建机器学习模型,叫作训练数据(training data)或训练集(training set)。其余的数据用来评估模型性能,叫作测试数据(test data)、测试集(test set)或留出集(hold-out set)。

scikit-learn 中的 train_test_split 函数可以打乱数据集并进行拆分。这个函数将 75% 的行数据及对应标签作为训练集,剩下 25% 的数据及其标签作为测试集。训练集与测试集的分配比例可以是随意的,但使用 25% 的数据作为测试集是很好的经验法则。

scikit-learn 中的数据通常用大写的 X 表示,而标签用小写的 y 表示。这是受到了数学标准公式 f(x)=y 的启发,其中 x 是函数的输入,y 是输出。用大写的 X 是因为数据是一个二维数组(矩阵),用小写的 y 是因为目标是一个一维数组(向量),这也是数学中的约定。

1、对数据调用 train_test_split ,并对输出结果采用下面这种命名方法:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)

在对数据进行拆分之前,train_test_split 函数利用伪随机数生成器将数据集打乱。如果我们只是将最后 25% 的数据作为测试集,那么所有数据点的标签都是 2 ,因为数据点是按标签排序的(参见之前 iris['target'] 的输出)。测试集中只有三个类别之一,这无法告诉我们模型的泛化能力如何,所以我们将数据打乱,确保测试集中包含所有类别的数据。

为了确保多次运行同一函数能够得到相同的输出,我们利用 random_state 参数指定了随机数生成器的种子。这样函数输出就是固定不变的,所以这行代码的输出始终相同。本书用到随机过程时,都会用这种方法指定 random_state 。

2、train_test_split 函数的输出为 X_train 、X_test 、y_train 和 y_test ,它们都是 NumPy 数组。X_train 包含 75% 的行数据,X_test 包含剩下的 25%:

print("X_train shape: {}".format(X_train.shape))
print("y_train shape: {}".format(y_train.shape))

print("X_test shape: {}".format(X_test.shape))
print("y_test shape: {}".format(y_test.shape))

五、第一个机器学习测试应用 :绘制示意图,观察数据

在构建机器学习模型之前,通常最好检查一下数据,看看如果不用机器学习能不能轻松完成任务,或者需要的信息有没有包含在数据中。

此外,检查数据也是发现异常值和特殊值的好方法。举个例子,可能有些鸢尾花的测量单位是英寸而不是厘米。在现实世界中,经常会遇到不一致的数据和意料之外的测量数据。

检查数据的最佳方法之一就是将其可视化。一种可视化方法是绘制散点图 (scatter plot)。

数据散点图将一个特征作为 x 轴,另一个特征作为 y 轴,将每一个数据点绘制为图上的一个点。不幸的是,计算机屏幕只有两个维度,所以我们一次只能绘制两个特征(也可能是 3 个)。用这种方法难以对多于 3 个特征的数据集作图。解决这个问题的一种方法是绘制散点图矩阵 (pair plot),从而可以两两查看所有的特征。如果特征数不多的话,比如我们这里有 4 个,这种方法是很合理的。但是你应该记住,散点图矩阵无法同时显示所有特征之间的关系,所以这种可视化方法可能无法展示数据的某些有趣内容。

训练集中特征的散点图矩阵。数据点的颜色与鸢尾花的品种相对应。为了绘制这张图,我们首先将 NumPy 数组转换成 pandas DataFramepandas 有一个绘制散点图矩阵的函数,叫作 scatter_matrix

矩阵的对角线是每个特征的直方图:

import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
import mglearn# 利用X_train中的数据创建DataFrame
# 利用iris_dataset.feature_names中的字符串对数据列进行标记
iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names)
# 利用DataFrame创建散点图矩阵,按y_train着色
grr = scatter_matrix(iris_dataframe, c=y_train, figsize=(15, 15), marker='o',hist_kwds={'bins': 20}, s=60, alpha=.8, cmap=mglearn.cm3)
plt.show()

从图中可以看出,利用花瓣和花萼的测量数据基本可以将三个类别区分开。这说明机器学习模型很可能可以学会区分它们。

六、第一个机器学习测试应用:构建第一个模型 - k近邻算法,进行预测和评估

k近邻算法

现在我们可以开始构建真实的机器学习模型了。在 scikit-learn 中有许多可用的分类算法,我们选择使用 k 近邻分类器,因为这是一个很容易理解的算法。构建此模型只需要保存训练集即可。对一个新的数据点做出预测时,算法会在训练集中寻找与这个新数据点距离最近的数据点,然后将找到的数据点的标签赋值给这个新数据点。

在 k 近邻算法中,k 的含义是我们可以考虑训练集中与新数据点最近的任意 k 个邻居(例如,距离最近的 3 个或 5 个邻居),而不是只考虑最近的那一个。然后,我们可以用这些邻居中数量最多的类别来做出预测。

在 scikit-learn 中,所有的机器学习模型都在各自的类中实现,这些类被称为 Estimator 类。k 近邻分类算法是在 neighbors 模块的 KNeighborsClassifier 类中实现的。我们需要将这个类实例化为一个对象,然后才能使用这个模型。这时我们需要设置模型的参数。KNeighborsClassifier 最重要的参数就是邻居的数目,这里我们将其设为 1。

1、引入 k 邻近算法,进行数据训练

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1)

knn 对象对算法进行了封装,既包括用训练数据构建模型的算法,也包括对新数据点进行预测的算法。它还包括算法从训练数据中提取的信息。对于 KNeighborsClassifier 来说,里面只保存了训练集。

想要基于训练集来构建模型,需要调用 knn 对象的 fit 方法,输入参数为 X_train 和 y_train ,二者都是 NumPy 数组,前者包含训练数据,后者包含相应的训练标签:

knn.fit(X_train, y_train)

fit 方法返回的是 knn 对象本身并做原处修改,因此我们得到了分类器的字符串表示。从中可以看出构建模型时用到的参数。几乎所有参数都是默认值,但你也会注意到 n_neighbors=1 ,这是我们传入的参数。scikit-learn 中的大多数模型都有很多参数,但多用于速度优化或非常特殊的用途。你无需关注这个字符串表示中的其他参数。

2、进行预测

在我们可以用这个模型对新数据进行预测了,我们可能并不知道这些新数据的正确标签。想象一下,我们在野外发现了一朵鸢尾花,花萼长 5cm 宽 2.9cm,花瓣长 1cm 宽 0.2cm。这朵鸢尾花属于哪个品种?我们可以将这些数据放在一个 NumPy 数组中,再次计算形状,数组形状为样本数(1)乘以特征数(4):

import numpy as np
X_new = np.array([[5, 2.9, 1, 0.2]])
print("X_new.shape: {}".format(X_new.shape))

注意,我们将这朵花的测量数据转换为二维 NumPy 数组的一行,这是因为 scikit-learn 的输入数据必须是二维数组。

我们调用 knn 对象的 predict 方法来进行预测:

prediction = knn.predict(X_new)
print("Prediction: {}".format(prediction))
print("Predicted target name: {}".format(iris_dataset['target_names'][prediction]))

根据我们模型的预测,这朵新的鸢尾花属于类别 0,也就是说它属于 setosa 品种。但我们怎么知道能否相信这个模型呢?我们并不知道这个样本的实际品种,这也是我们构建模型的重点啊!

3、评估

这里需要用到之前创建的测试集。这些数据没有用于构建模型,但我们知道测试集中每朵鸢尾花的实际品种。

因此,我们可以对测试数据中的每朵鸢尾花进行预测,并将预测结果与标签(已知的品种)进行对比。

1)我们可以通过计算精度 (accuracy)来衡量模型的优劣,精度就是品种预测正确的花所占的比例:

y_pred = knn.predict(X_test)
print("Test set predictions:\n {}".format(y_pred))
print("Test set score: {:.2f}".format(np.mean(y_pred == y_test)))

2)我们还可以使用 knn 对象的 score 方法来计算测试集的精度:

print("Test set score: {:.2f}".format(knn.score(X_test, y_test)))

对于这个模型来说,测试集的精度约为 0.97,也就是说,对于测试集中的鸢尾花,我们的预测有 97% 是正确的。根据一些数学假设,对于新的鸢尾花,可以认为我们的模型预测结果有 97% 都是正确的。对于我们的植物学爱好者应用程序来说,高精度意味着模型足够可信,可以使用。

七、第一个机器学习测试应用:小结

我们构思了一项任务,要利用鸢尾花的物理测量数据来预测其品种。我们在构建模型时用到了由专家标注过的测量数据集,专家已经给出了花的正确品种,因此这是一个监督学习问题。一共有三个品种:setosa、versicolor 或 virginica,因此这是一个三分类问题。在分类问题中,可能的品种被称为类别 (class),每朵花的品种被称为它的标签 (label)。

鸢尾花(Iris)数据集包含两个 NumPy 数组:一个包含数据,在 scikit-learn 中被称为 X ;一个包含正确的输出或预期输出,被称为 y 。数组 X 是特征的二维数组,每个数据点对应一行,每个特征对应一列。数组 y 是一维数组,里面包含一个类别标签,对每个样本都是一个 0 到 2 之间的整数。

我们将数据集分成训练集 (training set)和测试集 (test set),前者用于构建模型,后者用于评估模型对前所未见的新数据的泛化能力。

我们选择了 k 近邻分类算法,根据新数据点在训练集中距离最近的邻居来进行预测。该算法在 KNeighborsClassifier 类中实现,里面既包含构建模型的算法,也包含利用模型进行预测的算法。我们将类实例化,并设定参数。然后调用 fit 方法来构建模型,传入训练数据(X_train )和训练输出(y_trian )作为参数。我们用 score 方法来评估模型,该方法计算的是模型精度。我们将 score 方法用于测试集数据和测试集标签,得出模型的精度约为 97%,也就是说,该模型在测试集上 97% 的预测都是正确的。

关键代码:训练和评估过程所必需的代码

X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)knn = KNeighborsClassifier(n_neighbors=1)knn.fit(X_train, y_train)print("Test set score: {:.2f}".format(knn.score(X_test, y_test)))

这个代码片段包含了应用 scikit-learn 中任何机器学习算法的核心代码。fitpredictscore 方法是 scikit-learn 监督学习模型中最常用的接口

附录

参考文献:[德] Andreas C. Müller [美] Sarah Guido 《Python Machine Learning Basics Tutorial》

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

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

相关文章

mamba-ssm安装卡着不动

项目中用到Mamba的小伙伴,causal_conv1d和 mamba-ssm两个包,但是会卡在Building wheel for mamba-ssm (setup.py) : 为了探究卡在了building的哪一步,加入–verbose进行显示: pip install mamba-ssm --no-cache-dir -…

Linux 安装JDK和Idea

安装JDK 下载安装包 下载地址: Java Downloads | Oracle (1) 使用xshell 上传JDK到虚拟机 (2) 移动JDK 包到/opt/environment cd ~ cd /opt sudo mkdir environment # 在 /opt下创建一个environment文件夹 ls# 复制JDK包dao /opt/environment下 cd 下载 ls jd…

openGauss学习笔记-279 openGauss性能调优-实际调优案例08-改写SQL消除in-clause

文章目录 openGauss学习笔记-279 openGauss性能调优-实际调优案例08-改写SQL消除in-clause279.1 现象描述279.2 优化说明openGauss学习笔记-279 openGauss性能调优-实际调优案例08-改写SQL消除in-clause 279.1 现象描述 in-clause/any-clause是常见的SQL语句约束条件,有时in…

Jmeter性能测试(三)

token鉴权处理 1、添加json提取器 2、写jsonpath表达式在响应Body中提取鉴权token token:变量名,可以直接引用 $…token:token数据在响应中的字段名称,根据自己情况写就行 3、将提取出来的token添加到请求头中 重点&#xff…

postman常用功能超全使用教程

Postman 使用 一、Postman 简介 Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求(如:get/post/delete/put…等等),将请求数据发送至服务端,获取对应的响应结果。 二、Postman 功能简介 三、Postman 下载安装 Post…

ssrf(第二弹)

四,post请求 1.打开环境,提示说发一个HTTP POST请求,ssrf是用php的curl实现的.并且会跟踪302跳转。 2.用dirsearch扫一下常见的端口,看到有三个可以访问的页面 3.构造伪协议,因为要通过172.0.0.1访问,我们…

基于OpenCV对胸部CT图像的预处理

1 . 传作灵感 胸部CT中所包含的噪声比较多,基于OpenCV简单的做一些处理,降低后续模型训练的难度。 2. 图像的合成 在语义分割任务中有的时候需要将原图(imput)和标注数据(groudtruth)合成一幅图像&#x…

Java——接口的补充

目录 一:接口的注意事项 1. 接口中不能有方法块; 2. 接口没有构造方法: 3.接口是可以多继承的; 4. 多个接口抽象方法重复 5. 类的父类方法与接口方法重复 二:类与接口 1. 继承与实现 2. 多个父接口的抽象…

AzureDataFactory 表选项之自动创建表

接上篇, 该篇里表与表之间采取了提前mapping的方式,通过Import schemas的方式将源和目标的表的schemas做了一对一的匹配 但如果我的应用场景是将D365的表数据推送到外部数据源,需要原表clone,如果我去先建表建字段再做mapping未免过于繁琐&am…

基于WPF的DynamicDataDisplay曲线显示

一、DynamicDataDisplay下载和引用 1.新建项目,下载DynamicDataDisplay引用: 如下图: 二、前端开发: <Border Grid.Row="0" Grid.Column="2" BorderBrush="Purple" BorderThickness="1" Margin="2"><Grid>…

面试笔记——类加载器

基础 类加载器&#xff1a;用于装载字节码文件(.class文件)运行时数据区&#xff1a;用于分配存储空间执行引擎&#xff1a;执行字节码文件或本地方法垃圾回收器&#xff1a;用于对JVM中的垃圾内容进行回收 类加载器 &#xff1a;JVM只会运行二进制文件&#xff0c;类加载器的…

Gateway基础配置指南

Gateway基础配置指南 一、引言 随着微服务架构的普及&#xff0c;API网关&#xff08;Gateway&#xff09;作为微服务架构中的关键组件&#xff0c;其重要性日益凸显。Gateway作为系统的唯一入口&#xff0c;负责处理所有客户端的请求&#xff0c;并根据业务规则将请求转发到…

快速上手prometheaus grafana 监控

介绍 prometheaus 一个定时输出指标数据的巡检组件&#xff1f; grafana 一个读取指标&#xff0c;可视化的提供了好看界面的组件&#xff1f; 教程 如何和springboot项目集成 【IT老齐153】超级实用&#xff01;十分钟掌握Prometheus与Grafana监控SpringBoot应用_哔哩哔哩_…

【知识碎片】2024_05_10

每日代码 至少是其他数两倍的最大数 . - 力扣&#xff08;LeetCode&#xff09; int dominantIndex(int* nums, int numsSize) {int max_num 0;int next_max 0;int pos 0;for(int i 0; i < numsSize; i){if(nums[i] > max_num) {pos i;next_max max_num;max_num…

如何使用 ERNIE 千帆大模型基于 Flask 搭建智能英语能力评测对话网页机器人(详细教程)

ERNIE 千帆大模型 ERNIE-3.5是一款基于深度学习技术构建的高效语言模型&#xff0c;其强大的综合能力使其在中文应用方面表现出色。相较于其他模型&#xff0c;如微软的ChatGPT&#xff0c;ERNIE-3.5不仅综合能力更强&#xff0c;而且在训练与推理效率上也更高。这使得ERNIE-3…

JVM调优—减少FullGC

背景 最近负责了一个审批流程新项目&#xff0c;带领了几个小伙伴&#xff0c;哼哧哼哧的干了3个月左右&#xff0c;终于在三月底完美上线了&#xff0c;好消息是线上客户用的很丝滑&#xff0c;除了几个非常规的业务提单之外&#xff0c;几乎没有什么大的问题&#xff0c;但是…

行驶证OCR识别接口怎么对接

行驶证OCR识别接口也叫行驶证文字识别OCR接口,指的是传入行驶证照片&#xff0c;精准识别静态行驶证图像上的文字信息。那么行驶证OCR识别接口怎么对接呢&#xff1f; 首先我们找到数脉API,然后注册账户&#xff0c;购买免费套餐 然后就需要公司的技术大牛把行驶证文字识别OCR…

gdb调试功能描述

gdb调试功能描述 gdb 调试&#xff1a;只对可执行文件进行调用&#xff0c;无法直接用gdb调试.c文件 1.查找命令帮助&#xff1a; &#xff08;gdb&#xff09; help data &#xff08;gdb&#xff09; help call -l (list) 查看载入文件&#xff08;默认为10行&#xff09…

短信群发公司通道有哪些要求

短信群发公司通道有哪些要求 网络稳定性 短信群发公司的通道在进行时需要具备良好的网络稳定性。这意味着通道需要能够稳定连接到互联网&#xff0c;并具备高速传输能力。在网络不稳定或者传输速度慢的情况下&#xff0c;可能会受到影响&#xff0c;甚至导致失败。 高可靠性 …