【Python】sklearn教程

news/2024/9/13 20:19:53/ 标签: python, sklearn, 机器学习

sklearn_1">1. sklearn库介绍

sklearn是 Python 中一个非常重要的机器学习库,全称为scikit-learn。它是基于Python语言的机器学习工具,提供了一系列简单高效的机器学习算法。sklearn库通常与NumPySciPy库一起使用,用于数据预处理、特征选择、模型训练、模型评估等机器学习的各个方面。sklearn 的设计理念是“API的一致性”、“可检验性”和“通用性”,这使得它非常易于使用和扩展。

要学习 sklearn 库的话,我们可以从以下几个方面入手:

  1. 核心功能sklearn 提供了哪些主要的机器学习算法和工具。
  2. 设计原则sklearn 的设计理念,如何使得它在机器学习领域如此受欢迎。
  3. 使用流程:如何使用 sklearn 进行机器学习项目的一般步骤。
  4. 社区和支持sklearn 的社区活跃度以及学习资源。
    为了更直观地展示这些信息,我将用使用思维导图的形式来组织这些内容。这将有助于清晰地展示sklearn库的各个方面,并使其更易于理解。
    现在,我将创建一个思维导图来详细展示sklearn库的这些方面。
    以下是关于sklearn库的思维导图,它详细介绍了库的核心功能、设计原则、使用流程以及社区和支持情况:
    <a class=sklearn库简介" />
  • 这个思维导图应该可以帮助我们更好地理解 sklearn 库的各个方面。

sklearn_17">2. sklearn使用步骤

1. 安装

首先,确保你已经安装了scikit-learn。如果没有,可以使用以下命令进行安装:

pip install -U scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple

2. 导入库

在Python代码中,首先导入所需的模块:

python">import sklearn

3. 数据准备

在使用sklearn之前,通常需要准备数据。数据通常分为特征矩阵X和目标向量y

python">from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target

4. 数据分割

通常将数据分为训练集和测试集。

python">from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

5. 模型选择

选择一个学习算法并实例化它。

python">from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier(n_neighbors=3)

6. 训练模型

用训练集数据训练模型。

python">model.fit(X_train, y_train)

7. 模型预测

用训练好的模型进行预测。

python">y_pred = model.predict(X_test)

8. 评估模型

评估模型的效果。

python">from sklearn.metrics import accuracy_score
print(f"Model accuracy: {accuracy_score(y_test, y_pred)}")

9. 模型持久化

保存模型或加载模型。

python">import joblib
# 保存模型
joblib.dump(model, 'model.pkl')
# 加载模型
loaded_model = joblib.load('model.pkl')

10. 参数调优

使用交叉验证等方法进行参数调优。

python">from sklearn.model_selection import GridSearchCV
param_grid = {'n_neighbors': [1, 3, 5, 7, 9]}
grid_search = GridSearchCV(model, param_grid, cv=5)
grid_search.fit(X_train, y_train)
print(f"Best parameters: {grid_search.best_params_}")

以上只是sklearn库的基础使用流程。该库非常强大,支持多种机器学习算法和工具,是进行机器学习和数据科学研究的常用工具之一。

sklearn_82">3. sklearn库常用方法及优势

以下是sklearn库中常用的方法及其优势:

3.1 数据预处理

3.1.1 preprocessing.StandardScaler: 标准化特征,使其具有零均值和单位方差。
python">from sklearn.preprocessing import StandardScaler
import numpy as np# 创建一个具有两个特征的样本数据集
X = np.array([[1, -1], [2, 0], [0, 1], [1, 1], [2, -1]])scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)# 注意事项:
# - 在训练集上拟合标准化器,并使用相同的参数转换测试集。
# - 不要在测试集上调用 fit_transform(),应该只使用 transform()。
3.1.2 preprocessing.MinMaxScaler: 将特征缩放到一个给定的范围。
python">from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)# 注意事项:
# - 与 StandardScaler 类似,不要在测试集上调用 fit_transform()。
# - MinMaxScaler 会将特征缩放到 [0, 1] 范围内,对于某些算法可能不适用。
3.1.3 preprocessing.OneHotEncoder: 将分类特征转换为独热编码。

