灰色关联度/模糊聚类/最邻近算法KNN/随机森林RF/极限学习机

一、灰色关联度

简介:

对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,称为关联度。在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较高;反之,则较低。因此,灰色关联分析方法,是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。
灰色系统理论主要关注的是信息不完全、不确定的系统分析与处理。
灰色关联度是用来衡量两个或多个因素(序列、数据集)之间相似性或关联程度的一种量化指标,适用于处理部分信息已知、部分未知的“灰色”情况。

基本概念:

1.灰色系统: 是指信息不完全、部分未知或随机性较大的系统,其中变量之间的关系是模糊的或灰色的。
2.灰色关联度:表示两个时间序列或者数据集合在发展态势上的一致性或相似性程度。关联度值越接近于1,表示两个序列的关联程度越高;反之,若接近于0,则关联程度低。
计算步骤:
数据预处理:将数据转换为可以在同一尺度上比较的形式
确定参考序列和比较序列:选择一个作为参考序列(或称母序列),其余为比较序列。
计算关联系数:基于序列之间的相对差值,考虑分辨系数的影响。
确定分辨率系数:一个反映评价精度要求的参数,通常取值在01之间。

应用领域:

灰色关联度分析广泛应用于经济管理、工程科学、环境评估、社会学、医学等多个领域,用于决策支持、系统评价、预测等方面。
import numpy as np
import pandas as pd
from scipy.interpolate import make_interp_spline
import matplotlib.pyplot as plt# 设置字体以便支持中文显示
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  # 字体# 数据准备
data = {'产量%': [123.2, 112.2, 92.2, 118.4, 87.5],'掘进%': [90.4, 114.4, 91.1, 120.5, 85.5],'工效%': [115.6, 108.6, 90.4, 116.3, 96.8],'质量%': [100.5, 85.2, 100.7, 85.7, 120.5],'成本%': [80.2, 87.3, 115.6, 80.5, 140.1],'安全%': [0.858, 0.914, 0.946, 0.606, 0.806]
}# 理想对象数据(在这里直接作为参照标准,不作为实际的“矿区6”)
ideal_object = {'产量%': 123.3,'掘进%': 120.5,'工效%': 116.3,'质量%': 85.2,'成本%': 80.2,'安全%': 0.606
}# 转换为DataFrame
df = pd.DataFrame(data)# 灰色关联度分析函数
def calculate_grey_relations_all_indicators(df, reference_series):grey_relations_all = []for col in df.columns:normalized_df_col = (df[col] - df[col].min()) / (df[col].max() - df[col].min())normalized_reference_col = (reference_series[col] - df[col].min()) / (df[col].max() - df[col].min())rho = 0.5delta_max = np.max(np.abs(normalized_df_col))delta = np.abs(normalized_df_col - normalized_reference_col)grey_relations = 2 * (1 - np.divide(delta_max + rho * delta, delta_max + rho * delta_max))grey_relations_all.append(grey_relations.tolist())return grey_relations_all# 计算所有指标下的灰色关联度
grey_relations_all = calculate_grey_relations_all_indicators(df, ideal_object)# 使用spline插值使线条平滑
num_points = 100  # 插值后的点数
x_new = np.linspace(1, len(df.columns), num_points)
smooth_relations_all = []for relations in grey_relations_all:spline = make_interp_spline(range(1, len(relations) + 1), relations, k=3)  # k=3 for cubic interpolationsmooth_relations = spline(x_new)smooth_relations_all.append(smooth_relations)# 绘制组合图
fig, ax = plt.subplots(figsize=(12, 6))colors = ['r', 'g', 'b', 'm', 'c', 'y']
lines = []for i, smooth_relations in enumerate(smooth_relations_all, 1):line, = ax.plot(x_new, smooth_relations, color=colors[i - 1], label=f'矿区{i}')lines.append(line)# ...
ax.set_xlabel('指标')
ax.set_ylabel('与理想对象的灰色关联度')
ax.set_title('各矿区在所有指标上与理想对象的灰色关联度平滑轨迹')# 直接设置x轴刻度位置为每个指标的索引位置
ax.set_xticks(range(1, len(df.columns) + 1))
ax.set_xticklabels(df.columns)# ax.legend(handles=lines)
# 获取当前的图例handles和labels
handles, labels = ax.get_legend_handles_labels()# "矿区6"实际上是代表理想对象的线条,修改它的标签
for i, label in enumerate(labels):if label == '矿区6':labels[i] = '理想对象'# 重新设置图例
ax.legend(handles, labels)plt.tight_layout()
plt.show()

