一文入门机器学习参数调整实操

作者前言:

通过向身边的同事大佬请教之后,大佬指点我把本文的宗旨从“参数调优”改成了“参数调整”。实在惭愧,暂时还没到能“调优”的水平,本文只能通过实操演示“哪些操作会对数据训练产生影响”,后续加深学习之后,再争取入门“参数调优”。

一、为什么要参数调优?

答:提升数据模型性能。

通常来说,我们选择使用的数据模型并不是万能的,它们面对不同的使用场景时,均存在一定的局限性,因此我们渴望提升模型性能,理论上无限追求“万能”模型。

数据模型的常用性能指标大致如下:

性能指标定义衡量指标影响因素
准确性
⭐⭐⭐
模型在预测或分类任务中的准确性,即模型对数据的预测或分类是否准确。- 准确率(Accuracy)
- 精确率(Precision)
- 召回率(Recall)
- F1分数(F1 Score)
- AUC-ROC
- 数据集的质量和数量
- 特征工程的效果
- 模型的选择和参数调优
泛化能力
⭐⭐⭐
模型对未见过的新数据、噪声和异常值的适应能力,即模型在新数据上的表现是否良好。- 交叉验证(Cross-Validation)
- 验证集和测试集性能
- 学习曲线(Learning Curve)
- 异常值检测能力
- 鲁棒性测试
- 数据集的多样性和代表性
- 模型的复杂度(过拟合和欠拟合)
- 正则化技术(如L1、L2正则化)
- 数据增强和数据预处理方法
训练速度
模型在训练过程中的速度,即模型在给定数据集上的训练时间。- 训练时间
- 迭代次数
- 数据集的大小和复杂度
- 模型的复杂度和参数数量
- 硬件配置(如CPU、GPU、TPU)
- 优化算法(如SGD、Adam)的选择
预测速度模型在预测或推断阶段的速度,即模型在给定数据上的预测时间。- 预测时间
- 吞吐量
- 模型的复杂度和参数数量
- 硬件配置(如CPU、GPU、TPU)
- 预测时的批处理大小(Batch Size)
模型复杂度模型的复杂度和简洁性,即模型的结构和参数数量,以及模型是否过于简单或过于复杂。- 参数数量
- 模型结构
- 计算复杂度
- 任务的复杂性和数据的特征
- 模型选择(如线性模型、决策树、神经网络)
- 正则化和剪枝技术

二、参数调优调整

切记!切记!下面所有的例子,都是仅针对单一衡量指标演示不同的case对该指标的影响,具体的衡量指标数据并非越大/小越好,评判性能好坏需要根据实际情况结合多个衡量指标共同判断!!!

通过阅读一文入门机器学习,我们知道数据模型训练的流程大致如下:

导入
训练
数据集
特征工程
数据模型

因此参数调优基本可以分为两个方向:

  • 数据集
    • 数据量
    • 数据特征
  • 数据模型
    • 模型类型
    • 模型超参数

所以下面内容均按照这两个方向来演示。

Tips

  • 在开始之前请先准备好环境
# 安装python3
# 自行搜索安装教程,我这里使用的是python3

# 安装pip3
python3 -m ensurepip --upgrade

# 安装机器学习常用库
pip3 install scikit-learn
pip3 install numpy

0.准确性

以经典的鸢尾花数据集为例,演示“数据集、数据模型的调整”对准确性的影响。

这里仅演示准确率这一个衡量指标,需要注意,并非准确率越高,准确性就越强(如过拟合)。

a.影响因素:数据集

在例子中,我们分3种case测试:

  • case1:相同数据模型,相同数据集,使用所有特征,使用100%数据量
  • case2:相同数据模型,相同数据集,使用所有特征,仅使用5%数据量
  • case3:相同数据模型,相同数据集,仅使用前2个特征,使用100%数据量

示例代码如下:

import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target

# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# case1:相同数据模型,相同数据集,使用所有特征,使用100%数据量
# 逻辑回归模型
model1 = LogisticRegression()
model1.fit(X_train, y_train)
y_pred1 = model1.predict(X_test)
# 计算分类模型准确率
accuracy1 = accuracy_score(y_test, y_pred1)