以下是一个使用OneHotEncoder的简要示例程序:

python">from sklearn.preprocessing import OneHotEncoder
import numpy as np
# 示例数据:具有两个分类特征的二维数组
data = np.array([[0, 0], [1, 1], [2, 0], [0, 2]])
# 创建OneHotEncoder实例
encoder = OneHotEncoder(sparse=False)
# 训练并转换数据
encoded_data = encoder.fit_transform(data)
# 打印转换后的数据
print(encoded_data)
# 打印特征名称
print(encoder.get_feature_names_out())

在这个示例中,我们首先创建了一个包含两个分类特征的二维数组。然后,我们实例化了一个OneHotEncoder对象,并将其设置为不返回稀疏矩阵(sparse=False)。接下来,我们使用fit_transform方法来训练编码器并转换数据。最后,我们打印了转换后的独热编码数据以及每个独热编码特征对应的名称。输出将类似于以下内容:

[[1. 0. 0. 1.][0. 1. 1. 0.][0. 0. 1. 0.][1. 0. 0. 0.]]
['x0_0', 'x0_1', 'x0_2', 'x1_0']

这里的x0_0x0_1x0_2分别代表第一个特征的三个不同类别(0、1、2)的独热编码,而x1_0代表第二个特征中类别0的独热编码。由于第二个特征只有两个类别(0和1),所以只生成了一个独热编码列。

3.1.4 preprocessing.LabelEncoder: 将分类标签转换为整数编码。

以下是一个使用LabelEncoder的简要示例程序:

python">from sklearn.preprocessing import LabelEncoder
import numpy as np
# 示例数据:一个包含分类标签的数组
labels = np.array(['cat', 'dog', 'cat', 'dog', 'bird'])
# 创建LabelEncoder实例
label_encoder = LabelEncoder()
# 训练并转换数据
encoded_labels = label_encoder.fit_transform(labels)
# 打印转换后的数据
print(encoded_labels)
# 打印原始和转换后的标签
print(label_encoder.classes_)
print(label_encoder.transform(['bird', 'cat']))

在这个示例中,我们首先创建了一个包含分类标签的数组。然后,我们实例化了一个LabelEncoder对象。接下来,我们使用fit_transform方法来训练编码器并转换数据。最后,我们打印了转换后的整数编码标签,以及原始和转换后的标签。输出将类似于以下内容:

[0 1 0 1 2]
['bird' 'cat' 'dog']
[1 0]

这里的012分别代表标签'bird''cat''dog'的整数编码。label_encoder.classes_返回了原始标签的列表,而label_encoder.transform(['bird', 'cat'])则返回了这些标签的整数编码。

优势:这些方法使得不同规模和类型的特征可以被统一处理,这对于许多机器学习算法来说是必要的。

3.2 特征选择

3.2.1 feature_selection.SelectKBest: 选择K个最佳特征。
python">from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2iris = load_iris()
X, y = iris.data, iris.target# 选择两个最佳特征
selector = SelectKBest(score_func=chi2, k=2)
X_k_best = selector.fit_transform(X, y)# 注意事项:
# - 选择特征的方法应该与数据类型和任务类型相匹配。
# - chi2 适用于分类任务的非负特征。
3.2.2 feature_selection.RFE: 递归特征消除,通过递归减少特征集的大小。
python">from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression# 使用逻辑回归模型和RFE选择特征
selector = RFE(estimator=LogisticRegression(), n_features_to_select=2)
X_rfe = selector.fit_transform(X, y)# 注意事项:
# - RFE 需要一个基础估计器,通常是监督学习模型。
# - 选择的特征数量应该小于等于原始特征的数量。

