机器学习--特征工程常用API

news2024/11/15 13:36:08

1. DictVectorizer - 字典特征提取

DictVectorizer 是一个用于将字典(如Python中的字典对象)转换为稀疏矩阵的工具,常用于处理类别型特征。

DictVectorizer(sparse=True, sort=True, dtype=<class 'numpy.float64'>)
  • 参数:
    • sparse:布尔值,默认值为 True。如果为 True,输出是稀疏矩阵;如果为 False,输出是密集的Numpy数组。
    • sort
      当 sort=True 时,特征名称按字母顺序排序。
      当 sort=False 时,特征名称的顺序是其在字典中首次出现的顺序。
    • dtype:输出数据类型,默认为 numpy.float64

2. CountVectorizer - 文本特征提取

CountVectorizer 是一种用于将文本数据转换为词频向量的工具。

  • 主要参数:
    • max_df:浮点数或整数,表示在文档中出现频率超过这个比例(浮点数)或超过这个绝对次数(整数)的词语将被忽略,默认值为 1.0
    • min_df:浮点数或整数,表示在文档中出现频率低于这个比例(浮点数)或低于这个绝对次数(整数)的词语将被忽略,默认值为 1
    • max_features:整数,选择出现频率最高的 max_features 个特征。
    • stop_words:字符串或列表,指定忽略的停用词,可以选择 'english' 或自定义停用词列表。
    • ngram_range:元组,表示词组的范围,如 (1, 2) 表示一元词和二元词。
    • binary:布尔值,是否只考虑词是否出现(即词频为1还是0),默认值为 False
from sklearn.feature_extraction.text import CountVectorizer

# 示例文本数据
corpus = [
    'This is the first document.',
    'This document is the second document.',
    'And this is the third one.',
    'Is this the first document?',
]

# 初始化CountVectorizer
vectorizer = CountVectorizer(stop_words=["you","this"])

# 转换为词频向量
X = vectorizer.fit_transform(corpus)#得到稀疏矩阵

# 输出特征名称和词频向量
print(vectorizer.get_feature_names_out())
print(X.toarray())#转换为矩阵
print(X)

结果:

['and' 'document' 'first' 'is' 'one' 'second' 'the' 'third']
[[0 1 1 1 0 0 1 0]
 [0 2 0 1 0 1 1 0]
 [1 0 0 1 1 0 1 1]
 [0 1 1 1 0 0 1 0]]
  (0, 3)	1
  (0, 6)	1
  (0, 2)	1
  (0, 1)	1
  (1, 3)	1
  (1, 6)	1
  (1, 1)	2
  (1, 5)	1
  (2, 3)	1
  (2, 6)	1
  (2, 0)	1
  (2, 7)	1
  (2, 4)	1
  (3, 3)	1
  (3, 6)	1
  (3, 2)	1
  (3, 1)	1

2.1 中文文本提取

  • jieba 是一个广泛使用的中文分词库,适用于中文文本处理和特征提取。jieba 提供了高效的中文分词功能,可以帮助将中文文本转换为词语列表,从而用于机器学习模型和文本分析。

安装 jieba

你可以通过以下命令安装 jieba

pip install jieba

基本用法

以下是一些使用 jieba 进行中文文本提取的常见操作示例:

1. 基础分词
import jieba

# 示例文本
text = "我爱自然语言处理"

# 使用jieba进行分词
words = jieba.cut(text)

# 输出分词结果
print("/ ".join(words))
2. 精确模式和全模式
  • 精确模式:试图将句子最精确地切开,适合文本分析。
  • 全模式:将句子中所有可能的词语都找出来,适合用于词云展示等。
import jieba

# 示例文本
text = "我爱自然语言处理"

# 精确模式
words = jieba.cut(text, cut_all=False)
print("精确模式: " + "/ ".join(words))

# 全模式
words = jieba.cut(text, cut_all=True)
print("全模式: " + "/ ".join(words))

结果:

精确模式:// 自然语言/ 处理
全模式:// 自然/ 自然语言/ 语言/ 处理
3. 关键词提取

jieba 还提供了关键词提取功能,基于 TF-IDF 算法或者 TextRank 算法。需要额外安装 jiebajieba.analyse 模块。

import jieba.analyse