运行结果:
在这里插入图片描述

二、模糊聚类

模糊聚类是一种数据分析方法,它属于聚类分析的一个分支,主要用于处理数据集中元素归属不绝对清晰的情况。与硬聚类(如K-means算法)不同,模糊聚类允许一个数据对象同时以不同的程度(概率或隶属度)属于多个类别,这种归属关系是连续的、而非离散的,从而更好地模拟现实世界中某些事物分类的模糊性。

基本思想

模糊聚类的基本思想是通过计算数据点对各个聚类中心的隶属度(membership degree),来决定数据点属于各个类别的程度。这里的隶属度是一个介于01之间的实数,表示某个对象属于某类别的程度。0表示完全不属于,1表示完全属于,而01之间的值则表示不同程度的归属。与传统硬聚类相比,模糊聚类更能适应那些边界不明显、类别间有重叠的数据集。

模型步骤

模糊聚类的主要步骤包括:1. 初始化:首先确定聚类的数量(即类别数C),并为每个数据点分配到所有类别的初始隶属度矩阵。初始时,通常随机或根据经验设置这些隶属度。2.隶属度更新:根据某种优化准则(如最小化模糊聚类的目标函数,通常是类内平方误差之和),迭代地更新每个数据点对所有类别的隶属度。这个过程中,数据点的隶属度是根据其到各个聚类中心的距离(或其他相似性度量)动态调整的,而且每个数据点对所有类别的隶属度之和可以不为1,以反映其模糊的分类情况。3. 聚类中心更新:基于更新后的隶属度矩阵,重新计算每个类别的聚类中心。聚类中心通常定义为其所属所有数据点的加权平均,其中权重是数据点对该类别的隶属度。4. 收敛判断:重复步骤23,直到隶属度矩阵的变化小于预设的阈值或达到最大迭代次数,这时认为聚类过程收敛。

应用案例