优势:能够帮助识别和选择对模型预测能力贡献最大的特征,从而简化模型并提高效率。

3.3 数据集划分

3.3.1 model_selection.train_test_split: 将数据集划分为训练集和测试集。
python">from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 注意事项:
# - random_state 参数用于确保可重复性。
# - 保持训练集和测试集的比例一致对于评估模型性能很重要。

优势:简单易用,能够快速进行数据集的划分,为模型训练和评估提供基础。

3.4 模型评估

3.4.1 metrics.accuracy_score: 计算准确率。
python">from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression# 训练模型
model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)# 注意事项:
# - 准确率是分类问题中最常用的评估指标,但不总是最佳指标。
# - 在不平衡数据集上,准确率可能会误导。
3.4.2 metrics.precision_score: 计算精确率。
3.4.3 metrics.recall_score: 计算召回率。
3.4.4 metrics.f1_score: 计算F1分数。
3.4.5 metrics.confusion_matrix: 生成混淆矩阵。

优势:提供了多种评估指标,可以全面地了解模型的性能。

3.5 聚类

3.5.1 cluster.KMeans: K均值聚类算法。
python">from sklearn.cluster import KMeans# 使用 KMeans 进行聚类
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)# 注意事项:
# - 需要预先指定聚类的数量(n_clusters)。
# - KMeans 对异常值敏感,可能需要预处理数据。
3.5.2 cluster.AgglomerativeClustering: 层次聚类算法。

优势:支持多种聚类算法,可以用于无监督学习中的数据分组。

3.6 回归

3.6.1 linear_model.LinearRegression: 线性回归。
python">from sklearn.linear_model import LinearRegression# 使用线性回归进行拟合
reg = LinearRegression()
reg.fit(X_train, y_train)
y_pred = reg.predict(X_test)# 注意事项:
# - 线性回归假设特征之间是线性关系。
# - 确保数据没有多重共线性。
3.6.2 ensemble.RandomForestRegressor: 随机森林回归。

优势:提供了多种回归算法,可以用于预测连续值。

3.7 分类

3.7.1 svm.SVC: 支持向量机分类器。
python">from sklearn.svm import SVC# 使用支持向量机进行分类
svc = SVC(kernel='linear')
svc.fit(X_train, y_train)
y_pred = svc.predict(X_test)# 注意事项:
# - 选择合适的核函数(kernel)对模型性能有很大影响。
# - 对于大型数据集,SVC 训练可能会很慢。
3.7.2 neighbors.KNeighborsClassifier: K最近邻分类器。

以下是一个使用KNeighborsClassifier的简要示例程序:

python">from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# 加载数据集
iris = datasets.load_iris()
X, y = iris.data, iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 标准化特征
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# 创建KNeighborsClassifier实例
knn = KNeighborsClassifier(n_neighbors=3)
# 训练模型
knn.fit(X_train_scaled, y_train)
# 进行预测
y_pred = knn.predict(X_test_scaled)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy of the KNeighborsClassifier: {accuracy:.2f}')

在这个示例中,我们首先加载了鸢尾花(Iris)数据集,然后将其分为训练集和测试集。接着,我们对特征进行了标准化处理,这是K近邻算法中的一个常见步骤,因为它基于距离进行计算。然后,我们创建了一个KNeighborsClassifier实例,指定了邻居的数量为3,并使用训练集来训练模型。最后,我们在测试集上进行了预测,并计算了准确率来评估模型性能。

3.7.3 ensemble.RandomForestClassifier: 随机森林分类器。
3.7.4 naive_bayes.GaussianNB: 高斯朴素贝叶斯分类器。

优势:支持多种分类算法,包括传统算法和集成算法,适用于不同的数据集和问题。

3.8 参数调优