# 示例文本
text = "我爱自然语言处理。自然语言处理是计算机科学领域和人工智能领域中的一个重要方向。"

# 提取关键词
keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=False)

print("关键词: " + "/ ".join(keywords))

结果:

关键词: 自然语言/ 领域/ 处理/ 计算机科学/ 人工智能
4. 自定义词典

如果你有一些专有名词或者行业术语,jieba 允许你使用自定义词典来提高分词的准确性。

import jieba

# 加载自定义词典
jieba.load_userdict('userdict.txt')

# 示例文本
text = "我在腾讯工作"

# 使用自定义词典进行分词
words = jieba.cut(text)
print("/ ".join(words))

自定义词典 userdict.txt 的格式如下:

腾讯 10 n

其中,每行包含一个词汇,词汇后面的数字表示词频(可选),词性(可选)。

3. TfidfVectorizer - TF-IDF文本特征提取

TfidfVectorizer 用于计算词语的TF-IDF(词频-逆文档频率)特征,衡量词语在文档中的重要性。
TfidfVectorizerscikit-learn 提供的一个工具,用于将文本数据转换为 TF-IDF 特征矩阵。TF-IDF(Term Frequency-Inverse Document Frequency)是一种常用的文本特征表示方法,用于衡量词语在文档中的重要性。下面是 TfidfVectorizer 的工作原理及其详细解释:

TF-IDF 原理

  1. Term Frequency (TF)

    • 定义:词频,衡量词语在某个文档中出现的频率。
      在这里插入图片描述

    • 解释:词频越高,说明该词在该文档中越重要。

  2. Inverse Document Frequency (IDF)

    • 定义:逆文档频率,衡量词语在所有文档中出现的稀有程度。
      在这里插入图片描述

    • 解释:出现频率较低的词语(即少数文档中出现的词语)会有较高的 IDF 值,从而提高其在文档中的权重。

  3. TF-IDF Score

    • 定义:词语在文档中的 TF-IDF 权重,结合了词频和逆文档频率。
      在这里插入图片描述

    • 解释:通过 TF-IDF 评分,重要的词语(即在该文档中频繁出现而在其他文档中不常见的词语)会得到较高的权重。

  • 主要参数:

    • max_df:同 CountVectorizer
    • min_df:同 CountVectorizer
    • max_features:同 CountVectorizer
    • stop_words:同 CountVectorizer
    • ngram_range:同 CountVectorizer
    • use_idf:布尔值,是否启用逆文档频率(IDF)加权,默认值为 True
    • smooth_idf:布尔值,是否加1平滑IDF,默认值为 True
    • norm:字符串,表示归一化方法,'l1''l2',默认值为 'l2'
  • 适用场景:适用于文本数据中特征词重要性分析,更适合文本分类任务。

代码示列:

from sklearn.feature_extraction.text import TfidfVectorizer

# 示例文本数据
corpus = [
    'This is the first document.',
    'This document is the second document.',
    'And this is the third one.',
    'Is this the first document?',
]

# 初始化TfidfVectorizer
vectorizer = TfidfVectorizer()

# 转换为TF-IDF特征向量
X = vectorizer.fit_transform(corpus)

# 输出特征名称和TF-IDF向量
print(vectorizer.get_feature_names_out())
print(X.toarray())

结果:

['and' 'document' 'first' 'is' 'one' 'second' 'the' 'third' 'this']
[[0.         0.46979139 0.58028582 0.38408524 0.         0.
  0.38408524 0.         0.38408524]
 [0.         0.6876236  0.         0.28108867 0.         0.53864762
  0.28108867 0.         0.28108867]
 [0.51184851 0.         0.         0.26710379 0.51184851 0.
  0.26710379 0.51184851 0.26710379]
 [0.         0.46979139 0.58028582 0.38408524 0.         0.
  0.38408524 0.         0.38408524]]

4. MinMaxScaler - 归一化

MinMaxScaler 将特征缩放到给定的最小值和最大值之间,通常是缩放到 [0, 1]
MinMaxScaler 是一种常用的数据预处理方法,其主要目的是将数据的特征缩放到指定的范围(通常是 ([0, 1]))。这样做的目的是为了消除不同特征值之间量级上的差异,从而避免因不同特征值的范围差异对模型训练产生不良影响。