# case2:相同数据模型,相同数据集,使用所有特征,仅使用5%数据量
# 逻辑回归模型
model2 = LogisticRegression()
X_train_5 = X_train[:int(0.05 * len(X_train))]
y_train_5 = y_train[:int(0.05 * len(y_train))]
model2.fit(X_train_5, y_train_5)
y_pred2 = model2.predict(X_test)
# 计算分类模型准确率
accuracy2 = accuracy_score(y_test, y_pred2)

# case3:相同数据模型,相同数据集,仅使用前2个特征,使用100%数据量
# 逻辑回归模型
model3 = LogisticRegression()
X_train_subset = X_train[:, :2]
X_test_subset = X_test[:, :2]
model3.fit(X_train_subset, y_train)
y_pred3 = model3.predict(X_test_subset)
# 计算分类模型准确率
accuracy3 = accuracy_score(y_test, y_pred3)

print(f"使用100%训练数据的准确率: {accuracy1:.2f}")
print(f"使用5%训练数据的准确率: {accuracy2:.2f}")
print(f"仅使用前2个特征的准确率: {accuracy3:.2f}")

执行结果:

case准确率
case1:相同数据模型,相同数据集,使用所有特征,使用100%数据量1.00
case2:相同数据模型,相同数据集,使用所有特征,仅使用5%数据量0.44
case3:相同数据模型,相同数据集,仅使用前2个特征,使用100%数据量0.82

很明显可以看出,相同数据集,不同的数据量、数据特征,均会影响准确率。

b.影响因素:数据模型

在例子中,我们分3种case测试:

  • case1:使用逻辑回归模型,相同数据集,仅使用前2个特征,使用100%数据量
  • case2:使用随机森林模型,相同数据集,仅使用前2个特征,使用100%数据量
  • case3:使用随机森林模型,相同数据集,仅使用前2个特征,使用100%数据量,进行超参数调优

Tips

  • 这里“仅使用前2个特征”是因为鸢尾花数据集这个经典的机器学习案例相对较简单(数据量小、特征少、标签有限),如果使用全部特征来训练的话,准确率直接100%了,不便于演示调整效果,因此这里限制一下特征。

示例代码如下:

import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target

# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 仅使用前2个特征
X_train_subset = X_train[:, :2]
X_test_subset = X_test[:, :2]

# case1:逻辑回归
clf_lr = LogisticRegression(random_state=42, max_iter=200)
clf_lr.fit(X_train_subset, y_train)
y_pred_lr = clf_lr.predict(X_test_subset)
# 计算分类模型准确率
accuracy_lr = accuracy_score(y_test, y_pred_lr)

# case2:随机森林
clf_rf = RandomForestClassifier(random_state=42)
clf_rf.fit(X_train_subset, y_train)
y_pred_rf = clf_rf.predict(X_test_subset)
# 计算分类模型准确率
accuracy_rf = accuracy_score(y_test, y_pred_rf)

# case3:随机森林超参数调优
param_grid = {
    'n_estimators': [50, 100, 200],
    'max_depth': [None, 10, 20, 30],
    'min_samples_split': [2, 5, 10]
}
grid_search = GridSearchCV(estimator=RandomForestClassifier(random_state=42), param_grid=param_grid, cv=5, n_jobs=-1)
grid_search.fit(X_train_subset, y_train)
best_rf = grid_search.best_estimator_
y_pred_best_rf = best_rf.predict(X_test_subset)
# 计算分类模型准确率
accuracy_best_rf = accuracy_score(y_test, y_pred_best_rf)

print(f"逻辑回归的准确率: {accuracy_lr:.2f}")
print(f"随机森林的准确率: {accuracy_rf:.2f}")
print(f"调优后的随机森林的准确率: {accuracy_best_rf:.2f}")

执行结果:

case准确率
case1:使用逻辑回归模型,相同数据集,仅使用前2个特征,使用100%数据量0.82
case2:使用随机森林模型,相同数据集,仅使用前2个特征,使用100%数据量0.73
case3:使用随机森林模型,相同数据集,仅使用前2个特征,使用100%数据量,进行超参数调优0.78

同样可以看出,数据模型的类型、数据模型的超参数均会影响准确率。

1.泛化能力

以经典的加利福尼亚房价数据集为例,演示“数据集、数据模型的调整”对泛化能力的影响,该数据集包含20640个样本,每个样本有8个特征(如房间数、人口、经纬度等)。

