【机器学习】走进监督学习:构建智能预测模型的第一步

在这里插入图片描述

🎈个人主页:豌豆射手^
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏:机器学习
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!

【机器学习】走进监督学习:构建智能预测模型的第一步

  • 一 初步了解
    • 1.1 概念
    • 1.2 类比
  • 二 步骤
    • 2.1 数据收集与准备:
    • 2.2 数据标注与划分:
    • 2.3 模型选择与构建:
    • 2.4 训练模型:
    • 2.5 模型验证与评估:
    • 2.6 模型使用与部署:
  • 三 优缺点及适用场景
    • 3.1 优点:
    • 3.2 缺点:
    • 3.3 适用场景:
  • 四 两种监督学习的方式
    • 4.1 回归学习
    • 4.2 分类学习
    • 4.3 回归学习和分类学习的区别
  • 五 代码示例与分析
    • 5.1 代码步骤
    • 5.2 输出结果
    • 5.3 完整代码
  • 总结:

在这里插入图片描述

引言:

在数字化时代的浪潮中,机器学习技术已经深入到了我们生活的方方面面,从智能推荐到自动驾驶,从语音助手到医疗诊断,机器学习的应用无处不在。在众多机器学习的方法中,监督学习凭借其强大的预测能力和广泛的应用场景,成为了最受欢迎的算法之一。

本文旨在通过系统梳理监督学习的基本概念、步骤、优缺点及适用场景,以及两种主要的监督学习方式——回归学习和分类学习,为读者提供一个全面而深入的了解,并通过具体的代码示例帮助读者更好地掌握监督学习的实践应用。
在这里插入图片描述

一 初步了解

在这里插入图片描述

1.1 概念

监督学习是机器学习中的一种重要方法,其核心概念是利用带有标签(或目标值)的训练数据来训练模型,使模型能够学习从输入到输出的映射关系。

不懂 样本、特征、标签、是什么的,可以看看这篇博客

在监督学习中,训练数据通常由一系列输入(特征向量)和对应的输出(目标值)组成,这些数据通常被称为样本。

例如:

1 房价预测:

输入特征:

房屋面积:120平方米
卧室数量:3个
楼层:5楼(共10层)
房屋年龄:8

目标值:

房价为500,000

样本数据:

房屋面积卧室数量楼层房屋年龄房价
120358500,000

2 垃圾邮件分类:

输入特征:

邮件内容中的词汇:["免费", "赢取", "大奖", "点击", "链接"]
发送者地址:spammer@example.com
邮件主题:"赢取iPhone,点击这里!"

目标值:

分类标签为1(表示垃圾邮件)

样本数据(通常会将文本转换为数值向量):

词汇1词汇2发送者地址邮件主题标签
11AB1
00CD0

模型通过对这些样本的学习,提取特征值和映射关系,并试图找到一个函数,将输入数据映射到输出数据。

监督学习的目标是使模型在训练后能够对新的、未见过的数据进行预测。

这种预测可以是对离散型变量的分类,也可以是对连续型变量的回归预测。

例如,在垃圾邮件识别中,监督学习可以通过对已知的垃圾邮件和正常邮件进行标记,并训练模型学习这些邮件的特征,从而实现对新邮件的分类预测。

在回归预测中,监督学习可以通过分析历史数据中的输入和输出关系,建立回归方程,从而预测新的数据点的输出值。

此外,监督学习假设输入与输出的随机变量遵守联合概率分布。

也就是说输入和输出之间存在某种概率关系,对于特定的输入值,有一个与之关联的输出值的概率分布。

概率分布
它是概率论的基本概念之一,是指用于表述随机变量取值的概率规律。事件的概率表示了一次试验中某一个结果发生的可能性大小。若要全面了解试验,则必须知道试验的全部可能结果及各种可能结果发生的概率,即随机试验的概率分布。

但这一联合概率分布的具体定义对学习系统来说是未知的。

这意味着在实际应用中,我们无法直接知道或描述这个联合概率分布的确切形式。但是,我们可以通过观察和分析数据来估计它。

训练数据和测试数据被看作是按照这一联合概率分布独立同分布产生的。