模糊聚类在众多领域都有广泛的应用,以下是几个典型的应用案例:1. **图像分割**:在数字图像处理中,模糊聚类可以用来识别和分割具有相似特征的区域,尤其是在图像边缘不清晰或者颜色渐变的情况下,模糊聚类能够提供更自然的分割效果。2. **医学诊断**:基于病人的多种生理指标,模糊聚类可以用来对疾病进行分类,帮助医生诊断病情。由于病人症状可能同时符合多种疾病的特征,模糊聚类能够更准确地反映这种模糊性。3. **市场细分**:在市场营销中,通过分析消费者的购买行为、年龄、收入等多个维度,模糊聚类可以帮助企业识别不同的消费者群体,而且每个消费者可以根据其消费习惯不同程度地属于不同的细分市场。4. **社交网络分析**:模糊聚类可以用于分析社交网络中的用户群体,根据用户的互动频率、兴趣相似度等指标,划分出具有不同程度重叠的社交圈,更真实地反映复杂的人际关系网络。模糊聚类因其能够处理不确定性和复杂性的能力,在处理现实世界中许多非精确分类问题时展现出了独特的优势。
代码:
import numpy as np
import matplotlib.pyplot as plt
from skimage.io import imread, imshow
from skimage.color import rgb2gray      # skimage.color.rgb2gray 将RGB图像转换为灰度图像。
from skimage.util import img_as_float
from matplotlib.colors import ListedColormap# 定义模糊C均值函数,用于图像分割
'''
image(输入图像)
c(类别数量)
m(模糊化指数)
max_iter(最大迭代次数)
tol(收敛阈值)
'''
def fuzzy_c_means(image, c, m, max_iter=100, tol=1e-5):height, width = image.shapeU = np.random.rand(height * width, c)U /= np.sum(U, axis=1)[:, np.newaxis]for _ in range(max_iter):V = np.dot(U.T, image.reshape(-1, 1)) / np.sum(U, axis=0).reshape(-1, 1)V = V / np.linalg.norm(V, axis=0)distances = np.sum(np.power(image.reshape(-1, 1)[:, :, np.newaxis] - V, 2), axis=1)numerator = distancesdenominator = np.sum(np.power(distances, 1 / (m - 1)), axis=0)U_new = np.power(numerator, 1 / (m - 1)) / denominatorU_new /= np.sum(U_new, axis=1)[:, np.newaxis]if np.abs(U - U_new).sum() < tol:breakelse:U = U_newsegmented_image = np.argmax(U, axis=1).reshape((height, width))return segmented_image.astype(np.uint8)# 主程序
if __name__ == "__main__":image_path = 'images/others/people01.jpg'image = imread(image_path)gray_image = rgb2gray(image) if len(image.shape) > 2 else gray_image    # 转换为灰度图像gray_image = img_as_float(gray_image)       # 将灰度图像数据转换为浮点型c = 4  # 假设分割为两类m = 2  # 模糊化指数# 调用fuzzy_c_means函数对灰度图像进行分割,得到分割后的图像。segmented = fuzzy_c_means(gray_image, c=c, m=m, max_iter=100, tol=1e-5)# 定义一个简单的离散颜色映射,这里以4类为例cmaps = ['red', 'green', 'blue', 'yellow']  # 对应类别颜色# 使用ListedColormap创建离散颜色映射cmap = ListedColormap(cmaps[:c])# 显示原图和分割后的图像fig, axs = plt.subplots(1, 2, figsize=(10, 5))  # 设定窗口大小为2axs[0].imshow(gray_image, cmap='gray')  # 在第一个子图中显示原始的灰度图像axs[0].set_title('Original Image')axs[1].imshow(segmented, cmap=cmap)  # 在第二个子图中显示分割后的图像,使用自定义颜色映射axs[1].set_title(f'Segmented Image (Color Coded, {c} Classes)')fig.colorbar(axs[1].images[0], ax=axs[1], fraction=0.7, pad=0.01)plt.tight_layout()plt.show()

图像分割结果:
在这里插入图片描述

三、最邻近算法KNN

最邻近算法(Nearest Neighbor Algorithm,简称NN或KNN,当涉及K个最近邻时),是一种常用的分类和回归方法,尤其在模式识别和机器学习领域有着广泛的应用。该算法的核心思想非常直观:给定一个新的未知样本,找到训练集中与其最相似(或最近)的已知样本,然后根据这个(或这些)邻居的类别来预测新样本的类别(在分类任务中),或者是邻居的属性值的平均或加权平均(在回归任务中)。KNN,就是K个最近的邻居的意思,即每个样本都可以都可以用它最接近的K个邻居来代表

核心思想:

如果一个样本在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特征。(邻居是啥我是啥)最近的K个里,多的是啥我就是啥,一样多就随机
难在怎么定义邻居,几个?KNN算法结果很大程度取决于K值的选择
KNN算法三要素:K值的选择、距离度量的方式、分类决策规则K值的选择

距离度量:

数据决定模型好坏的上限,调参只是无限逼近这个上限。

K值的选择:

根据样本的分布选择一个较小的值,通过交叉验证(调参)选取合适的K值。
交叉验证就是所有参数笛卡尔积之后的结果。(排列组合)
K值较小:训练误差较小,容易发生过拟合,
K值较大:训练误差大

分类决策规则:

分类:多数表决方法
回归:平均值(样本y值加和取均值)

KNN优点:

1.可分类可回归
2.可用于非线性分类
3.训练时间复杂度比SVM之类的算法低,仅为O(n)
4.对异常数据不敏感
5.KNN是靠周围有限的邻近的样本来进行预测,不是靠判别类域的方法,对于类域的交叉或重叠较多的待分样本集来说,KNN较合适
KNN缺点:
1.计算量大,尤其是特征数非常多的时候
2.样本不平衡的时候,对稀有类别的预测准确率低
3.KD树,球树之类的模型建立需要大量的内存
4.使用懒散学习方法,基本上不学习,导致预测时速度比起逻辑回归!之类的算法慢
5.相比决策树模型,KNN模型可解释性不强
import numpy as np
import operator
X = np.array([[1, 1], [1, 1.5], [2, 2], [4, 3], [4, 4]])
Y = np.array(['A', 'A', 'A', 'B', 'B'])
print(X)
print(Y)def knn_classify(x, y, k, test_sample):''':param x: 输入数据:param y: 真实值:param k: 邻居的个数:param test_sample: 待测试样本:return: 待测样本的类别'''# 1.计算待测试样本和训练集中所有样本的距离distance = np.sum((x-test_sample)**2, axis=1)**0.5   # 欧氏距离,axis=1指按列计算# 2.对距离排序sorted_idx = np.argsort(distance)       # 排序之后返回的是下标# 3.选择前k个最近的距离sorted_idx[:k]# 4.统计前k个元素所属类别的个数labelCount = {}for index in sorted_idx[:k]:            # 取前k个label = y[index]                    # 取y值labelCount[label] = labelCount.get(label, 0) + 1print(labelCount)# 5.return sorted(labelCount.items(), key=operator.itemgetter(1), reverse=True)     # 排序if __name__ == '__main__':result = knn_classify(X, Y, 3, np.array([3, 4]))print(result)print(result[0][0])

运行结果:

[[1.  1. ][1.  1.5][2.  2. ][4.  3. ][4.  4. ]]
['A' 'A' 'A' 'B' 'B']
{'B': 2, 'A': 1}
[('B', 2), ('A', 1)]
B

四、随机森林RF(集成算法)

随机:数据采样随机,特征选择随机
森林:很多个决策树并行放在一起,求平均
随机森林(Random Forest)是一种集成学习方法,主要用于分类、回归以及其他任务。它通过集成多个决策树来进行预测,以提高预测准确性和防止过拟合。随机森林的核心思想在于“集体智慧”,即许多弱分类器(单独的决策树)组合后能形成一个强分类器。

随机森林的原理:

1. 随机采样(Bootstrap Sampling):对于原始数据集,随机森林通过有放回的抽样方式生成多个子数据集(通常与原数据集大小相同),每个子数据集用于训练一棵决策树。2.特征随机选择:在决策树的每个节点分裂时,不是从所有特征中选择最佳分裂特征,而是从特征集中随机选择一个特征子集,然后从这个子集中确定最佳分裂特征。这种方法增加了树之间的多样性,因为即使在相同的数据子集上训练,不同的决策树也可能因为考虑了不同的特征而做出不同的决策。3. 构建多棵树:上述过程重复多次,构建出大量的决策树。每棵树都是独立训练的,且在整个森林中没有相互影响。

模型步骤:

1. 随机抽样训练决策树:对原始数据集进行有放回抽样,形成多个子集。2. 随机选取属性做节点分裂:在每个决策节点,从所有特征中随机选择一部分特征,然后基于这些特征计算最佳分裂准则(如信息增益、基尼不纯度等)。3.建立决策树:在每个子数据集上根据第二步选择的特征构建决策树,直到满足停止条件(比如达到预设的最大深度、节点内样本数低于阈值等)。4. 构建森林:重复上述步骤,构建预定数量的决策树,形成随机森林。

预测阶段:

- 对于分类任务,随机森林中的每棵树都会对新样本进行分类投票,最终的分类结果是所有树中票数最多的类别。
- 对于回归任务,随机森林则取所有树预测值的平均(或加权平均)作为最终预测值。随机森林的优势在于它能够处理高维数据、评估特征重要性、对缺失数据具有较好的鲁棒性,并且不容易过拟合。由于各个决策树间相互独立,这一过程可以高度并行化,提高了模型训练的速度。
随机森林:随机抽样、特征随机(减少方差、防止过拟合)
算法核心:
from sklearn.ensemble import RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
from sklearn import datasets
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import graphviz# 一棵树
score = 0
for i in range(100):X, y = datasets.load_iris(return_X_y=True)X_train, X_test, y_train, y_test = train_test_split(X, y)model = DecisionTreeClassifier()model.fit(X_train, y_train)# model.score(X_test, y_test)score += model.score(X_test, y_test)/100
print("一颗决策树平均得分:", score)# 随机森林(多棵树)
score = 0
for i in range(100):X_train, X_test, y_train, y_test = train_test_split(X, y)clf = RandomForestClassifier(n_estimators=100)   # 100棵树组成了随机森林clf.fit(X_train, y_train)score += clf.score(X_test, y_test)/100
print("随机森林平均得分:", score)# 随机森林可视化
# 两种算法的比较(准确率)
model.predict_proba(X_test)     # 一棵树
clf.predict_proba(X_test)# 单一决策树可视化
dot_data = tree.export_graphviz(model, out_file=None, filled=True, rounded=True)
graph = graphviz.Source(dot_data)
graph.render("single_tree")# 随机森林100颗中的第一棵树可视化
dot_data = tree.export_graphviz(clf.estimators_[0], out_file=None, filled=True, rounded=True)
graph = graphviz.Source(dot_data)
graph.render("rf_tree_0")