Tips

  • 这里仅演示“方差”这一个衡量指标,需要注意,并非方差越低,泛化能力就越强。评判一个数据模型的泛化能力通常需要综合考虑多个衡量指标。
  • 对于回归问题,常用的指标包括MSE、RMSE、MAE和R²;
  • 对于分类问题,常用的指标包括准确率、精确率、召回率、F1分数、AUC-ROC曲线和混淆矩阵。
  • 此外,交叉验证和学习曲线也是评估模型泛化能力的重要方法。通过综合这些指标,可以更全面地评估模型在未见过的数据上的表现。

a.影响因素:数据集

在例子中,我们分7种case测试:

  • case1:使用线性回归模型,相同数据集,使用所有特征,使用1000数据量
  • case2:使用线性回归模型,相同数据集,使用所有特征,使用5000数据量
  • case3:使用线性回归模型,相同数据集,使用所有特征,使用10000数据量
  • case4:使用线性回归模型,相同数据集,使用所有特征,使用20000数据量
  • case5:使用线性回归模型,相同数据集,仅使用前1个特征,使用20640数据量
  • case6:使用线性回归模型,相同数据集,仅使用前3个特征,使用20640数据量
  • case7:使用线性回归模型,相同数据集,仅使用前5个特征,使用20640数据量
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.datasets import fetch_california_housing

# 加载加利福尼亚房价数据集
california = fetch_california_housing()
X = california.data
y = california.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

def train_and_evaluate(num_samples):
    # 线性回归模型
    model = LinearRegression()
    model.fit(X_train[:num_samples], y_train[:num_samples])
    y_pred = model.predict(X_test)
    # 计算均方误差
    mse = mean_squared_error(y_test, y_pred)
    return mse

# case1、2、3、4:不同数据量的测试结果
for num_samples in [1000, 5000, 10000, 20000]:
    mse = train_and_evaluate(num_samples)
    print(f"使用 {num_samples} 条数据训练,测试集均方误差: {mse:.2f}")

def train_with_features(features):
    # 线性回归模型
    model = LinearRegression()
    model.fit(X_train[:, :features], y_train)
    y_pred = model.predict(X_test[:, :features])
    # 计算均方误差
    mse = mean_squared_error(y_test, y_pred)
    return mse

# case5、6、7:使用不同特征组合
# 不同特征组合的测试结果
for features in [1, 3, 5]:
    mse = train_with_features(features)
    print(f"使用前 {features} 个特征训练,测试集均方误差: {mse:.2f}")

执行结果:

case方差
case1:使用线性回归模型,相同数据集,使用所有特征,使用1000数据量0.60
case2:使用线性回归模型,相同数据集,使用所有特征,使用5000数据量0.55
case3:使用线性回归模型,相同数据集,使用所有特征,使用10000数据量0.55
case4:使用线性回归模型,相同数据集,使用所有特征,使用20000数据量0.56
case5:使用线性回归模型,相同数据集,仅使用前1个特征,使用20640数据量0.71
case6:使用线性回归模型,相同数据集,仅使用前3个特征,使用20640数据量0.66
case7:使用线性回归模型,相同数据集,仅使用前5个特征,使用20640数据量0.64

从数据可以看出,数据模型的数据量不同、特征不同,均会影响方差。

b.影响因素:数据模型

在例子中,我们分4种case测试:

  • case1:使用线性回归模型,相同数据集,使用所有特征,使用20640数据量
  • case2:使用决策树回归模型,相同数据集,使用所有特征,使用20640数据量
  • case3:使用随机森林回归模型,相同数据集,使用所有特征,使用20640数据量
  • case4:使用随机森林回归模型,相同数据集,使用所有特征,使用20640数据量,进行超参数调优
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LinearRegression
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor

# 加载加利福尼亚房价数据集
california = fetch_california_housing()
X = california.data
y = california.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# case1、2、3:线性回归、决策树回归和随机森林回归模型
models = {
    'Linear Regression': LinearRegression(),
    'Decision Tree Regressor': DecisionTreeRegressor(),
    'Random Forest Regressor': RandomForestRegressor()
}

# 训练和评估模型
for name, model in models.items():
    model.fit(X_train, y_train)
    y_pred = model.predict(X_test)
    mse = mean_squared_error(y_test, y_pred)
    print(f"{name} 均方误差: {mse:.2f}")

# case4:超参数调优
# 定义超参数网格
param_grid = {
    'n_estimators': [10, 50, 100],
    'max_depth': [None, 10, 20, 30],
    'min_samples_split': [2, 5, 10]
}

# 随机森林回归模型
rf = RandomForestRegressor()