3.8.1 model_selection.GridSearchCV: 网格搜索交叉验证,用于寻找最佳参数。
python">from sklearn.model_selection import GridSearchCV# 参数网格
param_grid = {'C': [0.1, 1, 10], 'kernel': ['linear', 'rbf']}
grid_search = GridSearchCV(SVC(), param_grid, cv=5)
grid_search.fit(X_train, y_train)# 注意事项:
# - GridSearchCV 可能非常耗时,尤其是在大型参数空间和大型数据集上。
# - 只对训练集进行网格搜索,以避免过拟合。
3.8.1 model_selection.RandomizedSearchCV: 随机搜索交叉验证,用于在较大的参数空间中寻找最佳参数。
python">from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import expon, randint# 定义参数的分布
param_distributions = {'n_estimators': randint(100, 500),'max_depth': [5, 10, None],'learning_rate': expon(scale=1.0),
}# 使用随机搜索交叉验证
random_search = RandomizedSearchCV(RandomForestRegressor(), param_distributions, n_iter=10, cv=5, random_state=42)
random_search.fit(X_train, y_train)# 注意事项:
# - RandomizedSearchCV 对于大型参数空间更为高效,因为它不是尝试所有可能的组合。
# - `n_iter` 参数控制了随机搜索的迭代次数。
# - 随机搜索的结果可能因随机状态的不同而有所差异。

优势:能够自动化地搜索最佳的模型参数,提高模型性能。

3.9 管道(Pipeline)

3.9.1 pipeline.Pipeline: 构建一个工作流程,将多个预处理步骤和模型训练步骤串联起来。
python"># 创建带有预处理和模型的管道
pipeline = Pipeline([('scaler', StandardScaler()),('svc', SVC())
])# 定义参数网格
param_grid = {'svc__C': [0.1, 1, 10],'svc__kernel': ['linear', 'rbf']
}# 在管道中使用网格搜索交叉验证
grid_search = GridSearchCV(pipeline, param_grid, cv=5)
grid_search.fit(X_train, y_train)# 注意事项:
# - 参数名称需要包含步骤名称和参数名称,格式为 `step__parameter`。
# - 管道和网格搜索的结合可以同时优化预处理步骤和模型参数。

优势:使得机器学习工作流程更加模块化,易于管理和重复使用。

3.10 集成方法

3.10.1 ensemble.VotingClassifier: 投票分类器,结合多个分类器的预测。
python">from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 加载数据集
iris = datasets.load_iris()
X, y = iris.data, iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 创建不同的分类器
log_clf = LogisticRegression(max_iter=1000, random_state=42)
rnd_clf = RandomForestClassifier(n_estimators=100, random_state=42)
svm_clf = SVC(gamma='scale', probability=True, random_state=42)# 创建VotingClassifier对象,这里使用硬投票
voting_clf = VotingClassifier(estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],voting='hard'
)# 训练VotingClassifier
voting_clf.fit(X_train, y_train)# 进行预测
y_pred = voting_clf.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy of the VotingClassifier: {accuracy:.2f}')

分类器组合:VotingClassifier 可以结合多个不同的分类器,每个分类器可以是任何具有fitpredict方法的对象。确保每个分类器都适合于当前的问题和数据。
投票类型:可以选择 hardsoft 投票。'hard’ 投票是基于每个分类器的预测结果进行多数投票,而 ’soft’ 投票是基于分类器的预测概率进行加权平均。对于 ’soft’ 投票,分类器必须能够估计概率(即具有 predict_proba 方法)。
权重分配:在 ’soft’ 投票中,可以为每个分类器分配不同的权重,默认情况下,所有分类器的权重都是相等的。
超参数调整:与单个分类器一样,集成分类器也应该进行超参数调整。可以使用GridSearchCVRandomizedSearchCVVotingClassifier一起使用。
性能评估:虽然集成分类器通常能提高性能,但并不是在所有情况下都是如此。应该通过交叉验证和其他性能指标来评估集成分类器的效果。
过拟合风险:集成方法可能会增加过拟合的风险,特别是在使用大量复杂的分类器时。确保对集成分类器进行适当的验证。
计算成本:集成多个分类器会增加计算成本,特别是在训练和预测阶段。在实际应用中,需要平衡性能提升与计算成本。
版本兼容性:VotingClassifier 在不同的 sklearn 版本中可能会有不同的行为,确保使用与你的环境兼容的版本。