意味着每个数据点(无论是训练数据还是测试数据)都是从这个联合概率分布中独立抽取的,并且所有数据点都遵循相同的分布。

监督学习的模型可以是概率模型或非概率模型,由条件概率分布或决策函数表示,用于对具体的输入进行输出预测。

概率模型:这类模型直接输出输入对应的输出的概率分布。例如,它们可以输出一个类别的概率,而不是直接输出一个类别标签。

非概率模型:这类模型直接输出预测结果,如类别标签或回归值,而不涉及概率。

条件概率分布:在概率模型中,这描述了给定输入时输出的概率分布。

决策函数:在非概率模型中,这描述了如何将输入映射到输出。

总的来说,监督学习是一种利用标记数据进行模型训练的方法,通过学习输入和输出之间的关系,实现对新数据的预测。

它在分类、回归等任务中发挥着重要作用,是机器学习领域的一种基础且重要的学习方法。

1.2 类比

举一个现实中的例子来类比监督学习的概念,我们可以考虑学生学习数学的过程。

在这里插入图片描述

在这个类比中,学生相当于机器学习中的模型,而老师则扮演着提供指导和反馈的角色。数学题目和答案则分别对应于监督学习中的输入特征和标签。

想象一下,学生正在学习解决一元线性方程。

老师首先会展示一系列的一元线性方程题目(输入特征),并给出每个方程的答案(标签)。

学生根据老师展示的示例,尝试自己去解这些方程。

起初,学生可能会犯一些错误,但老师会检查学生的解答,并指出其中的错误 (这是监督学习中损失函数的角色)

老师会解释为什么这个答案是错的,以及正确的解法应该是怎样的。这样,学生就能从错误中学习,并逐渐改进自己的解题方法。

随着时间的推移,学生通过不断的练习和老师的反馈,逐渐掌握了解决一元线性方程的技巧。

最终,学生能够在没有老师指导的情况下,独立解决类似的一元线性方程题目。

这个过程与监督学习非常相似。

在监督学习中,模型通过大量的带标签的训练数据来学习输入特征和输出标签之间的关系。

模型会根据预测结果与实际标签之间的差异(损失)来调整其参数,从而改进其预测性能。

模型参数是机器学习模型内部的可调节量,用于优化模型的预测性能,是模型训练过程中的关键组成部分。

最终,经过充分的训练,模型能够对新的、未见过的输入数据进行准确的预测。

通过这个类比,我们可以更好地理解监督学习的概念:利用带有标签的训练数据来指导模型学习输入与输出之间的关系,并通过不断迭代和优化来提高模型的预测能力。

二 步骤

在这里插入图片描述
机器学习中监督学习的步骤可以分为以下几个关键部分:

2.1 数据收集与准备:

1 收集数据:

利用网络爬虫从网站抽取数据、从RSS反馈或API获取信息,或从设备发送的实测数据中获取。

这些数据可能包括文本、图像、数值等各种类型。

2 数据预处理:

确保数据格式符合要求,清洗数据,例如处理缺失值、异常值或垃圾数据。

3 特征工程:

包括特征提取和特征选择。

对于原始数据,可能需要通过一些方法(如PCA降维、独热编码等)转换为模型可以处理的形式。尽管在深度学习方法中,卷积神经网络(CNN)等结构可以自动提取特征,但在某些情况下,手动特征工程仍然是有帮助的。

2.2 数据标注与划分:

1 数据标注:

对于监督学习,数据集中的每个样本都需要有一个标签或目标值。

例如,在图像分类任务中,每张图像都需要被标注为对应的类别。

2 数据集划分:

将数据集划分为训练集、验证集和测试集。

训练集用于训练模型,验证集用于选择最佳的超参数或模型,测试集用于评估模型的最终性能。

2.3 模型选择与构建:

1 选择模型:

根据问题的性质和数据的类型,选择合适的模型。

例如,对于图像分类问题,卷积神经网络(CNN)可能是一个好的选择。

2 构建模型:

定义模型的架构,确定输入和输出的格式,以及任何必要的层或组件。