# 网格搜索,使用单CPU,执行很慢,建议使用下面优化的网格搜索
# grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, cv=5, scoring='neg_mean_squared_error')

# 网格搜索,使用所有可用的CPU
# 参数解释:
# n_jobs=-1:使用所有可用的 CPU 核心进行并行计算。
# cv=5:使用5折交叉验证来评估每个超参数组合的性能。
# scoring='neg_mean_squared_error':使用负均方误差作为评估指标,因为 GridSearchCV 期望一个越大越好的评分指标。
grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, cv=5, scoring='neg_mean_squared_error', n_jobs=-1)
grid_search.fit(X_train, y_train)

# 最佳超参数
best_params = grid_search.best_params_
print(f"最佳超参数: {best_params}")

# 使用最佳超参数训练模型
best_rf = grid_search.best_estimator_
y_pred = best_rf.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f"调优后的随机森林均方误差: {mse:.2f}")

执行结果:

case方差
case1:使用线性回归模型,相同数据集,使用所有特征,使用20640数据量0.56
case2:使用决策树回归模型,相同数据集,使用所有特征,使用20640数据量0.50
case3:使用随机森林回归模型,相同数据集,使用所有特征,使用20640数据量0.26
case4:使用随机森林回归模型,相同数据集,使用所有特征,使用20640数据量,进行超参数调优0.25

同样可以看出,数据模型的类型、数据模型的超参数均会影响方差。

2.其他性能指标

除“准确性”和“泛化能力”之外,其他性能指标并非核心指标,这里仅选取“训练速度”演示一下。

a.影响因素:数据集

数据量和数据特征对训练速度的影响比较简单易懂,通常情况下,越多越慢,所以就不在这里做演示了。

b.影响因素:数据模型

以经典的鸢尾花数据集为例,演示“数据模型类型、数据模型参数”对准确性的影响。

在例子中,我们分2种case测试:

  • case1:使用逻辑回归模型,相同数据集,使用所有特征,使用所有数据量
  • case2:使用向量机(SVM)模型,相同数据集,使用所有特征,使用所有数据量

执行以下代码:

# 导入必要的库
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.feature_selection import SelectKBest, f_classif
from sklearn.metrics import accuracy_score
import time

# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

start_time_lr = time.time()
# 逻辑回归模型
model_lr = LogisticRegression()
model_lr.fit(X_train, y_train)
predictions_lr = model_lr.predict(X_test)
# 计算分类模型准确率
accuracy_lr = accuracy_score(y_test, predictions_lr)
end_time_lr = time.time()
print("逻辑回归模型准确率:", accuracy_lr)
print("逻辑回归模型训练耗时:", end_time_lr - start_time_lr, "秒")

start_time_svm = time.time()
# 支持向量机(SVM)模型
model_svm = SVC(kernel='linear')
model_svm.fit(X_train, y_train)
predictions_svm = model_svm.predict(X_test)
# 计算分类模型准确率
accuracy_svm = accuracy_score(y_test, predictions_svm)
end_time_svm = time.time()
print("SVM模型准确率:", accuracy_svm)
print("SVM模型训练耗时:", end_time_svm - start_time_svm, "秒")

执行结果:

case训练耗时 (秒)
case1:使用逻辑回归模型,相同数据集,使用所有特征,使用所有数据量0.016212940216064453
case2:使用向量机(SVM)模型,相同数据集,使用所有特征,使用所有数据量0.002279996871948242

明显可以看到向量机(SVM)模型比逻辑回归模型的训练速度更快。

三、归纳

Tips

  • 准确性的实操演示,只以“准确率”这一个衡量指标做了演示;
  • 泛化能力的实操演示,只以“方差”这一个衡量指标做了演示;
  • 其他同样重要的衡量指标不在这里做演示,毕竟本文仅仅是入门文章,当读者有一定基础之后,可以自行研究其他衡量指标的实操。
