spark mllib 特征学习笔记 (一)

PySpark MLlib 特征处理详解

PySpark MLlib 提供了丰富的特征处理工具,帮助我们进行特征提取、转换和选择。以下是 PySpark MLlib 中常用的特征处理类及其简要介绍。

1. Binarizer

Binarizer 是将连续特征二值化的转换器。

from pyspark.ml.feature import Binarizer

binarizer = Binarizer(threshold=0.5, inputCol="feature", outputCol="binarized_feature")
binarizedData = binarizer.transform(data)

2. BucketedRandomProjectionLSH

BucketedRandomProjectionLSH 是基于欧几里得距离度量的 LSH 类。

from pyspark.ml.feature import BucketedRandomProjectionLSH

brp = BucketedRandomProjectionLSH(inputCol="features", outputCol="hashes", bucketLength=2.0)
model = brp.fit(data)
transformedData = model.transform(data)

3. Bucketizer

Bucketizer 将连续特征映射到特征桶。

from pyspark.ml.feature import Bucketizer

splits = [-float("inf"), 0.0, float("inf")]
bucketizer = Bucketizer(splits=splits, inputCol="feature", outputCol="bucketed_feature")
bucketedData = bucketizer.transform(data)

4. ChiSqSelector

ChiSqSelector 是卡方特征选择器,选择预测分类标签的分类特征。

from pyspark.ml.feature import ChiSqSelector

selector = ChiSqSelector(numTopFeatures=50, featuresCol="features", labelCol="label", outputCol="selected_features")
result = selector.fit(data).transform(data)

5. CountVectorizer

CountVectorizer 从文档集合中提取词汇,并生成 CountVectorizerModel。

from pyspark.ml.feature import CountVectorizer

cv = CountVectorizer(inputCol="text", outputCol="features", vocabSize=10000, minDF=5)
model = cv.fit(data)
vectorizedData = model.transform(data)

6. DCT

DCT 是对实数向量进行一维离散余弦变换的特征转换器。

from pyspark.ml.feature import DCT

dct = DCT(inverse=False, inputCol="features", outputCol="dct_features")
dctData = dct.transform(data)

7. ElementwiseProduct

ElementwiseProduct 对每个输入向量与提供的“权重”向量进行 Hadamard 乘积(即逐元素乘积)。

from pyspark.ml.feature import ElementwiseProduct
from pyspark.ml.linalg import Vectors

scalingVec = Vectors.dense([0.0, 1.0, 2.0])
transformer = ElementwiseProduct(scalingVec=scalingVec, inputCol="features", outputCol="scaled_features")
scaledData = transformer.transform(data)

8. FeatureHasher

FeatureHasher 将一组分类或数值特征投影到指定维度的特征向量中。

from pyspark.ml.feature import FeatureHasher

hasher = FeatureHasher(inputCols=["cat1", "cat2", "num1"], outputCol="features")
hashedData = hasher.transform(data)

9. HashingTF

HashingTF 使用哈希技巧将词序列映射到它们的词频。

from pyspark.ml.feature import HashingTF

hashingTF = HashingTF(inputCol="text", outputCol="features", numFeatures=10000)
tfData = hashingTF.transform(data)

10. IDF

IDF 计算文档集合的逆文档频率(IDF)。

from pyspark.ml.feature import IDF

idf = IDF(inputCol="raw_features", outputCol="features", minDocFreq=5)
model = idf.fit(tfData)
tfidfData = model.transform(tfData)

11. Imputer

Imputer 使用列中的均值、中位数或众数来填补缺失值。

from pyspark.ml.feature import Imputer

imputer = Imputer(inputCols=["feature1", "feature2"], outputCols=["imputed_feature1", "imputed_feature2"])
model = imputer.fit(data)
imputedData = model.transform(data)

12. IndexToString

IndexToString 将索引列映射回相应的字符串值列。

from pyspark.ml.feature import IndexToString

converter = IndexToString(inputCol="index", outputCol="string", labels=["a", "b", "c"])
convertedData = converter.transform(data)