2.4 训练模型:

  • 将预处理和标注后的数据输入到模型中。
  • 通过优化算法(如梯度下降法及其变种)不断迭代,调整模型的参数,以最小化预测输出与实际标签之间的差异(即损失函数)
  • 在训练过程中,可能还需要使用一些正则化技术来防止过拟合。

2.5 模型验证与评估:

使用验证集来评估模型在不同超参数或结构下的性能,并选择最佳模型。
使用测试集来评估最终模型的性能,确保其具有良好的泛化能力。

2.6 模型使用与部署:

一旦模型经过训练和验证,就可以将其部署到实际应用中,对新数据进行预测或分类。

需要注意的是,以上步骤是一个简化的流程,实际的机器学习任务可能涉及更多的细节和复杂性。此外,随着数据量的增长和模型复杂性的提高,可能还需要考虑使用更高级的技术和方法,如迁移学习、集成学习或分布式计算等。

三 优缺点及适用场景

在这里插入图片描述

3.1 优点:

1 准确性高:

由于监督学习使用带有标签的数据进行训练,模型能够学习到输入与输出之间的精确关系,因此在预测和分类任务中通常具有较高的准确性。

2 可解释性强:

与某些黑盒模型(如深度学习模型)相比,某些监督学习模型(如线性回归和决策树)的结果更易于解释和理解。

3 灵活性高:

监督学习可以应用于各种类型的数据和任务,包括文本分类、图像识别、推荐系统等。

3.2 缺点:

1 数据标注成本高:

监督学习需要大量的带标签数据进行训练,数据标注工作往往非常耗时和昂贵,特别是对于一些复杂领域或大规模数据集。

2 泛化能力受限:

如果训练数据分布与实际应用场景中的数据分布差异较大,监督学习模型的泛化能力可能会受到限制。

3 对异常值敏感:

监督学习模型可能容易受到训练数据中的异常值或噪声的影响,导致模型性能下降。

3.3 适用场景:

1 文本分类:

根据已有的文本数据集训练分类模型,对新文本进行分类,如垃圾邮件过滤、新闻分类等。

2 图像识别:

通过标注好的图像训练分类模型,从而对未知图片进行分类,如人脸识别、物体识别等。

3 推荐系统:

根据用户历史数据,训练推荐模型,推荐用户可能感兴趣的产品或服务,如电商推荐、视频推荐等。

4 风险评估:

根据历史数据中风险因素的相关信息,训练模型,对新的风险因素进行评估与预测,如信用评分、疾病预测等。

总的来说,监督学习在需要利用已知标签数据进行预测和分类的任务中表现出色,但也需要考虑到数据标注成本、泛化能力以及异常值处理等问题。在实际应用中,需要根据具体任务和数据情况来选择合适的监督学习方法和模型。

四 两种监督学习的方式

在这里插入图片描述
监督学习的主要分类包括回归和分类。

回归用于预测连续型变量的数值,如房价或股票价格;而分类则用于将输入数据划分为不同的类别,例如图像识别中的物体分类。

这两种方式都是监督学习在机器学习中的重要应用,它们利用带有标签的数据进行训练,以便模型能够自动地预测新数据的输出或类别。

4.1 回归学习

回归学习是监督学习中的一个重要分支,主要用于预测数值型输出

其核心思想是通过学习输入变量与输出变量之间的关系,来预测新的数据点的输出值。

数值型输出是指输出的结果为数字类型的数据

例如:

房价预测:

输入:
房屋面积(120平方米)、房间数(3室)、
地理位置(市中心)、建筑年代(2000年)。输出:预测的房价 580,000元。

回归学习广泛应用于各种预测问题,如房价预测、股票价格预测、销售额预测等。

回归学习有多种类型,包括线性回归和非线性回归。

线性回归假设输入变量与输出变量之间存在线性关系,通过拟合一条直线来逼近数据点。

非线性回归则允许更复杂的关系,可以使用多项式回归、决策树回归、神经网络等方法来处理。

回归学习的性能评估通常使用预测误差来衡量,如均方误差(MSE)、均方根误差(RMSE)等。这些指标可以帮助我们了解模型的预测精度和泛化能力。

总的来说,回归学习是一种强大的工具,可以帮助我们理解和预测数值型数据。通过选择合适的回归方法和调整模型参数,我们可以构建出准确且有效的预测模型,为实际应用提供有价值的洞见和决策支持。

