当前位置: 首页 > article >正文

人工智能中的特征是什么?

什么是人工智能中的特征?

在人工智能中,特征(feature)是指从原始数据中提取出的、能够代表数据关键信息并用于模型训练的属性或变量。特征通常是对原始数据的抽象或转换,目的是捕捉数据中的模式、结构或相关性,从而帮助机器学习模型更有效地学习和预测。简单来说,特征是原始数据经过提炼后的结果,能够突出对任务有用的信息,同时去除冗余或无关的部分。


特征与原始数据的区别

  • 原始数据:是指直接从数据源获取的未经处理的数据,例如图像的像素值、音频的波形、文本的原始字符等。原始数据往往包含大量冗余或噪声,直接使用可能导致模型训练效率低下或性能不佳。
  • 特征:是从原始数据中经过处理、提取或转换后得到的更具代表性的数据。特征通常是原始数据的子集或高级表示,能够更直接地反映数据的关键属性,帮助模型更好地理解和学习。

区别总结:特征是对原始数据的“精炼”,旨在减少数据维度、去除噪声并增强模型的泛化能力,而原始数据则是未经加工的“原材料”。


举例说明

以下是五个不同领域的例子,具体展示特征与原始数据的区别:

1. 图像识别
  • 原始数据:一张图像的像素值矩阵,例如RGB值(红、绿、蓝三通道的数值)。
  • 特征:图像中的边缘、纹理、形状或颜色直方图等。这些特征可以通过边缘检测(如Sobel算子)或角点检测算法提取,突出图像的关键视觉信息,帮助模型识别物体。
  • 区别:像素值是图像的完整描述,可能包含背景噪声,而特征聚焦于物体的轮廓或结构,更适合识别任务。
2. 文本分类
  • 原始数据:一篇文档的完整文本内容,例如一篇文章的全部字符。
  • 特征:文档中的词频、TF-IDF(词频-逆文档频率)值、词向量(如Word2Vec或BERT生成的嵌入)。这些特征捕捉文本的语义和关键词信息。
  • 区别:原始文本可能是冗长的字符串,包含无意义的停用词,而特征提取后只保留对分类有意义的语义信息。
3. 语音识别
  • 原始数据:音频文件的波形信号,即时间序列中的振幅数据。
  • 特征:梅尔频率倒谱系数(MFCC)、频谱图或声学特征等。这些特征反映音频的音调、音色等声学特性。
  • 区别:波形信号是连续的原始音频数据,信息量大但冗余,特征则提炼出与语音内容相关的关键属性。
4. 推荐系统
  • 原始数据:用户的行为数据,例如点击记录、购买历史或浏览时间。
  • 特征:用户的偏好向量、物品的属性向量(如类别、价格)或用户-物品交互矩阵。这些特征总结了用户的兴趣和物品特性。
  • 区别:原始行为数据可能是零散的事件记录,而特征是基于这些事件计算出的结构化表示,便于预测用户喜好。
5. 金融风控
  • 原始数据:用户的交易记录、信用历史或个人信息,例如每次交易的金额和时间。
  • 特征:用户的信用评分、交易频率、平均交易金额或还款行为模式等。这些特征捕捉用户的信用风险特征。
  • 区别:原始数据是详细的历史记录,可能包含无关细节,而特征是风险评估的关键指标。

总结

特征是从原始数据中提取的、能够代表数据关键信息的抽象表示。与原始数据相比,特征更简洁、更有针对性,能够提高模型的训练效率和预测准确性。在人工智能中,特征工程(feature engineering)是至关重要的一步,良好的特征设计往往直接决定模型的性能。通过上述五个例子,可以看出特征是如何从原始数据中“提炼”出来,并在不同场景中助力模型完成任务的。

具体案例

以下是几个个详细的例子,展示了如何从原始数据中抽取特征,并利用这些特征建立机器学习模型来解决问题。每个例子都包括原始数据、特征提取、建模过程的详细说明,并附有相应的 Python 代码。


示例 1:信用卡欺诈检测

问题

利用信用卡交易数据,检测欺诈交易(这是一个二分类问题:欺诈或正常)。

原始数据