运行结果:

五、极限学习机

极限学习机(Extreme Learning Machine, ELM)是一种机器学习算法,特别设计用于快速和高效地解决监督学习问题。相较于传统的人工神经网络(ANN),ELM的主要区别在于其学习过程的简化和速度提升。

基本原理:

1.网络结构:ELM通常包含输入层、一个或多个隐藏层和输出层。与传统神经网络不同,ELM的隐藏层权重和偏置是随机初始化且固定不变的,无需通过迭代优化更新。2. 随机投影:ELM的创新之处在于其隐藏层到输出层的学习策略。输入数据通过一个随机生成的权重矩阵(从特定的概率分布中抽取)进行转换,这个过程可以看作是一种随机特征映射或降维/增维技术,目的是为了得到更利于分类或回归的表示。3. 单一学习过程:学习主要发生在输出层,目标是找到一个最优的输出权重矩阵,使得模型的预测值尽可能接近实际标签。这通常通过最小化损失函数(如均方误差)来完成,可以使用线性最小二乘法等高效算法直接求解,无需迭代优化。

模型步骤:

1. 初始化:随机生成隐藏层的权重矩阵和偏置项,这些参数在训练过程中保持不变。2. 数据转换:输入数据通过随机权重矩阵和偏置项进行线性变换,生成隐藏层的激活值。3. 求解输出权重:根据隐藏层的激活值和已知的输出标签,通过最小化损失函数(例如最小二乘法)直接计算输出层的权重。这是一个解析解过程,不需要迭代。4. 预测:一旦输出权重确定,新的输入数据就可以通过同样的隐藏层转换,并利用这些权重得到预测输出。

优势:

快速收敛:由于权重矩阵固定,学习过程简化为求解一个线性系统,大大加快了训练速度。
减少过拟合风险:随机初始化和直接求解输出权重有助于避免过度拟合。
简单易实现:算法实现相对简单,不需要复杂的调参过程。ELM因其高效、简单的特点,在模式识别、信号处理、数据挖掘等领域有广泛的应用潜力。
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_california_housing
from sklearn.preprocessing import StandardScaler# 极限学习机类
class ELMRegressor:def __init__(self,n_hidden):self.n_hidden = n_hiddenself.W = Noneself.bias = None# 定义激活函数relu,用于隐藏层的非线性转换def relu(self, x):return np.maximum(x, 0)def fit(self, X, y):n_samples, n_features = X.shape# 随机生成输入层到隐藏层的权重矩阵和偏置向量self.W = np.random.randn(n_features, self.n_hidden)self.bias = np.random.randn(self.n_hidden)# 计算隐藏层输出H = self.relu(np.dot(X, self.W) + self.bias)# 使用最小二乘法计算输出层权重self.beta = np.linalg.pinv(H).dot(y)# 根据输入数据计算预测输出def predict(self, X):H = self.relu(np.dot(X, self.W) + self.bias)return H.dot(self.beta)# 加载加州房价数据集
california_housing = fetch_california_housing()
X, y = california_housing.data, california_housing.target
print(X.shape, y.shape)# 对数据进行标准化
scalar = StandardScaler()
X = scalar.fit_transform(X)# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 构建ELM模型
elm = ELMRegressor(n_hidden=50)     # 隐藏层节点数为50
elm.fit(X_train, y_train)# 在测试集上进行测试,并计算均方误差(MSE)
y_pred = elm.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print("MSE:{0:.3f}".format(mse))# 绘制预测值与测试值对比图
plt.figure(figsize=(8, 6))
plt.plot(y_test, 'b', label='True Values')
plt.plot(y_pred, 'r', label='Predictions')
plt.legend(loc='best')
plt.show()