4.2 分类学习

分类学习是监督学习中的另一个关键分支,旨在通过训练数据学习一个模型或函数,以便将新的、未见过的数据点正确地划分到预定的类别中。

例如:

文本情感分类:

输入:一条电影评论的文本内容。
输出:预测的类别标签,如“正面”或“负面”。

图像识别:

输入:一张包含物体的图片。
输出:预测的类别标签,如“猫”、“狗”或“汽车”。

这种学习方法广泛应用于图像识别、文本分类、垃圾邮件过滤等多种实际场景中。

分类学习的核心在于学习一个分类器或分类模型,该模型能够根据输入的特征来预测输出类别。分类器的构建通常依赖于各种算法和技术,如决策树、支持向量机、朴素贝叶斯、神经网络等。

这些算法通过不同的方式从训练数据中提取特征和类别之间的关系,并尝试找到能够最小化分类错误的最优模型。

一旦分类器训练完成,它就可以用来对新的、未见过的数据进行分类。通过将新数据的特征输入到分类器中,分类器会输出一个预测的类别标签。

这个预测的标签就是分类器根据已学习的知识对新数据进行的分类结果。

分类学习的性能通常通过准确率、召回率、F1分数等指标来评估。这些指标可以帮助我们了解分类器在不同类别上的表现,以及整体上的分类效果。

总的来说,分类学习是一种强大的监督学习方法,可以帮助我们自动地将数据划分为不同的类别。通过选择合适的算法和调优模型参数,我们可以构建出高效且准确的分类器,为各种实际应用提供有力的支持。

4.3 回归学习和分类学习的区别

回归学习和分类学习是监督学习中的两种主要方法,它们的主要区别在于处理的数据类型和目标的不同。

首先,回归学习的目标是预测一个具体的数值,即输出是连续的。

例如,预测房价、股票价格、销售额等都属于回归问题。回归学习模型通过训练数据学习输入特征与目标变量之间的映射关系,然后利用这个模型对新的、未见过的数据进行预测,得到的是一个具体的数值预测结果。

而分类学习的目标则是将输入数据划分到预定义的类别中,输出是离散的类别标签。

例如,图像识别、垃圾邮件检测、新闻分类等都是分类问题的典型应用。分类学习模型通过学习训练数据中的特征与类别标签之间的关系,来预测新数据的所属类别。

其次,回归学习和分类学习在评估模型性能时使用的指标也有所不同。

回归学习常用的评估指标包括均方误差(MSE)、均方根误差(RMSE)等,这些指标衡量了模型预测值与真实值之间的差异。

而分类学习则常使用准确率、召回率、F1分数等指标来评估模型的分类性能。

此外,从算法的角度来看,回归学习和分类学习也有一些不同的常用方法。

回归学习可以使用线性回归、决策树回归、岭回归等多种算法

而分类学习则常用逻辑回归、支持向量机、决策树分类、随机森林等算法。

需要注意的是,虽然逻辑回归的名字中包含“回归”,但它实际上是一种分类算法,用于处理二分类或多分类问题。

综上所述,回归学习和分类学习在数据类型、目标、评估指标和常用算法等方面都存在明显的区别。

在实际应用中,我们需要根据问题的性质和数据的特点来选择合适的学习方法。

五 代码示例与分析

在这里插入图片描述

以下是一个使用Python和scikit-learn库进行简单线性回归(一种监督学习算法)的示例代码。这个例子中,我们将使用虚构的数据集来预测一个目标变量(y)基于一个特征(X)。

首先,确保你已经安装了scikit-learn库。如果没有安装,你可以使用pip来安装:

pip install scikit-learn

5.1 代码步骤

1:导入必要的库

import numpy as np  # 导入numpy库,用于数组操作  
from sklearn.model_selection import train_test_split  # 导入用于数据集拆分的函数  
from sklearn.linear_model import LinearRegression  # 导入线性回归模型  
from sklearn import metrics  # 导入用于评估模型性能的指标计算函数

2:创建虚构的数据集