假设我们有一个结构化数据集,存储在表格中,包含以下列:

  • Transaction ID(交易ID):唯一标识每笔交易
  • User ID(用户ID):标识交易所属的用户
  • Transaction Amount(交易金额):每笔交易的金额(数值)
  • Transaction Time(交易时间):交易发生的时间(日期时间格式)
  • Merchant Category(商家类别):交易涉及的商家类型(分类变量,如“餐饮”、“零售”)
  • Is Fraud(是否欺诈):目标变量,1 表示欺诈,0 表示正常

特征抽取

从原始数据中,我们可以抽取或生成以下特征,用于建模:

  • Transaction Amount:直接使用交易金额作为特征。
  • Hour:从 Transaction Time 中提取交易发生的小时,可能与欺诈模式相关(如深夜交易)。
  • Day:从 Transaction Time 中提取星期几,可能反映周末或工作日的交易行为。
  • Merchant Category:将商家类别编码为数值型特征(如使用标签编码)。

这些特征能够帮助模型捕捉交易的时间模式和商家类型对欺诈的影响。

建模过程

  1. 数据预处理

    • Transaction Time 转换为 datetime 格式。
    • 从中提取 Hour(小时)和 Day(星期几)。
    • Merchant Category 进行标签编码(Label Encoding),将其转换为数值。
  2. 特征和目标变量

    • 特征:Transaction AmountHourDayMerchant Category
    • 目标变量:Is Fraud
  3. 数据拆分

    • 将数据集分为训练集(80%)和测试集(20%),以便评估模型性能。
  4. 模型选择

    • 使用随机森林分类器(Random Forest Classifier),因为它对分类问题具有鲁棒性,且能够处理多种特征类型。
  5. 模型训练

    • 在训练集上拟合随机森林模型。
  6. 模型评估

    • 在测试集上进行预测,使用准确率、精确率、召回率和 F1 分数评估模型性能。

Python 代码

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
from sklearn.preprocessing import LabelEncoder# 加载数据
data = pd.read_csv('credit_card_transactions.csv')# 预处理 Transaction Time
data['Transaction Time'] = pd.to_datetime(data['Transaction Time'])
data['Hour'] = data['Transaction Time'].dt.hour
data['Day'] = data['Transaction Time'].dt.dayofweek# 对 Merchant Category 进行标签编码
le = LabelEncoder()
data['Merchant Category'] = le.fit_transform(data['Merchant Category'])# 定义特征和目标变量
X = data[['Transaction Amount', 'Hour', 'Day', 'Merchant Category']]
y = data['Is Fraud']# 拆分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化并训练随机森林模型
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)# 预测并评估模型
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))

代码说明

  • 数据加载:假设数据存储在 credit_card_transactions.csv 文件中。
  • 特征提取:从 Transaction Time 中提取小时和星期几;对 Merchant Category 使用 LabelEncoder 转换为数值。
  • 模型训练:使用 100 棵树的随机森林分类器。
  • 评估classification_report 输出模型的性能指标。

示例 2:疾病预测

问题

利用患者记录数据,预测患者是否患有某种疾病(这是一个二分类问题:患病或未患病)。

原始数据

假设我们有一个结构化数据集,存储在表格中,包含以下列:

  • Patient ID(患者ID):唯一标识每个患者
  • Age(年龄):患者的年龄(数值)
  • Gender(性别):患者的性别(分类变量,如“Male”或“Female”)
  • Symptoms(症状):患者报告的症状,逗号分隔的字符串(如“fever, cough”)
  • Medical History(病史):患者的医疗历史,逗号分隔的字符串(如“diabetes, hypertension”)
  • Blood Pressure(血压):患者的血压值(数值)
  • Cholesterol Level(胆固醇水平):患者的胆固醇水平(数值)
  • Has Disease(是否患病):目标变量,1 表示患病,0 表示未患病

特征抽取

从原始数据中,我们可以抽取或生成以下特征:

  • Age:直接使用年龄作为特征。
  • Gender:将性别编码为数值(Male: 0, Female: 1)。
  • Has_FeverHas_Cough 等:从 Symptoms 中提取二进制特征(1 表示有该症状,0 表示无)。
  • Has_DiabetesHas_Hypertension 等:从 Medical History 中提取二进制特征。
  • Blood Pressure:直接使用血压值。
  • Cholesterol Level:直接使用胆固醇水平。

这些特征能够反映患者的健康状况和疾病风险。