MinMaxScaler的数学原理

假设我们有一个一维的特征向量 (X = {x_1, x_2, \dots, x_n}),其中每个 (x_i) 表示第 (i) 个样本的特征值。

1. 计算原始数据的最小值和最大值

首先,找到特征向量 (X) 中的最小值 (X_{\text{min}}) 和最大值 (X_{\text{max}}),即:
X min = min ⁡ ( X ) X max = max ⁡ ( X ) X_{\text{min}} = \min(X) X_{\text{max}} = \max(X) Xmin=min(X)Xmax=max(X)

2. 应用缩放公式

接下来,使用以下公式将每个数据点 (x_i) 映射到目标范围 ([a, b]) 中(默认为 ([0, 1])):
x i ′ = x i − X min X max − X min × ( b − a ) + a x_i' = \frac{x_i - X_{\text{min}}}{X_{\text{max}} - X_{\text{min}}} \times (b - a) + a xi=XmaxXminxiXmin×(ba)+a

  • (x_i’) 是缩放后的值。
  • (a) 和 (b) 是目标范围的下限和上限,默认是 (a = 0) 和 (b = 1)。
  • (X_{\text{min}}) 和 (X_{\text{max}}) 分别是原始数据的最小值和最大值。
3. 线性变换过程

公式中的变换可以分为两个步骤:

  • 标准化:先减去最小值,然后除以原始数据的范围(最大值减去最小值),即:
    x i ∗ = x i − X min X max − X min x_i^* = \frac{x_i - X_{\text{min}}}{X_{\text{max}} - X_{\text{min}}} xi=XmaxXminxiXmin
    这一步骤将 (x_i) 变换到 ([0, 1]) 的范围内。

  • 线性扩展:将标准化后的值 (x_i^
    $$
    扩展到目标范围 (a, b):

    x_i’ = x_i^* \times (b - a) + a
    $$
    这一步将数据映射到我们希望的范围内。

示例详解

假设有一个简单的数据集: X = [2, 4, 6, 8, 10] ,目标范围是 ([0, 1])。

  1. 计算 ( X_{\text{min}} = 2 ) 和 ( X_{\text{max}} = 10 )。

  2. 使用公式计算每个 ( x_i ) 的缩放值 ( x_i’ ):

    • 对于 ( x = 2 ):
      x ′ = 2 − 2 10 − 2 × ( 1 − 0 ) + 0 = 0 x' = \frac{2 - 2}{10 - 2} \times (1 - 0) + 0 = 0 x=10222×(10)+0=0

    • 对于 ( x = 4 ):
      x ′ = 4 − 2 10 − 2 × ( 1 − 0 ) + 0 = 0.25 x' = \frac{4 - 2}{10 - 2} \times (1 - 0) + 0 = 0.25 x=10242×(10)+0=0.25

    • 对于 ( x = 6 ):
      x ′ = 6 − 2 10 − 2 × ( 1 − 0 ) + 0 = 0.5 x' = \frac{6 - 2}{10 - 2} \times (1 - 0) + 0 = 0.5 x=10262×(10)+0=0.5

    • 对于 ( x = 8 ):
      x ′ = 8 − 2 10 − 2 × ( 1 − 0 ) + 0 = 0.75 x' = \frac{8 - 2}{10 - 2} \times (1 - 0) + 0 = 0.75 x=10282×(10)+0=0.75

    • 对于 ( x = 10 ):
      x ′ = 10 − 2 10 − 2 × ( 1 − 0 ) + 0 = 1 x' = \frac{10 - 2}{10 - 2} \times (1 - 0) + 0 = 1 x=102102×(10)+0=1

转换后的数据集为 ([0, 0.25, 0.5, 0.75, 1])。

  • 主要参数:

    • feature_range:元组,表示缩放后的特征范围,默认值为 (0, 1)
    • clip:布尔值,是否将数据截断到指定范围内,默认值为 False
  • 适用场景:适用于需要将特征值缩放到相同范围的情况,特别是当模型对特征的范围敏感时,如在神经网络中。

代码示列:

from sklearn.preprocessing import MinMaxScaler

# 示例数据
data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]

# 初始化MinMaxScaler
scaler = MinMaxScaler()