# 假设我们有一些虚构的数据  
# 特征X和目标变量y  
X = np.array([[1], [2], [3], [4], [5]])  # 创建特征X的数组  
y = np.array([2, 4, 6, 8, 10])  # 创建目标变量y的数组

3:拆分数据集为训练集和测试集

# 将数据集拆分为训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X, y, 
test_size=0.2, random_state=0)

这里,train_test_split函数将数据集X和y拆分为训练集和测试集,其中测试集的大小是原始数据集的20%(test_size=0.2),random_state=0确保每次拆分的结果都是相同的。

4:创建线性回归模型对象

# 创建线性回归模型对象  
regressor = LinearRegression()

这里,我们创建了一个线性回归模型对象regressor。

5:使用训练数据拟合模型

# 使用训练数据拟合模型  
regressor.fit(X_train, y_train)

使用fit方法,我们将训练数据X_train和y_train用于训练线性回归模型。

6:使用测试数据进行预测

# 使用测试数据进行预测  
y_pred = regressor.predict(X_test)

使用predict方法,我们根据测试数据X_test进行预测,并将预测结果存储在y_pred中。

7:输出模型的系数和截距

# 输出模型的系数和截距  
print('系数: \n', regressor.coef_)  
print('截距: \n', regressor.intercept_)

这里,我们打印出线性回归模型的系数(斜率)和截距。

8:评估模型性能

# 评估模型性能  
print('均方误差: ', metrics.mean_squared_error(y_test, y_pred))  
print('均方根误差: ', np.sqrt(metrics.mean_squared_error(y_test, y_pred)))

我们使用均方误差(MSE)和均方根误差(RMSE)来评估模型的性能。mean_squared_error函数计算了预测值y_pred和实际值y_test之间的均方误差,然后我们计算其平方根得到均方根误差。

在这个例子中,我们首先导入了必要的库,并创建了一些虚构的数据。然后,我们使用train_test_split函数将数据集拆分为训练集和测试集。

接着,我们创建了一个LinearRegression对象,并使用训练数据拟合了这个模型。

最后,我们使用测试数据进行了预测,并打印出了模型的系数、截距以及均方误差和均方根误差来评估模型的性能。

请注意,这个示例非常基础,实际使用中你可能需要处理更复杂的数据集,包括数据清洗、特征工程、模型选择和调优等多个步骤。此外,对于非线性关系或更复杂的问题,你可能需要使用其他类型的回归模型或分类模型

5.2 输出结果

这段代码使用了线性回归模型来拟合虚构的数据集,并评估了模型的性能。

由于数据点之间的关系是线性的(y = 2 * X),线性回归模型应该能够完美地拟合训练数据,并且对于测试数据也能做出准确的预测。

因此,输出模型的系数和截距时,系数应该接近2(因为y是X的两倍),截距应该接近0(因为没有常数项偏移)。均方误差和均方根误差都应该接近0,因为模型应该能完美地预测测试数据点。

所以,可能的输出结果是:

系数:   [[2.]]  
截距:   [0.]  
均方误差:  0.0  
均方根误差:  0.0

请注意,由于代码使用了随机种子random_state=0,实际输出结果将与上面的结果相同(前提是scikit-learn库的版本和行为没有变化)。如果没有指定随机种子,则每次运行代码时,由于数据集的随机分割,结果可能会有所不同,但在这个特定情况下,由于数据集的简单性,结果仍然很可能接近完美。

5.3 完整代码

import numpy as np  
from sklearn.model_selection import train_test_split  
from sklearn.linear_model import LinearRegression  
from sklearn import metrics  # 假设我们有一些虚构的数据  
# 特征X和目标变量y  
X = np.array([[1], [2], [3], [4], [5]])  
y = np.array([2, 4, 6, 8, 10])  # 将数据集拆分为训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)  # 创建线性回归模型对象  
regressor = LinearRegression()  # 使用训练数据拟合模型  
regressor.fit(X_train, y_train)  # 使用测试数据进行预测  
y_pred = regressor.predict(X_test)  # 输出模型的系数和截距  
print('系数: \n', regressor.coef_)  
print('截距: \n', regressor.intercept_)  # 评估模型性能  
print('均方误差: ', metrics.mean_squared_error(y_test, y_pred))  
print('均方根误差: ', np.sqrt(metrics.mean_squared_error(y_test, y_pred)))