建模过程

  1. 数据预处理

    • Gender 编码为数值。
    • SymptomsMedical History 拆分为二进制特征。
    • 对数值特征(如 AgeBlood PressureCholesterol Level)进行标准化,以统一量纲。
  2. 特征和目标变量

    • 特征:AgeGenderHas_FeverHas_Cough、…、Has_Diabetes、…、Blood PressureCholesterol Level
    • 目标变量:Has Disease
  3. 数据拆分

    • 将数据集分为训练集(80%)和测试集(20%)。
  4. 模型选择

    • 使用逻辑回归(Logistic Regression),因为它简单、易于解释且适用于二分类问题。
  5. 模型训练

    • 在训练集上拟合逻辑回归模型。
  6. 模型评估

    • 在测试集上进行预测,使用准确率、精确率、召回率和 F1 分数评估模型性能。

Python 代码

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
from sklearn.preprocessing import StandardScaler# 加载数据
data = pd.read_csv('patient_records.csv')# 编码 Gender
data['Gender'] = data['Gender'].map({'Male': 0, 'Female': 1})# 从 Symptoms 和 Medical History 中创建二进制特征
symptoms_list = ['fever', 'cough', 'fatigue']  # 示例症状列表
for symptom in symptoms_list:data[f'Has_{symptom}'] = data['Symptoms'].apply(lambda x: 1 if symptom in x.split(', ') else 0)history_list = ['diabetes', 'hypertension']  # 示例病史列表
for condition in history_list:data[f'Has_{condition}'] = data['Medical History'].apply(lambda x: 1 if condition in x.split(', ') else 0)# 删除原始的 Symptoms 和 Medical History 列
data.drop(['Symptoms', 'Medical History'], axis=1, inplace=True)# 标准化数值特征
scaler = StandardScaler()
data[['Age', 'Blood Pressure', 'Cholesterol Level']] = scaler.fit_transform(data[['Age', 'Blood Pressure', 'Cholesterol Level']]
)# 定义特征和目标变量
X = data.drop(['Patient ID', 'Has Disease'], axis=1)
y = data['Has Disease']# 拆分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化并训练逻辑回归模型
model = LogisticRegression(random_state=42)
model.fit(X_train, y_train)# 预测并评估模型
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))

代码说明

  • 数据加载:假设数据存储在 patient_records.csv 文件中。
  • 特征提取:将症状和病史拆分为二进制特征;对数值特征使用 StandardScaler 标准化。
  • 模型训练:使用逻辑回归分类器。
  • 评估classification_report 输出模型性能指标。

总结

以上两个例子展示了从结构化数据到机器学习模型的完整流程:

  1. 理解问题:明确问题的类型(如分类问题)。
  2. 探索数据:分析原始结构化数据中的列和含义。
  3. 特征抽取:从原始数据中提取或生成对建模有意义的特征。
  4. 数据预处理:处理分类变量、标准化数值特征等。
  5. 数据拆分:将数据分为训练集和测试集。
  6. 模型选择:根据问题选择合适的算法。
  7. 模型训练:在训练集上拟合模型。
  8. 模型评估:使用测试集评估模型性能。

通过这些步骤,可以使用 Python 的 pandas 和 scikit-learn 库,从结构化数据中提取特征并建立模型解决实际问题。

以下是一个关于如何从图像数据中提取特征并利用这些特征建立机器学习模型解决问题的详细示例。我们将以手写数字识别问题为例,这是一个经典的图像分类任务。


示例:手写数字识别

问题描述

目标是从手写数字的图像中识别出对应的数字(0-9)。这是一个多分类问题,类别为 0 到 9。


原始数据

我们使用 MNIST 数据集,这是一个广泛用于手写数字识别的基准数据集。MNIST 数据集的特点如下:

  • 图像数量
    • 训练集:60,000 张图像。
    • 测试集:10,000 张图像。
  • 图像格式
    • 每张图像是一个 28x28 像素的灰度图像。
    • 每个像素的取值范围为 0 到 255,其中 0 表示黑色,255 表示白色。
  • 标签
    • 每个图像对应一个数字标签(0-9)。

因此,原始数据是 28x28 的矩阵,每个元素是一个像素的灰度值。


特征提取

从图像数据中提取特征的方式有很多,这里我们选择一种简单但有效的方法:将图像展平为向量

  • 过程
    • 将 28x28 的二维矩阵转换为一个 784 维(28 × 28 = 784)的向量。
    • 向量中的每个元素对应一个像素的灰度值。
  • 优点
    • 简单直接,保留了图像的所有像素信息。
  • 缺点
    • 维度较高,丢失了像素之间的空间关系。