13. Interaction

Interaction 实现特征交互转换。

from pyspark.ml.feature import Interaction

interaction = Interaction(inputCols=["col1", "col2"], outputCol="interacted_col")
interactedData = interaction.transform(data)

14. MaxAbsScaler

MaxAbsScaler 通过除以每个特征的最大绝对值来单独缩放每个特征到范围 [-1, 1]。

from pyspark.ml.feature import MaxAbsScaler

scaler = MaxAbsScaler(inputCol="features", outputCol="scaled_features")
model = scaler.fit(data)
scaledData = model.transform(data)

15. MinHashLSH

MinHashLSH 是基于 Jaccard 距离的 LSH 类。

from pyspark.ml.feature import MinHashLSH

mh = MinHashLSH(inputCol="features", outputCol="hashes", numHashTables=3)
model = mh.fit(data)
transformedData = model.transform(data)

16. MinMaxScaler

MinMaxScaler 使用列摘要统计数据,将每个特征单独线性缩放到 [min, max] 范围内,也称为最小-最大归一化或重缩放。

from pyspark.ml.feature import MinMaxScaler

scaler = MinMaxScaler(inputCol="features", outputCol="scaled_features")
model = scaler.fit(data)
scaledData = model.transform(data)

17. NGram

NGram 是一个特征转换器,它将输入的字符串数组转换为 n-grams 数组。

from pyspark.ml.feature import NGram

ngram = NGram(n=2, inputCol="words", outputCol="ngrams")
ngramData = ngram.transform(data)

18. Normalizer

Normalizer 使用给定的 p-范数将向量规范化为单位范数。

from pyspark.ml.feature import Normalizer

normalizer = Normalizer(p=1.0, inputCol="features", outputCol="norm_features")
normData = normalizer.transform(data)

19. OneHotEncoder

OneHotEncoder 将分类索引列映射到二进制向量列。

from pyspark.ml.feature import OneHotEncoder

encoder = OneHotEncoder(inputCol="index", outputCol="onehot")
encodedData = encoder.transform(data)

20. PCA

PCA 训练一个模型,将向量投影到前 k 个主成分的低维空间中。

from pyspark.ml.feature import PCA

pca = PCA(k=3, inputCol="features", outputCol="pca_features")
model = pca.fit(data)
pcaData = model.transform(data)

21. PolynomialExpansion

PolynomialExpansion 在多项式空间中进行特征扩展。

from pyspark.ml.feature import PolynomialExpansion

polyExpansion = PolynomialExpansion(degree=2, inputCol="features", outputCol="poly_features")
polyData = polyExpansion.transform(data)

22. QuantileDiscretizer

QuantileDiscretizer 将连续特征列离散化为分类特征列。

from pyspark.ml.feature import QuantileDiscretizer

discretizer = QuantileDiscretizer(numBuckets=3, inputCol="feature", outputCol="bucketed_feature")
bucketedData = discretizer.fit(data).transform(data)

23. RobustScaler

RobustScaler 移除中位数并根据四分位范围缩放数据。

from pyspark.ml.feature import RobustScaler

scaler = RobustScaler(inputCol="features", outputCol="scaled_features")
model = scaler.fit(data)
scaledData = model.transform(data)

24. RegexTokenizer

RegexTokenizer 是一个基于正则表达式的分词器,可以使用提供的正则表达式模式(默认为分隔模式)提取标记,或反复匹配正则表达式(如果 gaps 为 false)。

from pyspark.ml.feature import RegexTokenizer

tokenizer = RegexTokenizer(inputCol="text", outputCol="words", pattern="\\W")
tokenizedData = tokenizer.transform(data)

25. RFormula

RFormula 实现了对数据集进行拟合所需的转换,使用 R 模型公式。



from pyspark.ml.feature import RFormula

formula = RFormula(formula="y ~ x1 + x2", featuresCol="features", labelCol="label")
formulaData = formula.fit(data).transform(data)