调优方向调优内容调优方式补充
数据集数据量增加数据量:更多的数据通常可以帮助模型更好地学习数据的模式和规律,提高模型的准确性。当然,数据量越多准确性越高,但是训练速度也会越低,实际应用中需要酌情选择适量数据集。
特征
⭐⭐⭐
特征选择:选择最相关的特征,减少噪声和冗余特征,提高模型的准确性;
特征提取:从原始数据中提取新的特征,帮助模型更好地捕捉数据的模式;
特征转换:对特征进行变换,如标准化、归一化等,使特征更适合模型的使用。
特征选取的足够好,既能提高模型的准确性,也能提升模型的训练速度。
数据模型模型类型
⭐⭐
选择合适的模型:根据问题的性质选择合适的模型类型,如分类、回归、聚类等,以提高模型的准确性。同样,模型选取的足够好,既能提高模型的准确性,也能提升模型的训练速度。
模型参数
⭐⭐⭐
调优模型参数:通过网格搜索、随机搜索等方法调优模型的超参数,以找到最佳的参数组合,提高模型准确性;
正则化:使用正则化方法,如L1正则化、L2正则化,控制模型的复杂度,避免过拟合,提高模型的泛化能力。
本文缺少对超参数的介绍,后续会在“参数调优”的文章中补充,帮助读者入门“超参数”,感谢理解。🙏

四、寄语

在撰写本文的过程中,我深刻体会到参数调整的重要性和复杂性。虽然目前我还未达到“调优”的水平,但希望通过本文的实操演示,能帮助大家了解哪些操作会对数据训练产生影响。
机器学习的世界广阔而深邃,参数调整只是其中的一部分。希望大家在学习的过程中,不断探索和实践,逐步提升自己的技能。未来,我也会继续学习和分享更多关于“参数调优”的内容,期待与大家共同进步。

五、材料

  • 机器学习数据集库:目前维护着665个开源数据集,读者可以查看、下载、上传数据集。
  • 机器学习python库:scikit-learn:基于python的机器学习接口库,提供功能丰富的机器学习接口,如:下载数据集、训练、调参等。
  • 机器学习python库:tensorflow:基于python的机器学习接口库,通过交互式代码示例,了解如何使用直观的API。

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

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

相关文章

EHS,制造业安全绿色生产的隐形守护神

当我们提到EHS,可能很多人会稍感陌生,毕竟它不是一个日常生活中经常提及的词汇。但实际上,EHS在我们的生活和工作中扮演着极其重要的角色,尤其对制造业而言更是可持续发展经营管理的重中之重。 一、EHS是什么意思? E…

vue项目内网部署流程

由于第一次部署,也是第一次自己用 Nginx , 百度了很久,没有看到想看的步骤,所以作此文以记录,也是给像我一样的人一个大概方向。 注:windows系统 1、首先要弄好jar包的运行环境。 安装jdk 详细安装过程引用 jdk的完整…

码农:如何快速融入团队

问题: 码农如何快速融入团队? 记住一个标准:能干事、能抗事。 总结一个字: 靠谱。 适用范围:新手码农、老司机码农、测试、DBA、运维、产品经理、项目经理、架构师、技术专家、。。。。适用于任何行业的打工者。 下面要…

伙伴活动推荐丨当 RTC 遇上 AI ,大模型创新应用星城论道

近年来,音视频技术已成为推动在线新经济和企业数字化转型的重要力量。作为中部互联网产业高地,湖南长沙亦将音视频产业视为战略性新兴产业重点布局。 2024年7月6日,声网联合 CSDN 在湖南长沙举办声网城市沙龙,以“当 RTC 遇上 AI…

VMware Workstation环境下,DHCP服务的安装配置,用ubuntu来测试

需求说明: 某企业信息中心计划使用IP地址17216.11.0用于虚拟网络测试,注册域名为xyz.net.cn.并将172.16.11.2作为主域名的服务器(DNS服务器)的IP地址,将172.16.11.3分配给虚拟网络测试的DHCP服务器,将172.16.11.4分配给虚拟网络测试的web服务器,将172.16.11.5分配给FTP服务器…

Matlab/simulink三段式电流保护

电流1段仿真波形如下所示 电流2段仿真波形如下所示 电流3段仿真波形如下所示

SSL证书在网站访问中的核心作用及快速申请指南

在当今的互联网时代,数据安全与用户隐私保护成为了网站运营不可或缺的一部分。SSL证书作为一种重要的网络安全协议,它在网站访问中扮演着至关重要的角色,主要体现在以下几个方面: 一、加密通信内容:SSL证书通过建立安…

系统进程与计划任务

目录 系统进程 ps命令 top命令 pgrep命令 pstree命令 jobs命令 计划任务 一次性计划任务at 周期性计划任务crontab 系统进程 我们系统在打开的一瞬间就会加载很多进程,那么我们该如何查看这些进程和管理这些进程呢? ps命令 常用的参数 -a&am…