在本次示例中,我们将使用这些展平后的像素值作为特征输入到机器学习模型中。


建模过程

1. 数据加载

使用 Python 的 TensorFlow 库加载 MNIST 数据集。

2. 数据预处理
  • 归一化:将像素值从 [0, 255] 缩放到 [0, 1],以提高模型训练效率。
  • 展平:将 28x28 的图像矩阵转换为 784 维向量。
3. 数据拆分

MNIST 数据集已预先分为训练集和测试集,我们直接使用:

  • 训练集:60,000 张图像。
  • 测试集:10,000 张图像。
4. 模型选择

选择 支持向量机(SVM) 作为分类器。SVM 在高维数据(如图像特征)上表现良好,适合这个任务。我们将使用线性核的 SVM 以简化计算。

5. 模型训练

用训练数据拟合 SVM 模型。

6. 模型评估

在测试集上进行预测,并计算分类准确率。


Python 代码

以下是完整的实现代码:

# 导入必要的库
import tensorflow as tf
from sklearn import svm
from sklearn.metrics import accuracy_score# 1. 加载 MNIST 数据集
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()# 2. 数据预处理
# 归一化:将像素值缩放到 [0, 1]
x_train = x_train / 255.0
x_test = x_test / 255.0# 展平:将 28x28 的图像转换为 784 维向量
x_train = x_train.reshape(-1, 28 * 28)
x_test = x_test.reshape(-1, 28 * 28)# 3. 初始化并训练 SVM 模型(使用线性核)
clf = svm.SVC(kernel='linear')
clf.fit(x_train, y_train)# 4. 在测试集上预测
y_pred = clf.predict(x_test)# 5. 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.4f}")

代码说明

  1. 导入库

    • tensorflow:用于加载 MNIST 数据集。
    • sklearn.svm:提供 SVM 分类器。
    • sklearn.metrics:用于计算准确率。
  2. 加载数据

    • mnist.load_data() 返回训练集和测试集,分别包含图像数据和标签。
  3. 预处理

    • x_train / 255.0:将像素值归一化到 [0, 1]。
    • reshape(-1, 28 * 28):将图像从 28x28 转换为 784 维向量,-1 表示自动推断样本数量。
  4. 训练模型

    • svm.SVC(kernel='linear'):创建一个线性核的 SVM 分类器。
    • clf.fit(x_train, y_train):用训练数据拟合模型。
  5. 评估模型

    • clf.predict(x_test):对测试集进行预测。
    • accuracy_score(y_test, y_pred):计算预测结果的准确率。

结果

  • 预期准确率:使用线性 SVM 和展平的像素特征,模型在 MNIST 测试集上的准确率通常在 90% 至 95% 之间。
  • 运行时间:由于 SVM 在高维数据上的计算复杂度较高,训练可能需要几分钟,具体取决于硬件性能。

改进建议

为了进一步提升性能,可以尝试以下方法:

  1. 高级特征提取
    • 使用 HOG(方向梯度直方图)SIFT 提取更具代表性的特征。
  2. 深度学习
    • 使用 卷积神经网络(CNN),它能捕捉图像的空间结构,通常可以将准确率提升到 99% 以上。
  3. SVM 优化
    • 尝试非线性核(如 RBF 核),可能会提高准确率,但计算成本更高。

总结

在这个示例中,我们展示了从图像数据中提取特征并建立模型的完整过程:

  • 原始数据:MNIST 数据集中的 28x28 灰度图像。
  • 特征提取:将图像展平为 784 维向量。
  • 模型:使用 SVM 分类器进行数字识别。
  • 结果:通过 Python 代码实现了数据处理、模型训练和评估。

这个方法简单有效,适合理解图像数据处理和机器学习的基本流程。如果需要更高的准确率,可以进一步探索复杂的特征提取技术或深度学习方法。

以下是一个关于文本数据处理和机器学习建模的详细示例。我们将以垃圾邮件分类任务为例,说明如何从文本数据中提取特征并建立模型来解决问题。这个任务的目标是从电子邮件或短信的文本内容中识别出垃圾邮件(spam)或正常邮件(ham),这是一个经典的二分类问题。我将详细描述原始数据、特征提取过程、建模步骤,并提供完整的 Python 代码实现。


示例:垃圾邮件分类

问题描述

