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

工业设计相关网站网站界面美观度

工业设计相关网站,网站界面美观度,如何建立自己的网站免费,php 网站授权文章目录 一、实验介绍1. 算法流程2. 算法解释3. 算法特点4. 应用场景5. 注意事项 二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. LVQ类a. 构造函数b. 闵可夫斯基距离c. LVQ聚类过程e. 聚类结果可视化 2. 辅助函数3. 主函数a. 命令行界面 #xff… 文章目录 一、实验介绍1. 算法流程2. 算法解释3. 算法特点4. 应用场景5. 注意事项 二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. LVQ类a. 构造函数b. 闵可夫斯基距离c. LVQ聚类过程e. 聚类结果可视化 2. 辅助函数3. 主函数a. 命令行界面 CLIb. 数据加载c. 模型训练及可视化 4. 运行脚本的命令5. 代码整合 学习向量量化LVQ是一种原型聚类算法它在寻找原型向量以刻画数据集聚类结构的过程中利用了样本的类别标记。相较于一般聚类算法LVQ通过监督信息辅助聚类使得原型向量更好地代表各个聚类簇。 一、实验介绍 1. 算法流程 在学习过程中LVQ算法通过样本的类别标记来引导原型向量的学习使得原型向量更好地代表各个聚类簇。算法的性能高度依赖于初始化、学习率的设定以及停止条件的选择。 2. 算法解释 在初始化阶段原型向量通过随机选取相应类别标记的样本进行初始化。在学习过程中算法通过计算距离和类别标记的一致性来引导原型向量的学习。相似类别的样本有助于更新原型向量从而更好地代表该类别。 3. 算法特点 LVQ算法结合了监督学习和聚类通过使用类别标记进行引导更好地适应样本的分布。对于有监督信息的数据集LVQ通常能够获得更具有判别性的聚类结果。学习率η的选择对算法的性能有影响需要根据具体情况进行调整。 4. 应用场景 适用于样本集带有类别标记的情况尤其在需要获得判别性聚类结果的场景中。在需要将样本分配到与其最相似的原型向量所代表的簇中的应用中表现良好。 5. 注意事项 初始原型向量的选择可能影响最终聚类结果因此在具体应用中需要仔细选择初始原型向量。学习率的选择需要谨慎过大的学习率可能导致原型向量的不稳定更新而过小的学习率可能使得算法收敛缓慢。 二、实验环境 1. 配置虚拟环境 conda create -n ML python3.9conda activate MLconda install scikit-learn matplotlib seaborn pandas2. 库版本介绍 软件包本实验版本matplotlib3.5.2numpy1.21.5pandas1.4.4python3.9.13scikit-learn1.0.2seaborn0.11.2 三、实验内容 0. 导入必要的库 import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import argparse import random1. LVQ类 __init__ 初始化LVQ聚类的参数minkowski_distance 函数计算两个样本点之间的闵可夫斯基距离fit 方法执行LVQ聚类的迭代过程visualization 函数使用Seaborn和Matplotlib可视化聚类结果 a. 构造函数 class LVQ(object):def __init__(self, features, labels, p2, eta0.1, max_iters10, epsilon1e-6, seed0):# 初始化LVQ类的属性self.features features # 样本特征self.num_samples, self.num_features self.features.shapeself.labels labels # 样本标签self.num_classes len(np.unique(self.labels)) # 类别数self.p p # Minkowski距离的阶数self.eta eta # 学习率self.max_iters max_iters # 最大迭代次数self.epsilon epsilon # 停止条件更新幅度小于epsilon时停止self.seed seed # 随机种子self.proto None # 原型向量 b. 闵可夫斯基距离 def minkowski_distance(self, x, y0):return np.linalg.norm(x - y, ordself.p)使用了NumPy的 linalg.norm 函数其中 ord 参数用于指定距离的阶数。 c. LVQ聚类过程 def fit(self):random.seed(self.seed)# 每类中随机选择一个原型向量self.proto np.array([random.choice(self.features[self.labels c]) for c in range(self.num_classes)])for i in range(self.max_iters):index random.randint(0, self.num_samples-1) # 随机选取一个样本xj self.features[index] # 样本特征yj self.labels[index] # 样本标签dist [self.minkowski_distance(d) for d in xj - self.proto] # 计算到各个原型向量的距离min_idx np.argmin(dist)delta self.eta * (xj - self.proto[min_idx])if yj min_idx:# 更新原型向量self.proto[min_idx] deltaelse:self.proto[min_idx] - delta# 更新原型向量if self.minkowski_distance(delta) self.epsilon:break 在初始化原型向量后LVQ通过迭代过程不断调整原型向量以适应样本的分布。随机选择一个样本计算该样本与所有原型向量的距离并找到最近的原型向量。根据样本标签和最近原型向量的类别标记更新原型向量。 e. 聚类结果可视化 def visualization(self):current_palette sns.color_palette()sns.set_theme(contexttalk)clu_idx np.zeros_like(self.labels, dtypenp.int64)for i, x in enumerate(self.features):dist [self.minkowski_distance(d) for d in x - self.proto]clu_idx[i] np.argmin(dist)for c in range(self.num_classes):x self.features[clu_idx c]sns.scatterplot(xx[:, 0], yx[:, 1], alpha0.8, colorcurrent_palette[c])sns.scatterplot(x[self.proto[c][0]], y[self.proto[c][1]], colorcurrent_palette[c], marker, s500)plt.show() 2. 辅助函数 def order_type(v: str):if v.lower() in (-inf, inf):return -np.inf if v.startswith(-) else np.infelse:try:return float(v)except ValueError:raise argparse.ArgumentTypeError(Unsupported value encountered) order_type 函数用于处理命令行参数中的 -p距离测量参数将字符串转换为浮点数。 3. 主函数 a. 命令行界面 CLI 使用 argparse 解析命令行参数 parser argparse.ArgumentParser(descriptionLVQ Demo)parser.add_argument(-m, --max-iters, typeint, default400, helpMaximum iterations)parser.add_argument(-p, typeorder_type, default2., helpDistance measurement)parser.add_argument(--eta, typefloat, default0.1, helpLearning rate)parser.add_argument(--eps, typefloat, default1e-6)parser.add_argument(--seed, typeint, default110, helpRandom seed)parser.add_argument(--dataset, typestr, default./lvq.1.csv, helpPath to dataset)args parser.parse_args() b. 数据加载 从指定路径加载数据集。 df pd.read_csv(args.dataset, headerNone)features df.iloc[:, [0, 1]].to_numpy()labels df.iloc[:, 2].to_numpy()c. 模型训练及可视化 model LVQ(features, labels, pargs.p, etaargs.eta, max_itersargs.max_iters, epsilonargs.eps, seedargs.seed)model.fit()model.visualization()4. 运行脚本的命令 通过命令行传递参数来运行脚本指定聚类数目、初始化模式、最大迭代次数等。 python LVQ.py -k 3 --mode random -m 100 -p 2 --seed 0 --dataset ./lvq.1.csv5. 代码整合 import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import argparse import randomclass LVQ(object):def __init__(self, features, labels, p2, eta0.1, max_iters10, epsilon1e-6, seed0):self.features featuresself.num_samples, self.num_features self.features.shapeself.labels labelsself.num_classes len(np.unique(self.labels))self.p pself.eta etaself.max_iters max_itersself.epsilon epsilonself.seed seedself.proto Nonedef minkowski_distance(self, x, y0):return np.linalg.norm(x - y, ordself.p)def fit(self):random.seed(self.seed)# 每类中随机选择一个原型向量self.proto np.array([random.choice(self.features[self.labels c]) for c in range(self.num_classes)])for i in range(self.max_iters):index random.randint(0, self.num_samples-1) # 随机选取一个样本xj self.features[index] # 样本特征yj self.labels[index] # 样本标签dist [self.minkowski_distance(d) for d in xj - self.proto] # 计算到各个原型向量的距离min_idx np.argmin(dist)delta self.eta * (xj - self.proto[min_idx])if yj min_idx:# 更新原型向量self.proto[min_idx] deltaelse:self.proto[min_idx] - delta# 更新原型向量if self.minkowski_distance(delta) self.epsilon:breakdef visualization(self):current_palette sns.color_palette()sns.set_theme(contexttalk)clu_idx np.zeros_like(self.labels, dtypenp.int64)for i, x in enumerate(self.features):dist [self.minkowski_distance(d) for d in x - self.proto]clu_idx[i] np.argmin(dist)for c in range(self.num_classes):x self.features[clu_idx c]sns.scatterplot(xx[:, 0], yx[:, 1], alpha0.8, colorcurrent_palette[c])sns.scatterplot(x[self.proto[c][0]], y[self.proto[c][1]], colorcurrent_palette[c], marker, s500)plt.show()def order_type(v: str):if v.lower() in (-inf, inf):return -np.inf if v.startswith(-) else np.infelse:try:return float(v)except ValueError:raise argparse.ArgumentTypeError(Unsupported value encountered)if __name__ __main__:parser argparse.ArgumentParser(descriptionLVQ Demo)parser.add_argument(-m, --max-iters, typeint, default400, helpMaximum iterations)parser.add_argument(-p, typeorder_type, default2., helpDistance measurement)parser.add_argument(--eta, typefloat, default0.1, helpLearning rate)parser.add_argument(--eps, typefloat, default1e-6)parser.add_argument(--seed, typeint, default110, helpRandom seed)parser.add_argument(--dataset, typestr, default./lvq.1.csv, helpPath to dataset)args parser.parse_args()df pd.read_csv(args.dataset, headerNone)features df.iloc[:, [0, 1]].to_numpy()labels df.iloc[:, 2].to_numpy()model LVQ(features, labels, pargs.p, etaargs.eta, max_itersargs.max_iters, epsilonargs.eps, seedargs.seed)model.fit()model.visualization()
http://www.pierceye.com/news/515748/