26. SQLTransformer

SQLTransformer 实现了由 SQL 语句定义的转换。

from pyspark.ml.feature import SQLTransformer

sqlTrans = SQLTransformer(statement="SELECT *, (col1 + col2) AS new_col FROM __THIS__")
transformedData = sqlTrans.transform(data)

27. StandardScaler

StandardScaler 使用训练集中的样本列摘要统计数据,通过去均值和按单位方差缩放来标准化特征。

from pyspark.ml.feature import StandardScaler

scaler = StandardScaler(inputCol="features", outputCol="scaled_features", withMean=True, withStd=True)
model = scaler.fit(data)
scaledData = model.transform(data)

28. StopWordsRemover

StopWordsRemover 是一个特征转换器,用于从输入中过滤停用词。

from pyspark.ml.feature import StopWordsRemover

remover = StopWordsRemover(inputCol="raw", outputCol="filtered")
filteredData = remover.transform(data)

29. StringIndexer

StringIndexer 是一个标签索引器,将字符串标签列映射到标签索引列。

from pyspark.ml.feature import StringIndexer

indexer = StringIndexer(inputCol="category", outputCol="categoryIndex")
indexedData = indexer.fit(data).transform(data)

30. Tokenizer

Tokenizer 是一个分词器,将输入字符串转换为小写,然后按空格拆分。

from pyspark.ml.feature import Tokenizer

tokenizer = Tokenizer(inputCol="text", outputCol="words")
tokenizedData = tokenizer.transform(data)

31. UnivariateFeatureSelector

UnivariateFeatureSelector 基于单变量统计测试选择特征。

from pyspark.ml.feature import UnivariateFeatureSelector

selector = UnivariateFeatureSelector(featuresCol="features", labelCol="label", selectionMode="numTopFeatures", selectionThreshold=50)
selectedData = selector.fit(data).transform(data)

32. VarianceThresholdSelector

VarianceThresholdSelector 删除所有低方差特征的特征选择器。

from pyspark.ml.feature import VarianceThresholdSelector

selector = VarianceThresholdSelector(featuresCol="features", varianceThreshold=0.1, outputCol="selected_features")
selectedData = selector.fit(data).transform(data)

33. VectorAssembler

VectorAssembler 是一个特征转换器,将多个列合并为一个向量列。

from pyspark.ml.feature import VectorAssembler

assembler = VectorAssembler(inputCols=["col1", "col2", "col3"], outputCol="features")
assembledData = assembler.transform(data)

34. VectorIndexer

VectorIndexer 是用于对数据集中 Vector 的分类特征列进行索引的类。

from pyspark.ml.feature import VectorIndexer

indexer = VectorIndexer(inputCol="features", outputCol="indexed_features", maxCategories=10)
indexerModel = indexer.fit(data)
indexedData = indexerModel.transform(data)

35. VectorSizeHint

VectorSizeHint 是一个特征转换器,向向量列的元数据添加大小信息。

from pyspark.ml.feature import VectorSizeHint

sizeHint = VectorSizeHint(inputCol="features", size=3)
hintedData = sizeHint.transform(data)

36. VectorSlicer

VectorSlicer 是一个类,接收一个特征向量,并输出一个新的特征向量,其中包含原始特征的子数组。

from pyspark.ml.feature import VectorSlicer

slicer = VectorSlicer(inputCol="features", outputCol="sliced_features", indices=[1, 2])
slicedData = slicer.transform(data)

37. Word2Vec

Word2Vec 训练一个 Map(String, Vector) 的模型,即将字词映射到向量。

from pyspark.ml.feature import Word2Vec

word2Vec = Word2Vec(inputCol="text", outputCol="result", vectorSize=3, minCount=0)
model = word2Vec.fit(data)
resultData = model.transform(data)

以下是 PySpark MLlib 中部分特征处理方法的详细介绍,包括它们所基于的公式、适用的场景以及一些具体的应用案例。

1. Binarizer