目标是从短信的文本内容中识别出垃圾邮件(spam)或正常邮件(ham)。这是一个二分类问题,标签为 0(ham)或 1(spam)。


原始数据

我们使用 SMS Spam Collection 数据集,这是一个公开的垃圾邮件数据集。假设数据的基本情况如下:

  • 数据集来源:可以从 UCI Machine Learning Repository 下载。
  • 数据量
    • 训练集:约 4000 条短信。
    • 测试集:约 1000 条短信。
  • 数据格式
    • 每条数据包含两部分:
      • 文本:一条短信的字符串,例如 “Free entry in 2 a wkly comp to win FA Cup final tkts” 或 “Hello, how are you today?”。
      • 标签:0 表示正常邮件(ham),1 表示垃圾邮件(spam)。
  • 示例数据
    • “Free entry in 2 a wkly comp to win FA Cup final tkts”,标签:1(spam)
    • “Hello, how are you today?”,标签:0(ham)

在实际操作中,我们假设数据集存储在一个 CSV 文件中,包含两列:label(标签)和 message(短信内容)。


特征提取

由于原始数据是文本,我们需要将其转换为机器学习模型可以处理的数值特征。这里我们使用 TF-IDF(词频-逆文档频率,Term Frequency-Inverse Document Frequency) 方法来提取特征。TF-IDF 是一种常用的文本特征提取技术,能够反映单词在文档中的重要性。

特征提取过程
  1. 文本预处理
    • 将文本转换为小写。
    • 去除标点符号,只保留字母和空格。
    • 分词:将文本拆分为单词。
    • 去除停用词:过滤掉无意义的常见词(如 “the”、“is”)。
    • 词干提取:将单词还原为词干形式(如 “running” -> “run”)。
  2. TF-IDF 计算
    • 计算每个单词的 TF-IDF 值,生成特征向量。
    • 每个短信被表示为一个稀疏向量,向量中的每个维度对应一个单词的 TF-IDF 分数。
特征示例

假设有两条短信:

  • 短信 1:“free entry win”,标签:1
  • 短信 2:“hello today”,标签:0

经过预处理和 TF-IDF 转换后,可能得到如下特征矩阵(简化示例,假设词汇表为 [“free”, “entry”, “win”, “hello”, “today”]):

短信 1: [0.5, 0.3, 0.4, 0.0, 0.0]
短信 2: [0.0, 0.0, 0.0, 0.6, 0.5]

其中每个值是对应单词的 TF-IDF 分数。

优点与局限
  • 优点:TF-IDF 能突出重要词汇,降低常见词的权重,生成的特征适合高维数据处理。
  • 局限:忽略词序和语义信息。

建模过程

1. 数据加载

使用 Python 的 pandas 库加载数据集。

2. 数据预处理

对文本进行清洗、分词、去除停用词和词干提取。

3. 特征提取

使用 TfidfVectorizer 将文本转换为 TF-IDF 特征矩阵。

4. 数据拆分

将数据集分为训练集(80%)和测试集(20%)。

5. 模型选择

选择 朴素贝叶斯(Naive Bayes) 分类器,因为它在文本分类任务中表现良好且计算效率高。

6. 模型训练

用训练数据拟合模型。

7. 模型评估

在测试集上进行预测,计算准确率、精确率、召回率等指标。


Python 代码实现

以下是完整的代码实现:

# 导入必要的库
import pandas as pd
import nltk
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report# 1. 加载数据集
# 假设数据集文件名为 'sms_spam_collection.csv',包含 'label' 和 'message' 两列
data = pd.read_csv('sms_spam_collection.csv', encoding='latin-1')
data = data[['label', 'message']]# 2. 数据预处理
nltk.download('stopwords')  # 下载停用词表
stop_words = set(stopwords.words('english'))  # 加载英文停用词
stemmer = PorterStemmer()  # 初始化词干提取器def preprocess_text(text):text = text.lower()  # 转换为小写text = ''.join([c for c in text if c.isalnum() or c.isspace()])  # 去除标点words = text.split()  # 分词words = [word for word in words if word not in stop_words]  # 去除停用词words = [stemmer.stem(word) for word in words]  # 词干提取return ' '.join(words)# 应用预处理
data['message'] = data['message'].apply(preprocess_text)# 3. 特征提取 - TF-IDF
vectorizer = TfidfVectorizer(max_features=3000)  # 限制最大特征数为 3000
X = vectorizer.fit_transform(data['message']).toarray()  # 转换为 TF-IDF 矩阵
y = data['label'].map({'ham': 0, 'spam': 1})  # 将标签转换为 0 和 1# 4. 数据拆分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 5. 训练朴素贝叶斯模型
model = MultinomialNB()
model.fit(X_train, y_train)# 6. 在测试集上预测
y_pred = model.predict(X_test)# 7. 评估模型
print("分类报告:")
print(classification_report(y_test, y_pred))