3.10.2 ensemble.AdaBoostClassifier: AdaBoost分类器,逐步增强弱学习器。
python">from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier# 使用决策树作为基础估计器
ada_clf = AdaBoostClassifier(DecisionTreeClassifier(max_depth=1),n_estimators=200,algorithm="SAMME.R",learning_rate=0.5
)ada_clf.fit(X_train, y_train)
y_pred = ada_clf.predict(X_test)# 注意事项:
# - AdaBoostClassifier 可以通过调整 `learning_rate` 来控制模型过拟合的风险。
# - 基础估计器通常是弱学习器,如决策树,其深度通常较小。

优势:集成方法通常能够提高模型的准确性和鲁棒性。
sklearn库的强大之处在于它的易用性、一致性、广泛的算法覆盖、以及良好的文档支持。它为研究人员和开发人员提供了一个强大的工具集,用于构建复杂的机器学习流程。

3.11 注意事项:

数据类型和格式:确保输入数据的类型和格式符合 sklearn 算法的要求,例如,分类特征通常需要转换为整数或独热编码。
内存管理:对于大型数据集,可能需要考虑内存管理,避免内存溢出。
并行处理:许多 sklearn 算法支持并行处理,可以通过设置 n_jobs 参数来加速计算。
版本兼容性:在升级 sklearn 版本时,注意检查API的兼容性,因为某些函数和参数可能会发生变化。
异常处理:在模型训练和预测过程中,应当添加适当的异常处理机制,以处理可能出现的错误。
这些示例和注意事项为使用 sklearn 库进行机器学习任务提供了基础。在实际应用中,理解数据、问题背景和模型特性对于成功应用机器学习至关重要。

sklearn_454">4. sklearn官方社区入口

scikit-learnsklearn)的官方社区主要包括以下几个部分,这里提供一些官方资源和社区平台的链接:

  1. 官方文档:
    • 官方文档是学习和使用scikit-learn的重要资源,包含了教程、用户指南、API参考以及开发者指南等。
    • scikit-learn官方文档
  2. 官方GitHub仓库:
    • scikit-learn的源代码托管在 GitHub 上,用户可以在该平台上报告问题、提出功能请求或贡献代码。
    • scikit-learn GitHub 仓库
  3. 官方用户邮件列表:
    • 用户邮件列表是讨论scikit-learn使用问题的主要平台。
    • scikit-learn 用户邮件列表
  4. 官方开发者邮件列表:
    • 开发者邮件列表用于讨论scikit-learn的开发和维护问题。
    • scikit-learn 开发者邮件列表
  5. Stack Overflow:
    • 在Stack Overflow上,有一个活跃的scikit-learn标签,用户可以提问和回答有关scikit-learn的问题。
    • Stack Overflow - scikit-learn 标签
  6. 官方用户论坛:
    • scikit-learn还有一个官方的用户论坛,用于用户间的交流和讨论。
    • scikit-learn 用户论坛
  7. 官方社交媒体账号:
    • scikit-learn在社交媒体上也有官方账号,比如Twitter,用于发布最新消息和更新。
    • scikit-learn Twitter
      这些资源和社区平台是scikit-learn用户和开发者进行交流、学习和协作的主要场所。

http://www.ppmy.cn/news/1475728.html

相关文章

无人机之遥控器分类篇

一、传统遥控器 传统无人机遥控器一般包括开关键、遥控天线等基础装置。但是会随着无人机具体的应用和功能而开发不同的按键。它的信号稳定性远超对比其他遥控&#xff0c;而且遥控距离也更远&#xff08;一般遥控范围在100米或以上&#xff09;传统遥控器对于初学者来说比较难…