运行结果:
输出:

(20640, 8) (20640,)
MSE:0.455

图:
在这里插入图片描述
小白在进行机器学习,此文档若有错误,欢迎指出。
*

每天都要开开心心的重启呀~~~~

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

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

相关文章

【C++】认识C++(前言)

&#x1f984;个人主页:小米里的大麦-CSDN博客 &#x1f38f;所属专栏:C_小米里的大麦的博客-CSDN博客 &#x1f381;代码托管:C: 探索C编程精髓&#xff0c;打造高效代码仓库 (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、本节概述 二、什么是C 三、C发展史 四…

Python画笔案例-044 绘制四米围方

1、绘制 四米围方 通过 python 的turtle 库绘制 四米围方&#xff0c;如下图&#xff1a; 2、实现代码 绘制 四米围方&#xff0c;以下为实现代码&#xff1a; """四米围方.py """ import turtledef draw_mi():"""画米字图形&qu…

关于武汉芯景科技有限公司的IIC缓冲器芯片XJ4307开发指南(兼容LTC4307)

一、芯片引脚介绍 1.芯片引脚 2.引脚描述 二、系统结构图 三、功能描述 1.总线超时&#xff0c;自动断开连接 当 SDAOUT 或 SCLOUT 为低电平时&#xff0c;将启动内部定时器。定时器仅在相应输入变为高电平时重置。如果在 30ms &#xff08;典型值&#xff09; 内没有变为高…

开展文化创新与传承 全球老子圣像评选启动

9月11日&#xff0c;在刚见证了中华社会文化发展基金会老子文化公益基金成立发布会盛典的中华文化园&#xff0c;又迎来了中华社会文化发展基金会领导的亲临指导。本次指导由中华社会文化发展基金会执行副秘书长蒋晔带队&#xff0c;魏欣主任和高凯主任同行&#xff0c;共同考察…

JMeter脚本开发

环境部署 Ubuntu系统 切换到root用户 sudo su 安装上传下载的命令 apt install lrzsz 切换文件目录 cd / 创建文件目录 mkdir java 切换到Java文件夹下 cd java 输入rz回车 选择jdk Linux文件上传 解压安装包 tar -zxvf jdktab键 新建数据库 运行sql文件 选择sql文件即…

微信小程序原生支持TS、LESS、SASS能力探究

文章目录 原生支持开始使用旧项目新建项目TS声明文件更新 功能说明less 使用全局变量sass 使用全局变量 可以参考原文 在之前开发小程序中&#xff0c;无法使用 less/sass 等 css 预编译语言&#xff0c;也无法使用 TS 进行开发&#xff0c;但在最新的编辑器版本中&#xff0c…

Running setup.py install for wxPython did not run successfully.

Running setup.py install for wxPython did not run successfully. 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开…

【Prompt Enhancer】如何优化prompt的内容

背景 在使用LLM的时候&#xff0c;提示词的好坏对模型的输出质量影响很大&#xff0c;提示词又是一个复杂工程&#xff0c;要写出优秀的提示词&#xff0c;需要丰富的经验。正因如此&#xff0c;各类Agent平台都会有自己的提示词增强功能&#xff0c;帮助用户编写提示词。 最…

java项目之基于Spring Boot智能无人仓库管理源码(springboot+vue)

项目简介 智能无人仓库管理实现了以下功能&#xff1a; 基于Spring Boot智能无人仓库管理的主要使用者分为&#xff1a; 管理员的功能有&#xff1a;员工信息的查询管理&#xff0c;可以删除员工信息、修改员工信息、新增员工信息 &#x1f495;&#x1f495;作者&#xff1a…

WebGL系列教程六(纹理映射与立方体贴图)

