掌握 Scikit-Learn: Python 中的机器学习库入门

news2024/11/25 1:28:31

机器学习 第二课 Sklearn 入门

  • 概述
  • 机器学习与 Python 的完美结合
  • Scikit-Learn 的核心组件与结构
    • 安装与配置
    • 验证安装
  • 数据表示与预处理
    • 特征矩阵和目标向量
    • 数据处理
  • 估计器
  • 模型的选择
    • 思考问题的本质
    • 研究数据的分布
    • 判断任务的复杂性
    • 分类问题
    • 回归问题
  • 监督学习
    • 分类算法
    • 回归算法
  • 无监督学习
  • 模型的评估
    • 训练集和验证集
    • 分类模型评估
    • 回归模型评估
  • 特征工程
    • 特征选择
    • 特征提取

概述

机器学习 (Machine Learning) 是一个近年来频繁出现在科技新闻, 研究报告, 行业分析和实际应用中的热门领域. 机器学习 (Machine Learning) 正以前所未有的速度影响着我们的生活. 从智能音响的语音识别, 手机摄像头的人脸解锁, 到金融领域的评估, 医疗健康的预测分析. 机器学习的应用早已渗透到生活的方方面面. 对于我们这些初学着来说, Scikit-Learn 是最好的选择.

掌握 Scikit-Learn

Scikit-Learn, 简称 Sklearn, 是 Python 的一个开源机器学习库, 自从诞生以来, 已经逐渐成为机器学习领域的标准库. Sklearn 提供了丰富的算法选择, 从基础的线性回归 (Linear Regression), 分类, 到高级的集成方法和模型优化, 几乎涵盖了机器学习的各个方面. 但更为重要的是, Scikit-Learn 的设计哲学为使用者提供了简答, 高效, 可靠的工具, 帮助我们来完成自己的任务.

今天小白我带大家来全面了解一下 Scikit-Learn 的基础, 从安装配置开始, 探讨其核心组件, 估计器, 模型训练与评估, 再到实际应用案例, 我们将逐步探索这个强大的库. 希望在文章的结尾, 读者可以具备食用 Scikit-Learn 解决实际问题的能力.

机器学习与 Python 的完美结合

我们先来探讨一个问题: 为什么要选择 Python 作为机器学习的编程语言? 这个问题的答案可以从多个角度来看. 首先, Python 是一种通用的高级编程语言, 语法简洁明了, 适合初学着学习. 此外, Python 有着丰富的开源库和框架, 涵盖了从数据分析, 可视化到深度学习的各个方面, 这使得 Python 在数据科学和机器学习领域占据了显著的优势.

其次, Python 的社区活跃, 有着大量的在线资源, 教程和案例, 这为我们提供了宝贵的学习资料. 不仅如此, Python 的跨平台特性使得开发者可以在不同的操作系统上轻松的部署和运行自己的程序.

那么, 为何选择 Scikit-Learn 作为 Python 中的机器学习库? 与其他库相比, Scikit-Learn 有着明确的优势. 首先, 它的 API 设计统一, 清晰, 无论是数据预处理, 模型训练还是评估, 用户都可以用几行简短的代码完成. 此外 Scikit-Learn 的文档齐全, 为我们提供了大量的实例和指导, 大大降低了学习的难度. 最后, Scikit-Learn 是一个纯 Python 实现的库, 意味着我们无语安装大量复杂的以来或担心其他库的兼容性问题.

Scikit-Learn 的核心组件与结构

安装与配置

Scikit-Learn 依赖于 Numpy 和 SciPy, 两个为 Python 提供科学计算功能的库. 因此, 在安装 Scikit-Learn, 去报已经安装了这两个库.

安装 Scikit-Learn:

pip install scikit-learn

conda:

conda install scikit-learn

验证安装

查看是否安装成功:

import sklearn

print(sklearn.__version__)

数据表示与预处理

在 Scikit-Learn 中, 数据同城为 Numpy 数组或特征矩阵. 其中样本是矩阵的行, 特征是矩阵的列.

特征矩阵和目标向量