/EtherCATInfo/Descriptions/Devices/Device/SubDevice/@Hideable

SubDevice/Hideable 属性 /EtherCATInfo/Descriptions/Devices/Device/SubDevice/Hideable 出现次数&#xff1a;可选 (0…1)数据类型&#xff1a;布尔值 该属性仅应在列出所有子设备的主设备的 ESI 文件中使用。该属性表示配置工具是否可以隐藏相应的子设备。只有不需要配置…

PXE、Kickstart和cobbler

一.系统装机 1.1 三种引导方式 启动操作系统 1.硬盘 2.光驱(u盘) 3.网络启动 pxe 1.2 系统安装过程 1.加载boot loader: Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设 备、建立内存空间的映射图,从而将系统的软硬…

多旋翼无人机挂载多功能抛投器技术详解

多旋翼无人机&#xff0c;作为一种具有高效、灵活、稳定等特性的无人驾驶飞行器&#xff0c;在现代社会的多个领域得到了广泛应用。其中&#xff0c;挂载多功能抛投器技术&#xff0c;使得无人机在物资投送、救援等任务中发挥出更加重要的作用。以下将详细介绍多旋翼无人机挂载…

搜索引擎算法工程师,在query理解方面,都有哪些方面的工作

一、什么是query理解&#xff1f; 通俗来讲&#xff0c;就是query整形。又可以理解为是一个转接头&#xff0c;把用户送来过来的奇奇怪怪的query&#xff08;或者说是在搜索引擎看来是奇奇怪怪的query&#xff09;转换为搜索引擎最想看到的query的。 在LLM当前能力的帮助下&a…

STM32学习历程(day6)

EXTI外部中断使用教程 首先先看下EXTI的框图 看这个框图就能知道要先初始化GPIO外设 那么和前面一样 1、先RCC使能时钟 2、配置GPIO 选择端口为输入模式&#xff0c; 3、配置AFIO&#xff0c;选择我们用的GPIO连接到后面的EXTI 4、配置EXTI&#xff0c;选择边沿触发方式…

《系统架构设计师教程(第2版)》第11章-未来信息综合技术-06-云计算(Cloud Computing) 技术概述

文章目录 1. 相关概念2. 云计算的服务方式2.1 软件即服务 (SaaS)2.2 平台即服务 (PaaS)2.3 基础设施即服务 (IaaS)2.4 三种服务方式的分析2.4.1 在灵活性2.4.2 方便性方 3. 云计算的部署模式3.1 公有云3.2 社区云3.3 私有云3.4 混合云 4. 云计算的发展历程4.1 虚拟化技术4.2 分…

大数据如何推动工业数字化发展

在全球工业4.0浪潮中&#xff0c;大数据技术作为核心驱动力&#xff0c;正深刻改变着传统工业的面貌。通过数据的采集、分析和应用&#xff0c;工业企业能够实现生产效率的提升、成本的降低以及创新能力的增强。本文将从大数据在工业数字化中的应用场景、技术实现和实际案例等方…

数据库系统概论:初识数据库

数据库&#xff08;Database&#xff09;作为计算机系统中不可或缺的重要组成部分&#xff0c;扮演着存储、管理和访问数据的核心角色。它们被设计用于高效地存储和管理数据&#xff0c;使用户能够快速地查找、更新和分析信息。数据库系统是现代信息技术的核心组成部分&#xf…

keil将“32”单片机中的axf文件转换为bin文件

需要注意的是keil自带的fromelf.exe只是将axf文件转换为bin文件 在编译stm32单片机使用才能生成axf文件&#xff0c;在编译51单片机时会输出hex文件&#xff0c;没有输出axf文件 使用方法 参考&#xff0c;参考1&#xff0c;参考2 简单来说是设置输出hex&#xff0c;然后修改…

【JavaEE】网络原理——网络层+数据链路层