目录 1 前言2 思考题3 纹理映射介绍4 怎么映射&#xff1f;5 开始绘制5.1 声明顶点着色器和片元着色器5.2 修改顶点的颜色为纹理坐标5.3 指定顶点位置和纹理坐标的值5.4 获取图片成功后进行绘制5.5 效果5.6 完整代码 6 总结 1 前言 上一讲我们讲了如何使用索引绘制彩色立方体&a…

基于SpringBoot+Vue+MySQL的画师约稿平台系统

系统展示 用户界面 画师界面 管理员界面 系统背景 基于SpringBootVueMySQL的画师约稿平台系统的背景&#xff0c;主要源于数字艺术行业的快速发展与画师、客户双方需求的日益增长。在传统的约稿方式中&#xff0c;往往存在沟通效率低下、交易过程不透明等问题&#xff0c;这限制…

C++---string类常见接口

介绍 string类详情>>>https://cplusplus.com/reference/string/string/?kwstring 1. string是表示字符串的字符串类&#xff08;感觉就像一个动态的字符数组&#xff09; 2. 该类的接口与常规容器的接口基本相同&#xff0c;再添加了一些专门用来操作string的常规操作…

Cloudflare Pages 部署 Next.js 应用教程

Cloudflare Pages 部署 Next.js 应用教程 本教程将指导你如何将现有的 Next.js 应用部署到 Cloudflare Pages。 准备工作 安装部署依赖 首先,安装 cloudflare/next-on-pages: npm install --save-dev cloudflare/next-on-pages添加 wrangler.toml 配置文件 在项目根目录创建 …

力扣139-单词拆分(Java详细题解)

题目链接&#xff1a;139. 单词拆分 - 力扣&#xff08;LeetCode&#xff09; 前情提要&#xff1a; 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 最近刚学完背包&#xff0c;所以现在的题解都是以背包问题为基础再来写的。 如果大家不懂背包问题的话&#…

【LoRA】浅谈大模型微调之LoRA技术

在当今的信息时代中&#xff0c;大型语言模型扮演着至关重要的角色&#xff0c;它们在自然语言处理任务中展现出强大的能力。LoRA&#xff0c;英文全称Low-Rank Adaptation of Large Language Models&#xff0c;是一种用于微调大型语言模型的低秩适应技术&#xff0c;由微软的…

Java Enterprise System 体系结构

本章概述了 Java Enterprise System 部署所基于的体系结构概念。 章中描述了一个框架,在此框架内从三维角度对 Java Enterprise System部署体系结构进行了分析,它们分别是:逻辑层、基础结构服务级别和服务质量。这三维在下图中以图解形式显示为正交坐标轴,它们有助于在体系…

jmeter之TPS计算公式

需求&#xff1a; 如何确定环境当中的TPS指标 PV:&#xff08;Page View&#xff09;即页面访问量&#xff0c;每打开一次页面PV计数1&#xff0c;刷新页面也是。PV只统计页面访问次 数。 UV(Unique Visitor),唯一访问用户数&#xff0c;用来衡量真实访问网站的用户数量。 一般…

大模型的第一个杀手级应用场景出来了

大家终于都意识到大模型首先改变的是软件行业自己&#xff0c;而软件的根基是代码生成。代码生成第一波就是AI辅助开发&#xff0c;这个会是大模型第一个杀手级应用。大家苦苦逼问自己的大模型杀手级应用&#xff0c;为什么会是辅助编程&#xff0c;这里说下什么&#xff1a; 必…

vscode 使用git bash,路径分隔符缺少问题

window使用bash --login -i 使用bash时候&#xff0c;在系统自带的terminal里面进入&#xff0c;测试conda可以正常输出&#xff0c;但是在vscode里面输入conda发现有问题 bash: C:\Users\marswennaconda3\Scripts: No such file or directory实际路径应该要为 C:\Users\mars…

PyTorch安装指南:轻松上手深度学习框架(CUDA)

PyTorch 是一个非常流行的开源深度学习框架&#xff0c;它支持动态图&#xff0c;这使得开发者能够更容易地构建和调试复杂的模型。PyTorch 可以运行在 CPU 上&#xff0c;也可以利用 NVIDIA 的 CUDA 平台加速计算&#xff0c;从而在 GPU 上执行。下面是如何在你的系统上安装 P…