Linux创建目录——mkdir命令,du命令,touch用法,创建tree拓扑图

1. mkdir 命令 格式 mkdir - 参数 路径 / 目录名 参数 -p :快速创建多级目录(递归目录) -v :显示创建目录的详细过程 例: [rootserver ~] # mkdir t1 [rootserver ~] # mkdir t2 t3 t4 [rootserver ~] # mk…

计算机毕业设计hadoop+spark+hive知识图谱医生推荐系统 医生数据分析可视化大屏 医生爬虫 医疗可视化 医生大数据 机器学习 大数据毕业设计

测试过程及结果 本次对于医生推荐系统测试通过手动测试的方式共进行了两轮测试。 (1)第一轮测试中执行了个20个测试用例,通过16个,失败4个,其中属于严重缺陷的1个,属于一般缺陷的3个。 (2&am…

百元蓝牙耳机推荐2024哪个好?蓝牙耳机性价比之王推荐

现在的百元价位的蓝牙耳机成为了许多消费者入门级的选择,它不仅需要满足基础的通话需求,更要在音质、舒适度、续航能力等多方面达到一定的标准,随着技术的发展和市场的竞争激烈,各大品牌在这一价格区间推出了极具竞争力的产品&…

万能自定义预约小程序源码系统 适合任何行业在线预约报名 前后端分离 带完整的安装代码包以及搭建教程

系统概述 在当今数字化时代,线上预约已成为各行各业不可或缺的一部分。为满足广大企业和个人对在线预约系统的需求,我们特别推出了这款“万能自定义预约小程序源码系统”。该系统以其高度的灵活性和可扩展性,为各行各业提供了完美的在线预约…

vue+fineReport 使用前端搜索+报表显示数据

--fineReprot 将需要搜索的参数添加到模版参数 sql: --前端传递参数 注:因为每次点击搜索的结果需要不一样,还要传递一个时间戳的参数: let timesamp new Date().getTime()

Python爬取中国天气网天气数据.

一、主题式网络爬虫设计方案 1.主题式网络爬虫名称 名称:Python爬取中国天气网天气数据 2.主题式网络爬虫爬取的内容与数据特征分析 本次爬虫主要爬取中国天气网天气数据 3.主题式网络爬虫设计方案概述(包括实现思路与技术难点) reques…

2023年第十四届蓝桥杯JavaB组省赛真题及全部解析(上)

目录 前言: 一、试题 A:阶乘求和(填空) 二、试题 B:幸运数字(填空) 三、试题 C:数组分割 四、试题 D:矩阵总面积 五、试题 E:蜗牛 六、试题 F&#xff…

Appium+python自动化(二十九)- 模拟手指在手机上多线多点作战 - 多点触控(超详解)

简介 在网页中我们经常使用缩放操作来便利的查看具体的信息,在appium中使用MultiAction多点触控的类来实现。MultiAction是多点触控的类,可以模拟用户多点操作。主要包含加载add()和执行perform()两个方法. 问题思考 在使用地图App中,我们…

PPT怎么录制视频?这里有你想要的答案!

“有人知道ppt怎么录制视频吗?我正在准备一个关于新产品功能介绍的演示文稿,希望能将我的ppt转化为一个专业且生动的视频讲解。我尝试了一些方法,但不知道从哪里开始。有没有哪位朋友能分享一下自己录制ppt视频的经验吗?” 在数字…

问题解决:python安装依赖时网络问题报错

进行 pip install 时,安装轮子访问过慢而造成安装失败,有时候配置镜像源仍会出现莫名其妙的问题,包括网络代理问题等。看了一些解决方案,找出了一个最适合的方式,如下所示: pip install -i https://pypi.t…

React小记(五)_Hooks入门到进阶

React 16.8 版本 类组件 和 函数组件 两种组件共存,到目前 React 18 版本,官方已经不在推荐使用类组件,在函数组件中 hooks 是必不可少的,它允许我们函数组件像类组件一样可以使用组件的状态,并模拟组件的生命周期等一…

Eclipse代码编辑器自主配色

1. 打开 Eclipse 的设置 - Java - Editor - Syntax Coloring 2. 自定义各种类型的颜色,例如: 1. Interface 勾选,设置为紫色 2. Class 勾选,设置为淡蓝色 3. Abstract classes 勾选,有自己默认的颜色 …