特征矩阵:

  • 通常表示为 “X”, 形状为 “[n_samples, n_features”
    目标向量
  • 当处理监督学习问题时, 我们还会有一个不妙 (或标签) 数组, 通常表示为 ‘y’

数据处理

Scikit-Learn 提供了多种实用工具, 帮助我们对数据进行预处理:

  • 缩放: 如 “StandardScaler”, 帮助我们对数据进行标准化
  • 编码: 如 “OneHotEncoder”, 将分类特征转换为数字
  • 填充: 使用 “SimpleImputer”, 处理缺失数据

估计器

Scikit-Learn 的估计器 (Estimator) 为不同的机器学习应用提供了一致的界面.

核心概念如下:

  • 估计器 (Estimator): 所有算法的实现都是估计器, 例如, 线性回归是一个估计器, k 近邻也是一个估计器
  • 转换器 (Transformer): 可以对数据进行某种转化的估计器
  • 预测期 (Predictor): 可以根据输入数据进行预测的估计器

基本步骤包括:

  1. 选择一个模型, 导入相应的估计器类
  2. 选择模型参数, 实例化类, 设置超参数值
  3. 整理数据, 通过特征矩阵和目标向量组织
  4. 调用估计器的fit()方法训练模型
  5. 使用predict()方法进行预测

例子:

"""
@Module Name: Scikit-Learn 估计器.py
@Author: CSDN@我是小白呀
@Date: October 15, 2023

Description:
Scikit-Learn 估计器
"""
from sklearn.linear_model import LinearRegression

# 创建数据
X = [[1], [2], [3]]
y = [2, 4, 6]

# 实例化模型
model = LinearRegression()

# 训练模型
model.fit(X, y)

# 预测
predict = model.predict([[4]])
print("预测结果:", predict)

输出结果:

预测结果: [8.]

模型的选择

在机器学习中, 模型的选择是最关键的步骤之一. 一个恰当的模型可以大大提高预测的准确性, 而不合适的模型可能导致预测结果严重偏离我们想要的结果.

所以, 在选择模型之前, 我们要先明确我们要解决的问题, 机器学习的问题主要分为两大类, 分类问题 (Classification) 和回归问题 (Regression).

思考问题的本质

在选择模型之前, 我们先要明确问题的本质. 有些问题可能乍看是分类问题, 但实际上使用回归模型更为合适. 例如: 预测学生期末考试及格率可以视为一个分类问题 (及格 / 不及格), 但其实我们使用回归模型来预测分数能得到更好的效果.

研究数据的分布

数据分布 (Data Distribution) 和特征 (Feature) 对模型的选择也至关重要, 不同的模型对不同的数据表现也不一样. 举个例子, 对于分布不平衡的分类数据 (某些类数据量远大于别的类), 我们需要通上采样 (Up-Sampling) 或下采样 (Sub-Sampling) 来处理不平衡的数据类型.

判断任务的复杂性

问题的复杂性也是一个需要考虑的重要因素. 简单的线性模型, 如线性回归或逻辑回归, 可能适用于线性可分的问题. 但对于更复杂, 非线性的问题, 可能需要使用决策树 (Decision Tree), 随机森林 (Random Forest) 等复杂模型.

线性 (Linear) vs 非线性 (Non-Linear):

  • 线性 (Linear):
    • 线性关系是指两个或多个变量 (Variable) 之间的关系为线性关系
    • 线性关系在数学中可以以 y = w x + b y=wx + b y=wx+b 其中 w 为权重 (Weight), b 为偏差 (Bias)
    • 在线性系统中, 输入和输出的关系是成比例的
  • 非线性 (Non-Linear):
    • 非线性是指变量之间的关系为非线性, 比如曲线
    • 非线性方程包括, 多项式, 指数, 对数
    • 在非线性系统, 输入和输出之间的关系是复杂的

分类问题

分类问题 (Classification) 指的是预测的输出变量为类别, 例如判断一个电影的类型, 物体是猫还是狗.

分类问题的机器学习模型有:

  • 线性模型: 逻辑回归 (Logistic Regression)
  • 非线性模型: k-近邻 (KNN), 决策树 (Decision Tree), 支持向量机 (SVM)

回归问题

回归问题 (Regression) 是指预测的输出变量是连续的值, 例如票房预测, 房价预测等等.

回归问题的机器学习模型有:

  • 线性模型: 线性回归 (Linear Regression)
  • 非线性模型: 决策树回归 (Decision Tree Regressor), 随机森林 (Random Forest)

监督学习

监督学习 (Supervised Learning) 是机器学习的一个核心分支, 目标是从带标签 (Label) 的数据中学习一个模型, 并预测未知数据的标签.

分类算法

逻辑回归 (Logistic Regression): 尽管名称中有 “回归”, 但是逻辑回归模型是一个分类模型, 主要用于二分类 (Binary Classification) 问题. 逻辑回归通过 Sigmoid 函数, 输出一个概率值, 从而为输入样本分类.

例子:

from sklearn.linear_model import LogisticRegression

clf = LogisticRegression()
clf.fit(X_train, y_train)

决策树 (Decision Tree): 图像话的算法, 易于理解和解释, 可以用于分类和回归任务.

例子:

from sklearn.tree import DecisionTreeClassifier

tree = DecisionTreeClassifier()
tree.fit(X_train, y_train)

回归算法

线性回归 (Linear Regression): 在数据中找到最佳拟合直线. 预测一个连续的输出.

例子:

from sklearn.linear_model import LinearRegression

reg = LinearRegression()
reg.fit(X_train, y_train)

支持向量回归 (SVR, Support Vector Regression): 使用支持向量机来执行回归.

例子:

from sklearn.svm import SVR

svr = SVR()
svr.fit(X_train, y_train)

无监督学习

无监督学习 (Unsupervised Learning) 与监督学习不同, 无监督学习是从未标签的数据中寻找模式.

K-均值 (K-Means): 将数据划分为 k 个集群.

例子:

from sklearn.cluster import KMeans

kmeans = KMeans(n_clusters=3)
kmeans.fit(X)

主成分分析 (PCA): 减少数据的维数, 同时尝试保留尽可能多的信息.

例子:

from sklearn.decomposition import PCA

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

网络搜索 (Grid Search): 系统地遍历各种参数组合, 通过交叉验证确定最小效果参数.

例子:

from sklearn.model_selection import GridSearchCV

param_grid = {'C': [0.1, 1, 10], 'gamma': [1, 0.1, 0.01]}
grid = GridSearchCV(SVR(), param_grid, refit=True)
grid.fit(X_train, y_train)

随机搜索 (Randomized Search): 与 Grid Search 类似, 但不尝试所有参数, 二手随机抽样给定数量的参数组合.

模型的评估

在机器学习的过程中, 选择合适的模型至关重要. 同样, 评估模型的性能才能了解模型是否达到了我们的预期, 以避免欠拟合和过拟合问题.

训练集和验证集

为了评估模型的效果, 我们需要有一个基准. 所以我们需要分割训练集和测试集. 训练集用于训练模型 (Train), 留出一部分数据用于测试模型, 也就是验证集 (Valid), 而不是将所有的数据训练模型.

分类模型评估

混淆矩阵 (Confusion Matrix): 表现模型的真实值与预测值之间的关系, 包括真正例, 负正例, 假整例, 和假负例.

例子:

from sklearn.metrics import confusion_matrix

y_pred = clf.predict(X_test)
matrix = confusion_matrix(y_test, y_pred)
print(matrix)

准确率 (Accuracy), 召回率 (Recall), F1 (F1-score): 评估分类器的不同方面, 包括其准确性, 覆盖范围和平衡性.

例子:

from sklearn.metrics import classification_report

report = classification_report(y_test, y_pred)
print(report)

回归模型评估

均方误差 (MSE, Mean Square Error): 衡量模型预测的准确性.

例子:

from sklearn.metrics import mean_squared_error

mse = mean_squared_error(y_test, y_pred)
print(mse)

R^2 分数 (R-squared Score): 衡量模型解释变量的能力, 值越接近 1 越好.

例子:

from sklearn.metrics import r2_score

r2 = r2_score(y_test, y_pred)
print(r2)

交叉验证 (Cross-Validation) 将数据分为多个子集, 然后对每个子集进行多次的训练 / 测试分割. 例如, 常见的 k-折叠 (k-Fold) 交叉验证方法会将数据分为 k 个子集. 在每次的验证中, 其中一个子集被用作验证集, 其他的子集则被用作训练集. 这样我们就能得到 k 个不同的模型性能评估, 这些评估的平均值可以提供更准确的模型性能评估.

例子:

"""
@Module Name: 模型的评估.py
@Author: CSDN@我是小白呀
@Date: October 16, 2023

Description:
模型的评估
"""
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, cross_val_score, KFold
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, recall_score, f1_score

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

# 实例化随机森林
clf = RandomForestClassifier(n_estimators=50, random_state=42)

# 分割训练集 & 验证集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 使用 KFold 进行5折交叉验证
kf = KFold(n_splits=5, shuffle=True, random_state=42)
scores = cross_val_score(clf, X, y, cv=kf)
print("交叉验证平均得分:", scores.mean())

# 训练模型
clf.fit(X_train, y_train)

# 评估指标
y_pred = clf.predict(X_test)
print("精度:", accuracy_score(y_test, y_pred))
print("召回率:", recall_score(y_test, y_pred, average='macro'))  # 多分类问题使用宏平均
print("F1分数:", f1_score(y_test, y_pred, average='macro'))  # 多分类问题使用宏平均

输出结果:

交叉验证平均得分: 0.9600000000000002
精度: 1.0
召回率: 1.0
F1分数: 1.0

特征工程

特征工程 (Feature Engineering) 是机器学习中的关键步骤. 我们通过创建和选择合适的特征, 模型的性能可以得到大幅提升.

特征选择

特征选择 (Feature Selection) 是选择与目标变量相关的特征的过程, 同时剔除不相关或冗余的特征.

特征选择的好处有:

  1. 减少模型的复杂性
  2. 降低过拟合的风险
  3. 提高模型训练速度

举个例子:
假设我们有一个预测房价的数据集, 其中包含了很多特征,如房间数, 地理位置, 建筑年份, 是否靠近地铁站等. 但是, 其中可能还包含了一些不太相关的特征, 如房东的姓名, 是否有游泳池等. 通过特征选择, 我们可以只选择与房价最相关的特征来训练模型.

代码:

"""
@Module Name: 特征选择.py
@Author: CSDN@我是小白呀
@Date: October 16, 2023

Description:
通过波士顿房价数据集, 说明特征选择
"""
import numpy as np
import pandas as pd
from sklearn.datasets import load_boston
from sklearn.feature_selection import SelectKBest, f_regression

# 使用 Boston 房价数据集作为示例
data = load_boston()
df = pd.DataFrame(data.data, columns=data.feature_names)
df['PRICE'] = data.target

# 假设我们增加了一些不相关的特征
df['LANDLORD_NAME'] = np.random.choice(['Alice', 'Bob', 'Charlie'], df.shape[0])
df['HAS_POOL'] = np.random.choice([0, 1], df.shape[0])

# 将分类特征转化为数字
df['LANDLORD_NAME'] = df['LANDLORD_NAME'].astype('category').cat.codes

# 分割数据
X = df.drop('PRICE', axis=1)
y = df['PRICE']

# 使用 SelectKBest 进行特征选择
# 为了确定与房价最相关的特征, 我们可以使用f _regression 作为评分函数
selector = SelectKBest(score_func=f_regression, k=2)
X_new = selector.fit_transform(X, y)

# 打印被选中的特征
selected_features = pd.DataFrame(selector.inverse_transform(X_new),
                                 columns=X.columns)
selected_columns = selected_features.columns[selected_features.var() != 0]
print('选择的特征:', selected_columns)

输出结果:

选择的特征: Index(['RM', 'LSTAT'], dtype='object')

特征提取

特征提取 (Feature Extraction) 是将原始数据转换为一组代表性的, 较少的特征. 与特征选择不同, 特征提取创建成新的特征. 主要成分分析 (PCA) 是一种常用特征提取方法.

例子:

"""
@Module Name: 特征提取.py
@Author: CSDN@我是小白呀
@Date: October 16, 2023

Description:
人脸识别数据集, 说明特征提取
"""
from sklearn.datasets import fetch_lfw_people
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

# 加载人脸数据集
lfw_people = fetch_lfw_people(min_faces_per_person=70, resize=0.4)
X = lfw_people.data
n_samples, n_features = X.shape

# 原始图像的维度
h, w = lfw_people.images.shape[1:3]

# PCA 转换, 提取 150 个主要成分
n_components = 150
pca = PCA(n_components=n_components, whiten=True).fit(X)
X_pca = pca.transform(X)

# 可视化主要成分的效果
def plot_gallery(images, titles, h, w, n_row=5, n_col=5):
    plt.figure(figsize=(1.8 * n_col, 2.4 * n_row))
    plt.subplots_adjust(bottom=0, left=.01, right=.99, top=.90, hspace=.35)
    for i in range(n_row * n_col):
        plt.subplot(n_row, n_col, i + 1)
        plt.imshow(images[i].reshape((h, w)), cmap=plt.cm.gray)
        plt.title(titles[i], size=12)
        plt.xticks(())
        plt.yticks(())

eigenfaces = pca.components_.reshape((n_components, h, w))
eigenface_titles = ["eigenface %d" % i for i in range(eigenfaces.shape[0])]
plot_gallery(eigenfaces, eigenface_titles, h, w)

# 绘图
plt.show()

输出结果:
PCA

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

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

相关文章

微信小程序引入阿里巴巴iconfont图标并使用

介绍 在小程序里,使用阿里巴巴的图标,如下所示: 使用方式 搜索自己需要的图标,然后将需要用到的图标加入购物车,如下图所示: 去右上角,点击购物车按钮;这里第一次使用,会有三个提…

华为云云耀云服务器L实例评测|从零快速搭建个人博客指南

文章目录 1. 云耀云服务器L实例特点2. 云耀云服务器L实例购买3. 博客系统搭建3.1. 安装 Docker3.2 Halo 搭建 4. 防火墙配置5. 浏览器访问 1. 云耀云服务器L实例特点 智能不卡顿 瑶光AI智能调度与新一代网络技术,软硬实力驱动性能倍增,成就更流畅、稳定的…

数据结构:链表(2),链表面试题

203. 移除链表元素 - 力扣(LeetCode) 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出…

Web自动化测试-PO模式实战详解

PO模式 Page Object(简称PO)模式,是Selenium实战中最为流行,并且是自动化测试中最为熟悉和推崇的一种设计模式。在设计自动化测试时,把页面元素和元素的操作方法按照页面抽象出来,分离成一定的对象,然后再进行组织。 …

NI GPIB-140A 使用缓冲传输技术 边缘人工智能

NI GPIB-140A 使用缓冲传输技术 边缘人工智能 GPIB总线扩展器—GPI b-140 a可以将GPIB系统的电缆长度延长一千米,而不会影响GPIB的完整性,也不需要修改软件。该配件使用缓冲传输技术,以高达1.1 Mb/s (IEEE 488.1)或2.8 Mb/s (HS488)的速率传…

初识C++入门(1)

为什么会衍生出C? C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机,20世纪80年代,计算机界提出…

安科瑞预付费系统在某大型连锁农贸市场的设计应用

安科瑞 崔丽洁 摘要 本远程预付费管理系统采用智能远程预付费电表(DTSY1352-NK/DDSY1352-NK系列),NB智能远传水表,采集各商户实时用电量、用电量总数,通过平台定时结算,结算账户余额,从而进行智…

资深IC工程师的快速学习指南《Verilog语言知识学习快速基础学习》

Verilog语言是一种硬件描述语言(HDL),广泛用于数字集成电路(IC)设计和硬件描述。对于IC行业的初学者来说,掌握Verilog语言是非常重要的,因为它是设计和仿真IC电路的基础。之前也分享过很多Veril…

调用Open3d接口报错:E0282 全局范围没有 “localeconv“及E0070 不允许使用不完整的类型

Open3D已经编译好,在新建一个C工程测试接口的时候出现了以下报错 严重性 代码 说明 项目 文件 行 禁止显示状态 错误(活动) E0070 不允许使用不完整的类型 EnvTest F:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\incl…

如何使PoE交换机连接稳定?

随着PoweroverEthernet(PoE)技术的不断发展,PoE交换机已经处于非常成熟的阶段。然而,由于目前监控市场受到成本压力的影响,一些采用PoE供电的项目可能会选用品质较低的PoE交换机或线材,或者设计方案本身不合…

MQTT整合

MQTT整合 MQTT服务器软件筛选MQTT服务器软件mosquitto下载修改mosquitto配置,并启动mosquitto服务利用mosquitto工具测试订阅与发布可视化MQTT客户端工具MQTTX使用SpringBoot整合MQTT1.2.3.4.5.6.MQTT服务器软件筛选 MQ遥测传输(MQTT)是轻量级基于代理的发布/订阅的消息传输…

如何正确维护实验室超声波清洗器?

实验室一直被视为一个严谨而严肃的场所,实验应遵循一定的步骤,使用的设备也经历了详细的选择,如实验室超声波清洗机,其特点远强于一般类型的清洗机。专门负责采购的实验室人员一般对优质服务的实验室超声波清洗机印象深刻&#xf…

电力物联网关智能通讯管理机-安科瑞黄安南

众所周知,网关应用于各种行业的终端设备的数据采集与数据分析,然后去实现设备的监测、控制、计算,为系统与设备之间建立通讯联系,达到双向的数据通讯。 网关可以实时监测并及时发现异常数据,同时自身根据用户规则进行…

安科瑞ASCB1智能漏电断路器监测漏电和漏电保护

安科瑞虞佳豪壹捌柒陆壹伍玖玖零玖叁 ASCB1系列一体式智慧空开,空开自带4G、WIFI、以太网等多种通讯方式,可选本地显示,集成保护、控制、计量等多种功能。广泛用于老旧社区改造、九小场所、学校宿舍、公寓、铁塔基站、路灯、充电桩等。

文献阅读快速法-ChatPDF

如题,直接提供给大家一款能够快速阅读文档的好工具——iTextMaster。 iTextMaster是一款免费的pdf阅读浏览器,上传pdf文档后等待几秒钟,AI就会自动反馈给用户关于文档的摘要总结。十分的方便且实用。 ChatPDF为您提供简洁的文档摘要。对于那…

数据库管理-第110期 Oracle Exadata 01(20231016)

数据库管理-第110期 Oracle Exadata 01(202301016) 今天开始一个新的系列,讲讲Oracle Exadata,将用若干期并关联之前和一体机相关的一些内容对Exadata进行讲解。本期是Oracle硬件的介绍。 1. Oracle Hardware and Engineered Sy…

STM32 看门狗(WDG)

STM32 看门狗(WDG) WDG简介 WDG(Watchdog)看门狗 在程序卡死的情况下,自动帮我们复位 简单来说就是程序运行的一个保障措施,我们得在程序中定期地进行喂狗,如果程序出问题卡死了,没…

存在已打开的MicrosoftEdge浏览器,无法执行安装

存在问题:UiBot Creator 安装Chrome扩展时,存在已打开的MicrosoftEdge浏览器,无法执行安装。 解决办法: 打开MicrosoftEdge浏览器,然后在浏览器页面右上角打开“…”图标 第二步,打开“…”图标之后&…

多关键词高亮显示

引入关键词文件&#xff0c;符合有条件的背景色高亮显示&#xff0c;也可取消。 <div id"testHtml"><p>写入的文本</p><p>关键词</p></div> var str 多个关键词&#xff0c;关键词文件&#xff0c;关键词 var strL str.replac…

批量修改视频尺寸:简单易用的视频剪辑软件教程

如果你需要批量修改视频尺寸&#xff0c;同时保持高质量的画质&#xff0c;那么“固乔剪辑助手”这款软件是你的不二之选。下面就是如何使用这款软件进行批量修改视频尺寸的详细步骤。 1. 首先&#xff0c;你需要在浏览器中进入“固乔科技”的官网&#xff0c;然后下载并安装“…