# 转换数据
scaled_data = scaler.fit_transform(data)

# 输出归一化后的数据
print(scaled_data)

结果:

[[0.   0.  ]
 [0.25 0.25]
 [0.5  0.5 ]
 [1.   1.  ]]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. StandardScaler - 标准化

StandardScaler 将特征进行标准化,使其均值为0,方差为1。

  • 主要参数:

    • with_mean:布尔值,是否将特征均值设为0,默认值为 True
    • with_std:布尔值,是否将特征方差设为1,默认值为 True
  • 适用场景:适用于需要将特征缩放到标准正态分布的场景,常用于线性模型和基于距离的模型。
    代码示列:

from sklearn.preprocessing import StandardScaler

# 示例数据
data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]

# 初始化StandardScaler
scaler = StandardScaler()

# 转换数据
scaled_data = scaler.fit_transform(data)

# 输出标准化后的数据
print(scaled_data)

结果:

[[-1.18321596 -1.18321596]
 [-0.50709255 -0.50709255]
 [ 0.16903085  0.16903085]
 [ 1.52127766  1.52127766]]

StandardScaler 是一种常用的数据预处理方法,其主要目的是对数据进行标准化处理,使得数据的均值为0,标准差为1。通过标准化,StandardScaler 可以消除不同特征之间的量纲差异,并且使数据更适合于一些基于距离度量的机器学习算法,如SVM、KNN等。

StandardScaler的数学原理

StandardScaler 的标准化过程涉及两个步骤:

  1. 中心化:将数据的均值调整为0。
  2. 缩放:将数据的标准差调整为1。

对于一个给定的数据集
X = { x 1 , x 2 , … , x n } X = \{x_1, x_2, \dots, x_n\} X={x1,x2,,xn}
(假设这里的数据是单个特征的值),StandardScaler 的标准化公式如下:

x i ′ = x i − μ σ x_i' = \frac{x_i - \mu}{\sigma} xi=σxiμ
其中:

  • $$
    • x_i 是原始数据中的某个数据点。
    • \mu 是原始数据的均值。
    • \sigma 是原始数据的标准差。
    • x_i’ 是标准化后的数据。
      $$

步骤 1:计算均值和标准差

1. 计算均值

μ \mu μ

均值 μ 是所有数据点的平均值,可以通过以下公式计算: μ = 1 n ∑ i = 1 n x i 均值 \mu 是所有数据点的平均值,可以通过以下公式计算: \mu = \frac{1}{n} \sum_{i=1}^{n} x_i 均值μ是所有数据点的平均值,可以通过以下公式计算:μ=n1i=1nxi

2.

计算标准差 σ 计算标准差 \sigma 计算标准差σ

标准差 σ 是数据点到均值的平均偏离程度的平方根,可以通过以下公式计算: σ = 1 n ∑ i = 1 n ( x i − μ ) 2 标准差 \sigma 是数据点到均值的平均偏离程度的平方根,可以通过以下公式计算: \sigma = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (x_i - \mu)^2} 标准差σ是数据点到均值的平均偏离程度的平方根,可以通过以下公式计算:σ=n1i=1n(xiμ)2

步骤 2:应用标准化公式

计算出均值 μ 和标准差 σ 之后,对每个数据点 x i 使用以下公式进行标准化处理: x i ′ = x i − μ σ 计算出均值 \mu 和标准差 \sigma 之后,对每个数据点 x_i 使用以下公式进行标准化处理: x_i' = \frac{x_i - \mu}{\sigma} 计算出均值μ和标准差σ之后,对每个数据点xi使用以下公式进行标准化处理:xi=σxiμ

6. VarianceThreshold - 底方差过滤降维

VarianceThreshold 是一种简单的特征选择方法,通过移除方差低于某个阈值的特征来进行降维。

4.底方差过滤(Variance Thresholding)的数学原理可以通过以下几个步骤详细解释:

1. 方差定义

方差是用来衡量数据分布的离散程度的统计量。对于给定的特征 X (假设是一个向量),其方差 σ 2 可以通过以下公式计算: 方差是用来衡量数据分布的离散程度的统计量。对于给定的特征 X (假设是一个向量),其方差 \sigma^2 可以通过以下公式计算: 方差是用来衡量数据分布的离散程度的统计量。对于给定的特征X(假设是一个向量),其方差σ2可以通过以下公式计算:

σ X 2 = 1 N ∑ i = 1 N ( x i − x ˉ ) 2 \sigma^2_X = \frac{1}{N} \sum_{i=1}^{N} (x_i - \bar{x})^2 σX2=N1i=1N(xixˉ)2

其中:

  • $$
    • N 是样本的总数,
    • x_i 是特征 X 的第 i 个样本,
    • \bar{x} 是特征 X 的均值。
      $$

2. 方差计算过程

假设我们有一个数据矩阵 X (大小为 m × n ,其中 m 是样本数, n 是特征数),我们可以对每一个特征列 X j 计算方差。对于特征 X j ,其方差可以表示为 假设我们有一个数据矩阵 X (大小为 m \times n ,其中m是样本数,n是特征数),我们可以对每一个特征列 X_j 计算方差。对于特征X_j,其方差可以表示为 假设我们有一个数据矩阵X(大小为m×n,其中m是样本数,n是特征数),我们可以对每一个特征列Xj计算方差。对于特征Xj,其方差可以表示为

σ X j 2 = 1 m ∑ i = 1 m ( X i j − X j ˉ ) 2 \sigma^2_{X_j} = \frac{1}{m} \sum_{i=1}^{m} (X_{ij} - \bar{X_j})^2 σXj2=m1i=1m(XijXjˉ)2
其中:

  • $$
    • X_{ij}是第i个样本的第j个特征值,
    • \bar{X_j}是第j个特征的均值。
      $$

3. 设置方差阈值

为了进行特征选择,我们需要设置一个方差阈值 ( \tau )。这个阈值可以是固定的,也可以根据数据集的统计特性(例如方差的均值或标准差)来设定。常见的选择方法包括:

  • 选择一个绝对阈值,例如
    τ = 0.01 \tau = 0.01 τ=0.01

  • 选择一个相对阈值,例如选取方差在所有特征方差中的某个百分位(如前 50%)。

  • 主要参数:

    • threshold:浮点数,表示方差阈值,默认值为 0.0(即移除所有方差为零的特征)。
  • 适用场景:适用于删除对模型贡献较小的低方差特征,通常是为了减少噪音和维度。
    代码示列:

import numpy as np
from sklearn.feature_selection import VarianceThreshold

# 创建一个示例数据集 (m样本, n特征)
X = np.array([
    [1, 2, 3, 4],
    [2, 2, 3, 4],
    [3, 2, 3, 4],
    [4, 2, 3, 4]
])

print("原始数据集:")
print(X)

# 设置方差阈值 (0.1)
threshold = 0.1

# 初始化 VarianceThreshold 对象
selector = VarianceThreshold(threshold=threshold)

# 拟合并转换数据
X_reduced = selector.fit_transform(X)

print("\n经过底方差过滤后的数据集:")
print(X_reduced)
结果:
原始数据集:
[[1 2 3 4]
 [2 2 3 4]
 [3 2 3 4]
 [4 2 3 4]]

经过底方差过滤后的数据集:
[[1]
 [2]
 [3]
 [4]]

7. PCA - 主成分分析降维

  • 主成分分析(Principal Component Analysis, PCA)是一种用于降维的线性变换方法,主要目的是通过构造一组新的变量(称为主成分),这些主成分是原始数据中方差最大的方向上的线性组合。PCA可以最大限度地保留数据的方差信息,同时减少数据的维度,通过线性变换将高维数据映射到低维空间,同时尽量保留数据的方差。。

  • 主要参数:

    • n_components:整数或浮点数,指定保留的主成分数。如果是浮点数,则表示保留的方差比例。如果未指定,则保留所有成分。
    • whiten:布尔值,是否将成分向量标准化为单位方差,默认值为 False
    • svd_solver:字符串,指定奇异值分解的算法,可以选择 'auto''full''arpack'、或 'randomized'
    • tol:浮点数,svd_solver=’arpack’时使用的容差,默认值为 0.0
    • random_state:整数或 None,指定随机数生成器的种子。
  • 适用场景:适用于数据降维、去噪和可视化,同时保留数据的主要信息。