总结:

通过本文的详细阐述,我们全面了解了监督学习这一强大的机器学习技术。

从初步的概念引入,到具体的学习步骤,再到优缺点及适用场景的剖析,我们逐步深入,逐渐揭开了监督学习的神秘面纱。

同时,我们也详细探讨了回归学习和分类学习这两种主要的监督学习方式,并通过具体的代码示例,让读者更加直观地感受到监督学习的实际应用。

监督学习以其卓越的预测能力和广泛的应用领域,成为了机器学习领域的重要分支。

在未来的发展中,随着数据量的不断增大和算法的不断优化,监督学习将会在更多领域发挥更大的作用。

希望本文能够为广大机器学习爱好者提供一个入门和深入学习的参考,帮助大家更好地掌握监督学习,为未来的智能时代做好准备。

在这里插入图片描述

这篇文章到这里就结束了

谢谢大家的阅读!

如果觉得这篇博客对你有用的话,别忘记三连哦。

我是豌豆射手^,让我们我们下次再见

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Docker 安装部署 ORACLE 11g数据库

Docker 安装部署 ORACLE 11g数据库 背景: ​ 最新在开发数据中台数据接入模块,其中设计很多数据类型,包括ORACLE ,因为是测试使用,想着快速部署测试,于是使用Docker 部署 Oracle , 生产环境不建议使用Doc…

YOLOv7-Openvino和ONNXRuntime推理【CPU】

纯检测系列: YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv7-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 跟踪系列: YOLOv5/6/7-O…

onecloud刷CasaOS系统后如何安装内网穿透实现公网访问本地文件

文章目录 1. CasaOS系统介绍2. 内网穿透安装3. 创建远程连接公网地址4. 创建固定公网地址远程访问 2月底,玩客云APP正式停止运营,不再提供上传、云添加功能。3月初,有用户进行了测试,局域网内的各种服务还能继续使用,但…

十二、项目采购管理

十二、项目采购管理 1、规划采购管理 ​ 规划采购管理是记录项目采购决策、明确采购方法,及识别潜在卖方的过程。 1,1、关键输入 组织过程资产 组织使用的各种合同协议类型也会影响规划采购管理过程中的决策。能够影响规划采购管理过程的组织过程资产包括&#xf…

力扣爆刷第96天之hot100五连刷66-70

力扣爆刷第96天之hot100五连刷66-70 文章目录 力扣爆刷第96天之hot100五连刷66-70一、33. 搜索旋转排序数组二、153. 寻找旋转排序数组中的最小值三、4. 寻找两个正序数组的中位数四、20. 有效的括号五、155. 最小栈 一、33. 搜索旋转排序数组 题目链接:https://le…

【研发日记】Matlab/Simulink技能解锁(五)——Simulink布线技巧

前言 见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》 见《【研发日记】Matlab/Simulink技能解锁(二)——在Function编辑窗口Debug》 见《【研发日记】Matlab/Simulink技能解锁(三)——在Stateflow编辑窗口Debug》 见《【研发日记】Matlab/Simulink…

虚拟环境的激活

(此博客仅用于我记录虚拟环境的激活方法) 虚拟环境的激活命令: venv/Scripts/activate 在F:\git repo\Database-Course-Design 这个文件夹中启动命令行 这个文件夹中含有虚拟环境venv 输入命令venv/Scripts/activate,就得到下面的结果: 此时就激活了虚拟环境&…

python 基础知识点(蓝桥杯python科目个人复习计划64)

今日复习内容:做题 例题1:蓝桥课程抢购 问题描述: 为了能让更多的同学学到IT技术,蓝桥云课又开始了课程限时打折活动。 作为初学者的你,希望尽可能买到含金量总额更高的课程,当然其他同学也是这么想。 …

解锁基于LLMS的咒语:通过上下文学习重新思考对齐