公式
Binarizer ( x ) = { 1 if  x > threshold 0 otherwise \text{Binarizer}(x) = \begin{cases} 1 & \text{if } x > \text{threshold} \\ 0 & \text{otherwise} \end{cases} Binarizer(x)={10if x>thresholdotherwise

适用场景
用于将连续特征转换为二值特征,常用于分类问题中将数值特征转换为二进制特征。

案例

from pyspark.ml.feature import Binarizer

data = spark.createDataFrame([(0.1,), (0.8,), (0.5,)], ["feature"])
binarizer = Binarizer(threshold=0.5, inputCol="feature", outputCol="binarized_feature")
binarizedData = binarizer.transform(data)
binarizedData.show()

2. Bucketizer

公式
将连续特征分成离散的桶,例如使用指定的分割点将特征值分段:
Bucketizer ( x ) = { 0 if  x ≤ splits [ 1 ] 1 if splits [ 1 ] < x ≤ splits [ 2 ] ⋮ ⋮ N − 1 if  x > splits [ N − 1 ] \text{Bucketizer}(x) = \begin{cases} 0 & \text{if } x \leq \text{splits}[1] \\ 1 & \text{if } \text{splits}[1] < x \leq \text{splits}[2] \\ \vdots & \vdots \\ N-1 & \text{if } x > \text{splits}[N-1] \end{cases} Bucketizer(x)= 01N1if xsplits[1]if splits[1]<xsplits[2]if x>splits[N1]

适用场景
用于将连续特征转换为离散的分桶特征,常用于决策树等算法中。

案例

from pyspark.ml.feature import Bucketizer

data = spark.createDataFrame([(0.1,), (0.8,), (0.5,)], ["feature"])
splits = [-float("inf"), 0.5, float("inf")]
bucketizer = Bucketizer(splits=splits, inputCol="feature", outputCol="bucketed_feature")
bucketedData = bucketizer.transform(data)
bucketedData.show()

3. ChiSqSelector

公式
根据卡方检验的统计量选择特征:
χ 2 = ∑ ( O i − E i ) 2 E i \chi^2 = \sum \frac{(O_i - E_i)^2}{E_i} χ2=Ei(OiEi)2
其中 (O_i) 是观察频数,(E_i) 是期望频数。

适用场景
用于特征选择,特别是用于分类问题中的分类特征选择。

案例

from pyspark.ml.feature import ChiSqSelector
from pyspark.ml.linalg import Vectors

data = spark.createDataFrame([
    (Vectors.dense([0.0, 0.5, 0.5]), 1.0),
    (Vectors.dense([0.1, 0.8, 0.2]), 0.0),
    (Vectors.dense([0.2, 0.9, 0.1]), 0.0)
], ["features", "label"])

selector = ChiSqSelector(numTopFeatures=2, featuresCol="features", labelCol="label", outputCol="selected_features")
result = selector.fit(data).transform(data)
result.show()

4. CountVectorizer

公式
计算词汇表并生成词频向量:
CountVectorizer ( D ) = [ TF ( t 1 , D ) , TF ( t 2 , D ) , … , TF ( t n , D ) ] \text{CountVectorizer}(D) = [ \text{TF}(t_1, D), \text{TF}(t_2, D), \ldots, \text{TF}(t_n, D) ] CountVectorizer(D)=[TF(t1,D),TF(t2,D),,TF(tn,D)]
其中 (\text{TF}(t_i, D)) 是词 (t_i) 在文档 (D) 中的词频。

适用场景
用于文本数据的词频特征提取,常用于自然语言处理和文本分类任务。

案例

from pyspark.ml.feature import CountVectorizer

data = spark.createDataFrame([(0, "a b c".split(" ")), (1, "a b b c a".split(" "))], ["id", "words"])
cv = CountVectorizer(inputCol="words", outputCol="features", vocabSize=3, minDF=1)
model = cv.fit(data)
vectorizedData = model.transform(data)
vectorizedData.show()

5. DCT

公式
离散余弦变换 (DCT):
X k = ∑ n = 0 N − 1 x n cos ⁡ [ π N ( n + 1 2 ) k ] X_k = \sum_{n=0}^{N-1} x_n \cos \left[ \frac{\pi}{N} \left( n + \frac{1}{2} \right) k \right] Xk=n=0N1xncos[Nπ(n+21)k]

适用场景
用于信号处理中的特征转换,如图像处理和压缩。

案例

from pyspark.ml.feature import DCT
from pyspark.ml.linalg import Vectors

data = spark.createDataFrame([(Vectors.dense([0.0, 1.0, -2.0, 3.0]),)], ["features"])
dct = DCT(inverse=False, inputCol="features", outputCol="dct_features")
dctData = dct.transform(data)
dctData.show()

6. Imputer

公式
缺失值填充,使用均值、中位数或众数填充:
Imputer ( x ) = { x if  x ≠ NaN mean/median/mode ( X ) if  x = NaN \text{Imputer}(x) = \begin{cases} x & \text{if } x \neq \text{NaN} \\ \text{mean/median/mode}(X) & \text{if } x = \text{NaN} \end{cases} Imputer(x)={xmean/median/mode(X)if x=NaNif x=NaN

适用场景
用于处理数据集中的缺失值。

案例

from pyspark.ml.feature import Imputer

data = spark.createDataFrame([(1.0, float("nan")), (2.0, 3.0), (float("nan"), 4.0)], ["a", "b"])
imputer = Imputer(inputCols=["a", "b"], outputCols=["imputed_a", "imputed_b"])
model = imputer.fit(data)
imputedData = model.transform(data)
imputedData.show()

7. OneHotEncoder

公式
将分类特征转换为独热编码向量:
OneHotEncoder ( x ) = [ 0 , … , 1 , … , 0 ] \text{OneHotEncoder}(x) = [0, \ldots, 1, \ldots, 0] OneHotEncoder(x)=[0,,1,,0]
其中1出现在类别索引位置。

适用场景
用于将分类特征转换为机器学习算法可以直接使用的数值特征。

案例

from pyspark.ml.feature import OneHotEncoder, StringIndexer

data = spark.createDataFrame([("a",), ("b",), ("a",)], ["category"])
indexer = StringIndexer(inputCol="category", outputCol="categoryIndex")
indexed = indexer.fit(data).transform(data)
encoder = OneHotEncoder(inputCol="categoryIndex", outputCol="categoryVec")
encoded = encoder.fit(indexed).transform(indexed)
encoded.show()

8. PCA

公式
主成分分析 (PCA):
X = T P T \mathbf{X} = \mathbf{T} \mathbf{P}^T X=TPT
其中 (\mathbf{T}) 是得分矩阵,(\mathbf{P}) 是载荷矩阵。

适用场景
用于降维,提取主要特征,减少数据集的维度。

案例

from pyspark.ml.feature import PCA
from pyspark.ml.linalg import Vectors

data = spark.createDataFrame([(Vectors.dense([1.0, 0.0, 0.0]),), (Vectors.dense([0.0, 1.0, 0.0]),), (Vectors.dense([0.0, 0.0, 1.0]),)], ["features"])
pca = PCA(k=2, inputCol="features", outputCol="pca_features")
model = pca.fit(data)
pcaData = model.transform(data)
pcaData.show()

9. StandardScaler

公式
标准化特征,去均值并按标准差缩放:
StandardScaler ( x ) = x − mean ( x ) std ( x ) \text{StandardScaler}(x) = \frac{x - \text{mean}(x)}{\text{std}(x)} StandardScaler(x)=std(x)xmean(x)

适用场景
用于特征标准化,使不同特征具有相同的尺度,适用于大多数机器学习算法。

案例

from pyspark.ml.feature import StandardScaler
from pyspark.ml.linalg import Vectors

data = spark.createDataFrame([(Vectors.dense([1.0, 0.1, -1.0]),), (Vectors.dense([2.0, 1.1, 1.0]),), (Vectors.dense([4.0, 10.1, 2.0]),)], ["features"])
scaler = StandardScaler(inputCol="features", outputCol="scaled_features", withMean=True, withStd=True)
model = scaler.fit(data)
scaledData = model.transform(data)
scaledData.show()
``
## 总结

PySpark MLlib 中的特征处理工具丰富且功能强大,可以帮助我们在数据预处理阶段完成各种特征工程任务。这些工具覆盖了特征的二值化、离散化、标准化、归一化、编码、转换、选择和生成等多个方面,是数据科学家和工程师进行机器学习模型训练的重要帮手。通过合理使用这些工具,可以极大提升模型的性能和效果。

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

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

相关文章

云计算【第一阶段(14)】Linux的目录和结构

一、Liunx目录结构 1.1、linux目录结构 linux目录结构是树形目录结构 根目录&#xff08;树根&#xff09; 所有分区&#xff0c;目录&#xff0c;文件等的位置起点整个树形目录结构中&#xff0c;使用独立的一个"/",表示 1.2、常见的子目录 必须知道 目录路径目…

xinput1_3.dll怎么安装,关于xinput1_3.dll的多种修复方法分享

在电脑使用过程中&#xff0c;我们可能会遇到一些错误提示&#xff0c;其中之一就是“找不到xinput1_3.dll”。那么&#xff0c;xinput13.dll到底是什么&#xff1f;为什么会出现找不到的情况&#xff1f;它对电脑有什么影响&#xff1f;本文将为您详细解析xinput1_3.dll的含义…

CPN Tools学习——从平面网构建分层 PN

1.先创建平面petri网 创建如下petri网&#xff1a; CPN ide创建petri网真的舒服很多&#xff0c;但是教程又是CPN Tools的&#xff0c;我的想法是看两个版本能不能互通&#xff0c;在前者创建&#xff0c;在后者运行学习。 新增定义&#xff1a; colset E unit with e; 但…

嘻嘻我是图床倒霉蛋

嘻嘻花了将近两个小时的时间配了一个小小的图床 手把手教你搭建阿里云图床(PicGoTypora阿里云OSS)&#xff0c;新手小白一看就会-阿里云开发者社区 (aliyun.com) 大体上按照这篇配置就好 七牛云因为测试域名30天到期,用自己的得备案,所以比较麻烦,建议直接上阿里云 我买了一…

JDBC常见的几种连接池使用(C3P0、Druid、HikariCP 、DBCP)

前言 数据库连接池负责分配、管理和释放数据库连接&#xff0c;它允许应用程序重复使用一个现有的数据库连接&#xff0c;而不是重新建立一个。连接池技术尽可能多地重用了消耗内存的资源&#xff0c;大大节省了内存。通过使用连接池&#xff0c;将大大提高程序运行效率。常用的…

数字孪生技术如何赋能智慧工厂

数字孪生技术为什么能在智慧工厂中发挥作用&#xff1f;随着工业4.0的推进和智能制造的普及&#xff0c;数字孪生技术成为智慧工厂的重要推动力。数字孪生是指在虚拟空间中创建一个与现实物理实体相对应的数字模型&#xff0c;通过实时数据交互和分析&#xff0c;实现对物理实体…

DAY24 回溯算法part01 77. 组合 216.组合总和III 17.电话号码的字母组合

理论基础 #什么是回溯法 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。 在二叉树系列中&#xff0c;我们已经不止一次&#xff0c;提到了回溯&#xff0c;例如二叉树&#xff1a;以为使用了递归&#xff0c;其实还隐藏着回溯 (opens new window)。 回溯是递…

Excel自定义排序和求和

概览 excel作为办公的常备工具&#xff0c;好记性不如烂笔头&#xff0c;在此梳理记录下&#xff0c;此篇文章主要是记录excel的自定义排序和求和 一. 自定义排序 举个例子 1. 填充自定义排序选项 实现步骤&#xff1a; 选定目标排序值&#xff1b;文件->选项->自定…

从0开始理解DevOps

目录 一、DevOps背景 二、DevOps介绍 DevOps 组成 三、Jenkins Jenkins 工作流程 四、云原生与DevOps 相信你一定听过 DevOps 这个词&#xff0c;那它到底是什么呢&#xff1f;为什么越来越多的互联网企业都在追随使用它&#xff1f;它与云原生有什么关系&#xff1f;本文将…

checkbox表单校验 至少选中一个Checkbox , 否则会报错

项目背景 : react ant 需求 : 需实现至少选中一个Checkbox , 否则会报错 需求如下 : 注意 : Input, Select, DatePicker可以直接处理Form.Item的验证规则 , 但Checkbox不行 , 需自定义验证规则 实现 : // 自定义的checkbox校验规则--星期const validateAtLeastOneCheckbo…

面试题 17.07. 婴儿名字

链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a; class Solution { public:vector<string> trulyMostPopular(vector<string>& names, vector<string>& synonyms) {UnionFind uf;for (auto& syn : synonyms) {//c…

【计算机毕业设计】241外卖微信小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

【探索Linux】P.34(HTTPS协议)

阅读导航 引言一、HTTPS是什么1. 什么是"加密"2. 为什么要加密3. 常见的加密方式&#xff08;1&#xff09;对称加密&#xff08;2&#xff09;非对称加密 二、证书认证1. CA认证 三、HTTPS的加密底层原理✅非对称加密对称加密证书认证 温馨提示 引言 在上一篇文章中…

@EqualsAndHashCode(callSuper = false和ture)的区别

EqualsAndHashCode&#xff08;callSuper false和ture&#xff09;的区别 区别 如果值是true&#xff0c;那么会比较父类的字段值&#xff0c;只有两个对象的父类字段也相同的时候&#xff0c;两个对象的比较结果才会是true&#xff1b;如果值是fasle&#xff0c;那么既便两个…

Weevil-Optimizer象鼻虫优化算法的matlab仿真实现

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 Weevil-Optimizer象鼻虫优化算法的matlab仿真实现&#xff0c;仿真输出算法的优化收敛曲线&#xff0c;对比不同的适应度函数。 2.测试软件版本以及运行结果展示…

SpringBoot实现的大文件上传

前言 大文件分片上传和断点续传是为了解决在网络传输过程中可能遇到的问题&#xff0c;以提高文件传输的效率和稳定性。 首先&#xff0c;大文件分片上传是将大文件分割成较小的片段进行上传。这样做的好处是可以减少单个文件的传输时间&#xff0c;因为较小的文件片段更容易快…

【秋招突围】2024届秋招笔试-小红书笔试题-第二套-三语言题解(Java/Cpp/Python)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系计划跟新各公司春秋招的笔试题 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f4e7; 清隆这边…

高频小信号放大器的分类与质量指标

目录 分类 质量指标 增益 通频带 选择性 稳定性 噪声系数 分类 质量指标 增益 电压与功率的放大倍数。 通频带 放大效果比较好的频率范围。 选择性 放大目标信号以滤除其他信号的综合能力。 稳定性 噪声系数

chatglm4本地部署详解

下载地址 模型下载地址&#xff1a;GitHub - THUDM/GLM-4: GLM-4 series: Open Multilingual Multimodal Chat LMs | 开源多语言多模态对话模型 已经训练好的数据下载地址&#xff1a; https://huggingface.co/THUDM/glm-4-9b-chat-1m/tree/main 测试主机配置 cpu&#xff1a;E…

pdf转图片,pdf转图片在线转

pdf转图片的方法&#xff0c;对于许多人来说可能是一个稍显陌生的操作。然而&#xff0c;在日常生活和工作中&#xff0c;我们有时确实需要将pdf文件转换为图片格式&#xff0c;以便于在特定的场合或平台上进行分享、展示或编辑。以下&#xff0c;我们将详细介绍一个pdf转成图片…