&#x1f921;&#x1f921;&#x1f921;个人主页&#x1f921;&#x1f921;&#x1f921; &#x1f921;&#x1f921;&#x1f921;JavaEE专栏&#x1f921;&#x1f921;&#x1f921; &#x1f921;&#x1f921;&#x1f921;上一篇文章&#xff1a;【JavaEE】网络原理—…

notes for datawhale 2th summer camp NLP task1

//I wrote this note in obsidian and copied it here. The strange format in this note is due to lack of obsidian plugins. tags: AI-studyML status: done 目标&#xff1a;跑通baseline&#xff0c;体验NLP模型解决问题的流程&#xff0c;基本了解赛题要求&#xff0c;…

Apache Lucene 详解及示例

Apache Lucene 详解及示例 1. 简介 Apache Lucene 是一个高性能的全文搜索引擎库&#xff0c;广泛应用于构建搜索系统。本文将详细解析 Lucene 的核心概念和主要功能&#xff0c;并通过多个示例代码演示其使用方法。 2. 核心概念 2.1 倒排索引 倒排索引将文档中的每个词条…

视频号矩阵系统源码,实现AI自动生成文案和自动回复私信评论,支持多个短视频平台

在当今短视频蓬勃发展的时代&#xff0c;视频号矩阵系统源码成为了自媒体人争相探索的宝藏。这一强大的技术工具不仅能帮助我们高效管理多个短视频平台&#xff0c;更能通过AI智能生成文案和自动回复私信评论&#xff0c;为自媒体运营带来前所未有的便利与效率。 一、视频号矩…

HarmonyOS 屏幕适配设计

1. armonyOS 屏幕适配设计 1.1. 像素单位 &#xff08;1&#xff09;px (Pixels)   px代表屏幕上的像素点&#xff0c;是手机屏幕分辨率的单位&#xff0c;即屏幕物理像素单位。 &#xff08;2&#xff09;vp (Viewport Percentage)   vp是视口百分比单位&#xff0c;基于…

如何安装Visual Studio Code

Visual Studio Code&#xff08;简称 VS Code&#xff09; Visual Studio Code 是一款由微软开发的免费、开源的现代化轻量级代码编辑器。 主要特点包括&#xff1a; 跨平台&#xff1a;支持 Windows、Mac 和 Linux 等主流操作系统&#xff0c;方便开发者在不同平台上保持一…

STM32智能健康监测系统教程

目录 引言环境准备智能健康监测系统基础代码实现&#xff1a;实现智能健康监测系统 4.1 数据采集模块 4.2 数据处理与分析模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;健康监测与优化问题解决方案与优化收尾与总结 1. 引言 智能健康监测系统通…

LLM-阿里 DashVector + langchain self-querying retriever 优化 RAG 实践【Query 优化】

文章目录 前言self querying 简介代码实现总结 前言 现在比较流行的 RAG 检索就是通过大模型 embedding 算法将数据嵌入向量数据库中&#xff0c;然后在将用户的查询向量化&#xff0c;从向量数据库中召回相似性数据&#xff0c;构造成 context template, 放到 LLM 中进行查询…

网站开发:使用VScode安装yarn包和运行前端项目

一、首先打开PowerShell-管理员身份运行ISE 输入命令&#xff1a; set-ExecutionPolicy RemoteSigned 选择“全是”&#xff0c;表示允许在本地计算机上运行由本地用户创建的脚本&#xff0c;没有报错就行了 二、接着打开VScode集成终端 输入 npm install -g yarn 再次输入以…

人工智能算法工程师(中级)课程12-PyTorch神经网络之LSTM和GRU网络与代码详解1

大家好,我是微学AI,今天给大家介绍一下人工智能算法工程师(中级)课程12-PyTorch神经网络之LSTM和GRU网络与代码详解。在深度学习领域,循环神经网络(RNN)因其处理序列数据的能力而备受关注。然而,传统的RNN存在梯度消失和梯度爆炸的问题,这使得它在长序列任务中的表现不尽…