代码说明

  1. 导入库

    • pandas:用于数据加载和处理。
    • nltk:用于文本预处理(停用词和词干提取)。
    • sklearn:提供特征提取、数据拆分、模型训练和评估工具。
  2. 数据加载

    • 从 CSV 文件加载数据,假设包含 labelmessage 两列。
  3. 数据预处理

    • preprocess_text 函数完成文本清洗、分词、去除停用词和词干提取。
    • 使用 apply 方法对所有短信应用预处理。
  4. 特征提取

    • TfidfVectorizer 将文本转换为 TF-IDF 特征矩阵,限制最大特征数为 3000。
    • toarray() 将稀疏矩阵转换为密集矩阵。
  5. 数据拆分

    • 使用 train_test_split 将数据分为 80% 训练集和 20% 测试集。
  6. 模型训练

    • 使用 MultinomialNB 训练朴素贝叶斯模型。
  7. 模型评估

    • 使用 classification_report 输出准确率、精确率、召回率和 F1 分数。

预期结果

  • 准确率:在 SMS Spam Collection 数据集上,使用 TF-IDF 特征和朴素贝叶斯分类器,通常能达到 95% 以上 的准确率。
  • 输出示例(假设结果):
分类报告:precision    recall  f1-score   support0       0.98      1.00      0.99       9651       0.95      0.85      0.90       150accuracy                           0.97      1115macro avg       0.96      0.92      0.94      1115
weighted avg       0.97      0.97      0.97      1115

总结

在这个示例中,我们展示了如何从文本数据中提取特征并建立模型解决垃圾邮件分类问题:

  • 原始数据:SMS Spam Collection 数据集中的短信文本和标签。
  • 特征提取:使用 TF-IDF 将文本转换为数值特征向量。
  • 建模过程:通过数据预处理、特征提取、模型训练和评估,实现了完整的机器学习流程。
  • 代码实现:提供了可运行的 Python 代码,涵盖所有步骤。

这个方法简单高效,适合文本分类的入门学习。如果需要进一步提升性能,可以尝试词嵌入(如 Word2Vec)或深度学习模型(如 LSTM)。

相关文章:

人工智能中的特征是什么?

什么是人工智能中的特征? 在人工智能中,特征(feature)是指从原始数据中提取出的、能够代表数据关键信息并用于模型训练的属性或变量。特征通常是对原始数据的抽象或转换,目的是捕捉数据中的模式、结构或相关性&#x…...

MongoDB私人学习笔记

俗话说“好记性不如烂笔头”,编程的海洋如此的浩大,养成做笔记的习惯是成功的一步! 此笔记主要是ZooKeeper3.4.9版本的笔记,并且笔记都是博主自己一字一字编写和记录,有错误的地方欢迎大家指正。 一、基础知识&#xf…...

大数据SQL调优专题——调优切入

引入 我们都知道大数据的SQL优化,并非一蹴而就的简单任务,而是一个涉及多个环节的复杂过程。从需求提出到最终交付,任何一个环节的微小偏差都可能影响最终成果。 虽然我们的专栏名字叫大数据SQL调优,但是实际调优并不是简单对SQ…...

Idea java项目结构介绍

一般来说,一个典型的 IntelliJ IDEA Java 项目具有特定的结构,以下是对其主要部分的介绍: 项目根目录 项目的最顶层目录,包含了整个项目的所有文件和文件夹,通常以项目名称命名。在这个目录下可以找到.idea文件夹、.g…...

adb的安装