import numpy as np
from sklearn.decomposition import PCA
data = np.array([
    [2.5, 2.4],
    [0.5, 0.7],
    [2.2, 2.9],
    [1.9, 2.2],
    [3.1, 3.0],
    [2.3, 2.7],
    [2, 1.6],
    [1, 1.1],
    [1.5, 1.6],
    [1.1, 0.9]
])

# 初始化PCA并指定主成分数
pca = PCA(n_components=2)

# 降维
reduced_data = pca.fit_transform(data)

print("降维后的数据:\n", reduced_data)

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

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

相关文章

ggplot阶截断坐标轴-gggap

目录 gggap包安装 功能查询 简单版使用代码 复杂版使用代码 gggap包安装 CRAN: Package gggap (-project.org) 手动下载安装 功能查询 > ?gggap > ?gggapDefine Segments in y-Axis for ggplot2 Description Easy-to-define segments in y-axis for ggplot2. …

使用Clion开发STM32串口调试遇到问题之重定向printf不显示(已解决问题)

为什么要使用重定向printf C语言中经常使用printf来输出调试信息&#xff0c;打印到屏幕。由于在单片机中没有屏幕&#xff0c;但是我们可以重定向printf&#xff0c;把数据打印到串口&#xff0c;从而在电脑端接收调试信息。这是除了debug外&#xff0c;另外一个非常有效的调…

根据前序遍历和中序遍历生成二叉树,并层序遍历输出二叉树

二叉树 前序遍历&#xff1a;ABDFCEGH 中序遍历&#xff1a;BFDAGEHC 演示 代码&#xff1a; package com.fdw.algorithm.hhh;import com.fdw.algorithm.structure.TreeNode;import java.util.LinkedList; import java.util.Queue;/*** description:* author: ThatMonth* cr…

Javaweb学习之JavaScript输出与字符串(二)

前情回顾 Javaweb学习之JavaScript&#xff08;一&#xff09;-CSDN博客 学习资源 w3school 在线教程 本期介绍 输出语句 在JavaScript中&#xff0c;有几种方式可以输出信息到控制台&#xff08;console&#xff09;、浏览器窗口&#xff08;window&#xff09;或其他地方。…

谷粒商城实战笔记-220~224-商城业务-微博认证服务-OAuth2.0

文章目录 一&#xff0c;220-商城业务-认证服务-OAuth2.0简介二&#xff0c;221-商城业务-认证服务-微博登录测试1&#xff0c;创建微博应用2&#xff0c;应用配置重定向url3&#xff0c;修改商城登录页面4&#xff0c;点击微博登录5&#xff0c;点击授权 三&#xff0c;222-商…

[译]开发者与熵的博弈

原文&#xff1a;https://itnext.io/entropy-in-software-development-77ed9110ef28 翻译&#xff1a;我的文章翻译智能体 文章润色智能体 文章转脑图智能体 人工校对 文章脉络&#xff1a; 文章概括&#xff1a; 文章通过热力学的视角&#xff0c;深入探讨了软件开发中的复…

GitHub的未来:在微软领导下保持独立与AI发展的平衡

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

企业高性能web服务器----nginx详细知识点+实验

知识点 一、Web 服务介绍 Apache Nginx 1、Apache 经典的 Web 服务端 Apache 起初由美国的伊利诺伊大学香槟分校的国家超级计算机应用中心开发 目前经历了两大版本分别是 1.X 和 2.X 其可以通过编译安装实现特定的功能 2、Apache的三种模型 Apache prefork 模型 预…

4000元亮度最高的投影仪:当贝X5S 3300CVIA流明超高亮度白天也清晰

你购买投影仪的时候一般预算多少&#xff1f;目前市面上的投影仪价位有几百也有上万&#xff0c;品牌和类型都比较多&#xff0c;买投影前比较关注哪些投影仪参数&#xff1f;最近有朋友向我咨询购买投影仪的事项&#xff0c;预算在4000左右&#xff0c;问问4000元哪款投影仪哪…

Ollama Desktop

一、简介 Ollama Desktop是基于Ollama引擎的一个桌面应用解决方案&#xff0c;用于在macOS、Windows和Linux操作系统上运行和管理Ollama模型的GUI工具。 Ollama Desktop提供了丰富的功能&#xff0c;包括但不限于&#xff1a; 可视化的管理界面&#xff1a;用户可以通过图形…