相关文章:

  • 网站建设资格预审公告附近广告设计与制作门店电话
  • 百度权重站长工具网页制作工具哪些好用
  • 关键词整站优化公司网站店招用什么软件做的
  • 租车网站模版广州市网站建设 骏域
  • 关闭网站怎么不保存我做的更改人工智能专业
  • ui中有哪些做的好看的网站简单logo设计
  • 深圳大型网站设计公司校园 网站建设 知乎
  • 西部数码网站流量怎么充优化网站界面的工具
  • 街区网站建设东阳市住房和城乡建设局网站
  • 怎样建设网站是什么网站代码制作软件
  • 成华区微信网站建设计公司加盟
  • 找个男做那个视频网站好高端网站建设公司
  • 做网站 毕业设计广东手机网页制作
  • 沈阳口碑最好的男科医院seo排名优化什么意思
  • 光谷做网站推广价格手机网站 教程
  • 泉州做网站多少钱关键词排名快照优化
  • 威海网站建设费用网站不能调用样式
  • 网站链接建设及引流营销世界500强企业中国有几家
  • 哪个网站做网络推好推广引流的10个渠道
  • 上海企业一网通办沂seo网站推广
  • 资阳网站网站建设官方网站建设公司
  • 企业网站建设一条龙服务内容如何自己免费创建网站
  • 重庆智能网站建设多少钱临海做网站
  • 创建好网站如何把浏览器合肥道路建设从哪个网站可以看到
  • 湖北省和建设厅网站自助建站模板
  • 西安网站建设 美科动seo关键词优化哪个平台好
  • 副食店年报在哪个网站做mc建筑网站
  • 网站建设不足之处2017网站设计尺寸
  • 网站架构招聘怎么免费的安装wordpress主题
  • 海天建设集团网站深圳西乡地铁站