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.mfbz.cn/a/595020.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

案例精选 | 江苏省徐州医药高等职业学校网络流量纵深防护项目

江苏省徐州医药高等职业学校,自1985年建校以来,始终站在医药教育的前沿。作为江苏省药品监督管理局直属的高等职业学校,该校不仅是江苏省医药行业协会的重要成员,还是中国职业技术教育学会医药专业委员会的副主任单位。 学校拥有…

C++:重写和重载

重写(Override)和重载(Overload)是面向对象编程中常用的两个概念,它们虽然都涉及到方法的定义,但是在实现和使用上有着不同的特点。 重写(Override): 重写是指在子类中重…

Web安全研究(九)

知识星球 首先推荐一下我们的知识星球,以AI与安全结合作为主题,包括AI在安全上的应用和AI本身的安全; 加入星球你将获得: 【Ai4sec】:以数据驱动增强安全水位,涵盖内容包括:恶意软件分析,软件安全,AI安全,数据安全,系统安全,流量分析,防爬,验证码等安全方向。…

linux安装 mysql

环境:centOS8 一、安装 1 安装wget库 sudo yum -y install wget 2. 安装 mysql 换yum源 亲测成功!!!!!! 换yum源 1.下载对应版本的repo文件 wget -O CentOS-Base.repo http://mirrors…

今日arXiv最热大模型论文:首个面向AI的python编程框架,提升大模型编程能力新思路

高级编程语言Python有两个受众:一是编译和执行程序的机器,二是阅读、理解和编写程序的人类。机器关注程序的语义操作,而人类更强调代码的可读性。Python在语法中融入了许多以人类为中心的设计元素,以“可读性至上”为设计原则&…

【蓝桥杯备赛国赛】5-5

文章目录 求阶乘双子数 求阶乘 求阶乘 分析k的范围,10的18次方。这个数字很大 想要末尾有0的存在必须要2和5,但是通过分析2的数目应该是远远多于5的,所以只要5的数目够多即可。所以for循环的层次也是10的九次方以上,必然会超时&…

项目|保障房房产管理系统,政务房产解决方案

一、系统概况 保障房管理系统是是为了落实中央关于住房保障的相关政策,实现对低收入家庭住房状况的调查管理、保障计划及落实管理、保障申请及审核管理、保障户和保障房源档案管理等。 针对政府保障房产管理的一站式解决方案,专注于为解决复杂、繁琐的…

python+barcode快速生成条形码(电商测试小工具)

背景 需要测试自助收银机,每次都要在线生成条码,而且生成次数还有限制 需求 满足自定义条形码,可以生成条形码图片 方案 python 3.8以上 barcode 1.0.4 python-barcode 0.15.1 代码 用于生成Code128条形码…

FTP和NFS

一、FTP 1.FTP原理 FTP(file Transfer Protocol,文件传输协议),是典型的C/S架构的应用层协议,由客户端软件和服务端软件两个部分共同实现文件传输功能,FTP客户端和服务器之间的连接时可靠的,面…

【题解】NowCoder Fibonacci数列

题目来源:牛客 题目链接:Fibonacci数列 Fibonacci数列 题目描述: Fibonacci 数列是这样定义的: F[0] 0 F[1] 1 for each i ≥ 2 : F[i] F[i-1] F[i-2] 因此,Fibonacci 数列就形如:0, 1, 1, 2, 3, 5…

uniapp生成二维码(uQRCode)与自定义绘制样式与内容

二维码生成使用了一款基于Javascript环境开发的插件 uQRCode ,它不仅适用于uniapp,也适用于所有Javascript运行环境的前端应用和Node.js。 uQRCode 插件地址:https://ext.dcloud.net.cn/plugin?id1287 目录 1、npm安装 2、通过import引…

HarmonyOS NEXT星河版之模拟图片选择器(下)---使用CustomDialog展示图片

文章目录 一、目标二、开撸2.1 自定义弹窗2.2 主页面事件处理2.3 主页面完整代码 三、小结 一、目标 二、开撸 2.1 自定义弹窗 CustomDialog export struct SinglePreviewDialog {// 弹窗控制器 mustcontroller: CustomDialogController// 展示图片URLimgUrl: ResourceStr b…

C++进阶之路:何为命名空间、缺省参数与函数重载

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

JS基础:输出信息的5种方式详解

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端基础路线”,可获取完整web基础…

linux部署yum仓库

一. Yum概述 1.yum简介 基于RPM包构建的软件更新机制 可以自动解决依赖关系 所有软件包由集中到YUM软件仓库提供 2.yum工作原理 c/s模式 客户端根据配置文件找到yum仓库服务器的位置 服务端向客户端发送元数据包(包含 软件依赖关系 软件的位置) #相当于软件安装目录 客户…

vue2 中web端播放rtsp视频流 通过ffmpeg(海康威视录像机)

文章目录 一、安装ffmpeg二、配置系统ffmpeg环境变量三、node搭建websocket服务四、vue播放视频 注意:这个方法实现了本地rtsp视频的播放,暂时没考虑服务器部署 参考文章:vue中web端播放rtsp视频流(摄像头监控视频)&am…

书生浦语训练营第2期-第6节作业

一、基础作业 1.1 Lagent Web Demo 使用 1.2 AgentLego 直接使用部分 二、进阶作业 2.1 AgentLego WebUI 使用 2.2 使用 Lagent 自定义工具 2.3 使用AgentLego自定义工具

Unity Navigation 入门(新版)

概述 在游戏的制作过程中,寻路功能一定是非常重要的部分,他可以为主角寻路,也可以运用到敌人追击等,相比于自己实现的难度,使用寻路组件就显得简单的多,那接下来就开始学习这部分的内容吧 1.安装AI Naviga…

【vue+echarts】绘制中国地图,3D地图,省、市、县三级下钻以及回钻,南海诸岛小窗化显示,点位飞线图,点位名称弹窗轮播展示,及一些常见问题

先看效果展示图 目录 准备工作一, 绘制3D地图1,调用官网地址接口获取2,去官网下载中国地图的json数据到本地,本地引入 二, 南海诸岛小窗化显示1, 手动过滤掉,只保留小窗化的南海诸岛2, 代码层面过滤掉,只保留小窗化的南海诸岛 三, 省、市、县三级地图下钻及回钻1, 下钻2, 回钻…

YApi的在IDEA中的使用

1 IDEA中插件下载 2 misc.xml的配置 <component name"yapi"><option name"projectToken">XXXXXXXXXX</option><option name"projectId">47</option><option name"yapiUrl">http://XXXX:3000<…
最新文章