一、写作动机: 最近的一项研究,LIMA,表明仅使用1K个示例进行SFT也可以实现显著的对齐性能,这表明对齐微调的效果可能是“表面的”。(知识和推理能力来源于预训练,而不是必须通过对齐微调获得的。&#xff…

计算机图形学学习(一)——线的绘制、三角形填充绘制

以下摘抄自本人的计算机图形学上机报告 实验内容及要求: 理解并掌握中点画线法、Bresenham算法、扫描线法和重心坐标法的基本原理和算法步骤。使用编程语言C实现上述算法,并编写相应的代码。对于直线绘制算法,要求能够绘制水平、垂直、斜向等…

【消息队列开发】 实现内存加载

文章目录 🍃前言🌳实现思路🚩读取消息长度🚩读取相应长度的消息🚩进行反序列化🚩判定是否有效🚩加入有效消息🚩收尾工作🚩代码实现 ⭕总结 🍃前言 本次开发目…

未解决的问题:字符数组中元素的个数

情形1&#xff1a; #include<stdio.h> int main() {int arr_int1[10];int arr_int2[]{1,2,3,4,5};char arr_char1[10];char arr_char2[]"world";char arr_char3[]{h,e,l,l,o};int i;i0;while(arr_char2[i]!\0){i;}printf("%d\n",i);i0;while(arr_ch…

lwip优化任务优先级

在lwIP中&#xff0c;ethernetif_input线程负责接收和处理从以太网接口接收到的数据包&#xff0c;而tcpip主线程则负责处理lwIP协议栈中的各种事件和数据包。一般情况下&#xff0c;ethernetif_input线程的优先级应该设置为低于tcpip主线程的优先级。 这是因为在实时操作系统…

HarmonyOS ArkUI入门—HarmonyOS ArkUI来开发一个健康饮食应用

本文演示如果在DevEco Studio 3里面&#xff0c;用HarmonyOS的ArkUI来开发一个健康饮食应用。体验HarmonyOS 3最新API 9&#xff01; 获取HarmonyOS应用 HarmonyOS的ArkUI来开发一个健康饮食的ArkUI程序“ArkUIHealthyDiet”&#xff0c;基础代码已经有了[1]&#xff0c;个人…

20 OpenCV像素重映

文章目录 像素重映remap 重映算子代码示例 像素重映 简单点说就是把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去&#xff0c;形成一张新的图像。 g(x,y)是重映射之后的图像&#xff0c;h(x,y)是功能函数&#xff0c;f是源图像 remap 重映算子 Remap…

Java项目:52 springboot基于SpringBoot的旅游网站的设计与实现013

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 旅游网站主要功能如下&#xff1a; 1.用户管理&#xff1a;注册、登录、退出、修改密码&#xff1b; 2.分类显示&#xff1a;显示旅游路线的分类&am…

MD5算法:密码学中的传奇

title: MD5算法&#xff1a;密码学中的传奇 date: 2024/3/15 20:08:07 updated: 2024/3/15 20:08:07 tags: MD5起源算法原理安全分析优缺点比较技术改进示例代码应用趋势 MD5算法起源&#xff1a; MD5&#xff08;Message Digest Algorithm 5&#xff09;算法是由MIT的计算机…

OpenHarmony教程指南—ArkTS时钟

简单时钟 介绍 本示例通过使用ohos.display 接口以及Canvas组件来实现一个简单的时钟应用。 效果预览 使用说明 1.界面通过setInterval实现周期性实时刷新时间&#xff0c;使用Canvas绘制时钟&#xff0c;指针旋转角度通过计算得出。 例如&#xff1a;"2 * Math.PI /…

Python QT 之PySide6简单入门

目录 1.开发环境配置 1.1 下载PySide6 2.2 配置pycharm相关快捷方式 PySide6_Designer - QT Designer 设计UI PySide6_UIC - 将QT Designer生成的UI文件转换为python文件 PySide6_RCC - 将RCC文件转换为python文件 2.第一个开发实例 2.1 QT desiger设计界面 2.2 将ui文…

一篇普通的生活周记

学习进度汇报&#xff1a; 这周主要是参考着视频敲完了一个vue2后台项目&#xff0c;主要是vue2element-ui,因为之前写项目的时候用过lay-ui&#xff0c;虽然是结合着node.js写的&#xff0c;但是大差不差&#xff0c;所以上手也很快。同时&#xff0c;学长发给我们了ruoyi项目…