推荐3款免费强大OCR神器,工作必备,总有一款适合你,必须收藏

ShareX ShareX是一款功能强大且免费的开源屏幕捕捉和录屏工具&#xff0c;主要用于Windows操作系统。它不仅可以捕捉任何屏幕区域&#xff0c;还可以录制视频、拍摄屏幕截图&#xff0c;并将其上传到各种在线平台。ShareX的功能非常全面&#xff0c;包括截图、录屏、加水印、裁…

低代码平台:效率与创新的双重引擎

低代码开发在软件开发领域是一种越来越流行的趋势&#xff0c;这是有充分理由的。低代码使专业开发人员和非开发人员能够构建更易于集成、修改和升级的复杂企业解决方案&#xff0c;使企业能够快速轻松地创建软件应用程序无需丰富的编码经验。低代码平台彻底改变了软件开发方式…

LLM应用实战: 产业治理多标签分类

1. 背景 许久未见&#xff0c;甚是想念~ 近期本qiang~换了工作&#xff0c;处于新业务适应期&#xff0c;因此文章有一段时间未更新&#xff0c;理解万岁&#xff01; 现在正在着手的工作是产业治理方面&#xff0c;主要负责其中一个功能模块&#xff0c;即按照产业治理标准体…

巡检机器人有哪些功能和应用场景

随着科技的飞速发展&#xff0c;巡检机器人作为智能化、自动化的重要代表&#xff0c;已经在多个领域展现出其独特的优势。从工业生产到特殊环境监测&#xff0c;巡检机器人以其高效、准确和安全的特性&#xff0c;逐渐取代了传统的人工巡检方式&#xff0c;极大地提升了巡检效…

spring boot(学习笔记第十八课)

spring boot(学习笔记第十八课) Spring boot的定时任务和Quartz 学习内容&#xff1a; Spring boot的定时任务Spring boot的Quartz 1. Spring boot的定时任务 定义定时任务 加入必要的依赖 <dependency><groupId>org.springframework.boot</groupId&g…

STM32 —— TIM(基本定时器)详解_stm32的tim

STM32 —— TIM&#xff08;基本定时器&#xff09;详解_stm32的tim 一、定时器简介 STM32F1 系列中&#xff0c;除了互联型的产品&#xff0c;共有 8 个定时器&#xff0c;分为基本定时器&#xff0c;通用定时器和高级定时器。基本定时器 TIM6 和 TIM7 是一个 16 位的只能向…

ID3算法详解:构建决策树的利器

目录 引言 ID3算法概述 算法基础 信息熵 ​编辑 信息增益 ID3算法步骤 决策树 概念: 核心&#xff1a; 节点 1. 根节点 2. 非叶子节点 3. 叶子节点 引言 在机器学习领域&#xff0c;决策树是一种非常流行的分类和回归方法。其中&#xff0c;ID3算法作为决策树算法…

干货分享 | TSMaster—RP1210模块使用指南

RP1210是由技术和维护委员会&#xff08;TMC&#xff09;编写的一种建议性实践。RP1210用于对重型车辆射频相关的&#xff08;主要针对&#xff09;电子控制单元&#xff08;ECU&#xff09;进行二次编程和分析。本文主要针对TSMaster—RP1210模块的操作进行详细介绍。 本文关…

【CANoe使用大全】——在线回放数据

&#x1f64b;‍♂️【CANoe使用大全】系列&#x1f481;‍♂️点击跳转 文章目录 1.概述2.创建回灌节点3.加载回灌数据 1.概述 在外面测试过程中经常会遇到一些故障场景&#xff0c;需要采集这些时刻的故障场景log&#xff0c; 回灌到程序中复现问题。 下面主要介绍数据的在…

【电子通识】IPC-A-610标准对产品的四种验收条件都是什么意思?

IPC-A-610标准对每个级别产品均给出四种验收条件&#xff1a;目标、可接受、缺陷或制程警示条件。 目标条件 是指近乎完美/首选的情形&#xff0c;然而这是一种理想而非总能达到的情形&#xff0c;且对于保证组件在使用环境下的可靠性并非必要的情形。 比如4.3.2节中连接器插针…