1、概念 (1)adb(android debug bridge)安卓调试桥,用于完成电脑和手机之间的通信控制。 (2)xcode来完成对于ios设备的操控,前提是有个mac电脑。 2、adb的安装 (1&…...

React + TypeScript 数据模型驱动数据字典生成示例

React TypeScript 数据模型驱动数据字典生成示例 引言:数据字典的工程价值 在现代化全栈开发中,数据字典作为业务实体与数据存储的映射桥梁,直接影响系统可维护性与团队协作效率。传统手动维护字典的方式存在同步成本高和版本管理混乱两大痛…...

Nginx 平滑升级/回滚

平滑升级和回滚的前提条件是 nginx 已经安装好,源码安装 nginx 可参考上一篇文章。在上一篇文章的基础上,nginx 已安装好且已启动,目前是 1.24 版本。 一、平滑升级 Nginx 的平滑升级(热升级)是一种 不中断服务 即可更…...

强化学习演进:GRPO 从何而来

强化学习(Reinforcement Learning, RL)是机器学习的一个分支,其核心是让智能体(Agent)通过与环境(Environment)的交互,学习如何采取最优行动(Action)以最大化…...

Uniapp 小程序复制、粘贴功能实现

在开发 Uniapp 小程序的过程中,复制和粘贴功能是非常实用且常见的交互需求。今天,我就来和大家详细分享如何在 Uniapp 中实现这两个功能。 复制功能:uni.setClipboardData方法 goResult() {uni.setClipboardData({data: this.copyContent, /…...

AOP进阶-02.通知顺序

一.通知顺序 当有多个切面类中的切入点表达式一样时,这些切面类的执行顺序是怎样的呢?如图我们将定义两个切面类,一个MyAspect2,一个MyAspect3,一个MyAspect4。执行后我们发现, 对于目标方法前的通知方法&…...

Node.js 中 fs 模块的高级用法

目录 1. 流式文件处理 示例:大文件复制 2. 文件监控 示例:使用 fs.watch 监控文件变化 3. 异步递归操作 示例:异步递归遍历目录 4. 文件权限管理 示例:修改文件权限 5. 原子操作 示例:原子重命名文件 在 Nod…...

深入探讨K8s资源管理和性能优化

#作者:曹付江 文章目录 前言:1.监控 Kubernetes 集群的资源利用率1.1 Prometheus1.2 Kubernetes 度量服务器1.3 Grafana1.4 自定义指标 2. 识别资源瓶颈2.1. 监控工具2.2. 性能剖析2.3 Kubernetes 事件和日志2.4. 群集自动扩展2.5. 负载测试…...

Buildroot 添加自定义模块-内置文件到文件系统

目录 概述实现步骤1. 创建包目录和文件结构2. 配置 Config.in3. 定义 cp_bin_files.mk4. 添加源文件install.shmy.conf 5. 配置与编译 概述 Buildroot 是一个高度可定制和模块化的嵌入式 Linux 构建系统,适用于从简单到复杂的各种嵌入式项目. buildroot的源码中bui…...

对话式AI引擎:DeepSeek技术引领多模态交互新篇章

摘要 DeepSeek技术公司推出了一项创新服务——“对话式AI引擎”,仅需两行代码即可激活任意大型AI模型的语音对话功能。这项技术使得文本型AI模型迅速转变为具备实时语音对话能力的多模态交互模型,解决了大型AI模型在语音交互方面的不足,为AI行…...

形式化数学编程在AI医疗中的探索路径分析

一、引言 1.1 研究背景与意义 在数字化时代,形式化数学编程和 AI 形式化医疗作为前沿领域,正逐渐改变着我们的生活和医疗模式。形式化数学编程是一种运用数学逻辑和严格的形式化语言来描述和验证程序的技术,它通过数学的精确性和逻辑性,确保程序的正确性和可靠性。在软件…...

HTML——前端基础1

目录 前端概述 前端能做的事情​编辑 两步完成一个网页程序 前端工具的选择与安装 HTML HTML5介绍 HTML5的DOCTYPE声明 HTML基本骨架 文字标签 标题之标签 标签之段落、换行、水平线 标签之图片 标签之超文本链接 标签之文本 列表标签之有序列表 列表标签之无序…...

Blueprint —— Events

目录 一,Event Level Reset 二,Event Actor Begin Overlap 三,Event Actor End Overlap 四,Event Hit 五,Event Any Damage 六,Event Point Damage 七,Event Radial Damage 八&#xff…...

Java一揽子集合整理

Java 集合框架 List ArrayList,底层Object数组,相关方法add,remove Vector,底层Object数组,线程安全,使用 synchronized 关键字进行同步处理 Stack,继承自Vector,是一个后进先出的…...

第二十四:5.2【搭建 pinia 环境】axios 异步调用数据

第一步安装&#xff1a;npm install pinia 第二步&#xff1a;操作src/main.ts 改变里面的值的信息&#xff1a; <div class"count"><h2>当前求和为&#xff1a;{{ sum }}</h2><select v-model.number"n">  // .number 这里是…...

dubbo转http方式调用

业务背景&#xff1a;在当前项目下&#xff0c;所有前端请求均通过外层网关转发到后端这边的dubbo服务&#xff0c;现计划去掉网关层&#xff0c;由前端直接http调用后端dubbo。 解决方案&#xff1a;在前端调用方式不变的前提下&#xff0c;后端服务新建controller层&#xf…...

HybridCLR+Adressable+Springboot热更

本文章会手把手教大家如何搭建HybridCLRAdressableSpringboot热更。 创作不易&#xff0c;动动发财的小手点个赞。 安装华佗 首先我们按照官网的快速上手指南搭建一个简易的项目&#xff1a; 快速上手 | HybridCLR 注意在热更的代码里添加程序集。把用到的工具放到程序集里…...

金融行业专题|某基金公司基于超融合信创平台支持人大金仓数据库的性能评测

随着“自主可控”在 IT 基础设施领域不断深化&#xff0c;数据库的国产化替代也被很多金融机构提上日程。为了保证性能&#xff0c;大部分国产数据库都基于信创架构的裸金属服务器部署。在国产虚拟化/超融合平台上&#xff0c;国产数据库性能表现如何&#xff1f;尤其是搭配信创…...

父组件用的是原生监听,子组件用的是onClick,子组件添加了stopPropagation还是没有阻止传播

父组件用事件监听&#xff0c;子组件用onClick&#xff0c;即使子组件加了stopPropagation还是没有阻止冒泡。父组件可能使用原生的addEventListener来绑定事件&#xff0c;而子组件用的是React的onClick事件。这时候&#xff0c;虽然子组件调用了e.stopPropagation()&#xff…...

【问题解决方案】随笔 - vscode里面出现双环境解决方案

1.问题重述 (.venv) (base) 2.解决方案 看是conda还是venv环境&#xff0c;先给退出了 1.conda 比如Anaconda 的 (base) 环境&#xff0c;使用 conda deactivate2.venv deactivate然后重新激活环境即可 END...

什么是 Java 中的线程安全?

回答 Java 中的线程安全&#xff08;Thread Safety&#xff09;指的是在多线程环境下&#xff0c;当多个线程同时访问和操作共享资源&#xff08;如对象、变量、数据结构等&#xff09;时&#xff0c;能够保证程序的正确性&#xff0c;不会出现数据不一致、竞争条件&#xff0…...

【2025全网最新最全】前端Vue3框架的搭建及工程目录详解

文章目录 安装软件Node.js搭建Vue工程创建Vue工程精简Vue项目文件 Vue工程目录的解读网页标题的设置设置全局样式路由配置 安装软件Node.js 下载地址&#xff1a;https://nodejs.org/zh-cn/ 安装完成后&#xff0c;打开cmd,查看环境是否准备好 node -v npm -vnpm使用之前一定…...

大白话JavaScript闭包在实际项目中有哪些应用场景?

大白话JavaScript闭包在实际项目中有哪些应用场景&#xff1f; 闭包是指有权访问另一个函数作用域中的变量的函数。在实际项目中&#xff0c;闭包有很多应用场景&#xff0c;以下是一些常见的例子&#xff1a; 数据封装和隐私保护 场景&#xff1a;在开发中&#xff0c;有时…...

R 语言科研绘图第 27 期 --- 密度图-分组

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

QT各种版本下载安装

参考链接&#xff1a; 【Qt】超详细&#xff01;Qt4.8.6和VS2010的配置及使用 由于QT官网一般现在进不去&#xff0c;所以下载一些QT版本只能通过镜像或者以前下载存储的安装包来进行&#xff0c;现在推荐两种方法 从参考链接中搬过来&#xff1a; 方案一&#xff1a;国内镜…...

信息系统的安全防护

文章目录 引言**1. 物理安全****2. 网络安全****3. 数据安全****4. 身份认证与访问控制****5. 应用安全****6. 日志与监控****7. 人员与管理制度****8. 其他安全措施****9. 安全防护框架**引言 从技术、管理和人员三个方面综合考虑,构建多层次、多维度的安全防护体系。 信息…...