数据挖掘(作业1)
实验开始前先配置环境
以实验室2023安装的版本为例:
1、安装anaconda:(anaconda自带Python,安装了anaconda就不用再安装Python了)
下载并安装 Anaconda3-2022.10-Windows-x86_64.exe
自己选择安装路径,其他使用默认选项。
(1)在“Advanced Installation Options”中,
勾选“Add Anaconda3 to my PATH environment variable.”(“添加Anaconda至我的环境变量。”)。
(2)勾选“Register Anaconda3 as my default Python 3.9”。
2、安装pycharm
下载并安装 pycharm-community-2022.2.4.exe
3、打开cmd窗口,输入以下命令
conda create -n DMEv pip python=3.8
记住DMEV所在的磁盘路径
# 如需删除环境,使用命令 conda remove -n DMEv --all
安装要用到的Python库:
activate DMEv
pip install numpy==1.20.0 --index-url https://mirrors.aliyun.com/pypi/simple/
pip install matplotlib==3.3.4 --index-url https://mirrors.aliyun.com/pypi/simple/
pip install opencv_python==4.4.0.40 --index-url https://mirrors.aliyun.com/pypi/simple/
pip install scipy==1.6.0 --index-url https://mirrors.aliyun.com/pypi/simple/
pip install scikit-learn==0.24.1 --index-url https://mirrors.aliyun.com/pypi/simple/
pip install h5py==2.10.0 --index-url https://mirrors.aliyun.com/pypi/simple/
pip install mnist==0.2.2 --index-url https://mirrors.aliyun.com/pypi/simple/
4、测试
在Pycharm中创建项目时,DMEV所在的路径下选择python.exe即可
在Pycharm中新建项目,配置 interpreter,运行以下代码:(没有报错,则导入成功)
import cv2 as cv
import numpy as np
from sklearn.decomposition import PCA
import mnist
import matplotlib.pyplot as plt
实验1 数据
一、实验目的
(1)练习和掌握python的基本使用。
(2)理解数据类型、数据质量、数据预处理、相似性和相异性度量的概念
(3)理解各种相似性和相异性度量(测度)及其含义,并且能编程计算。
二、实验内容
1编程实现任意给定两个相同维度的向量之间的欧氏距离计算函数dist_E(x,y)。
输入:两个任意k维向量x和y,其中k的值随由数据决定。如x=[3,20,3.5], y=[-3,34,7]。
import numpy as npdef dist_E(vect1, vect2):return np.sqrt(sum(np.power((vect1-vect2),2)))if __name__ == "__main__":x=np.array([3,20,3.5])y=np.array([-3,34,7])dist=dist_E(x,y)print(dist)
2编程实现任意给定两个相同维度的向量之间的夹角余弦相似度计算函数sim=sim_COS(x,y)。输入:两个任意k维向量x和y,其中k的值由数据决定。
import numpy as npdef sim_COS(x, y):num = x.dot(y.T)denom = np.linalg.norm(x) * np.linalg.norm(y)return num / denomif __name__ == "__main__":x=np.array([3, 2, 0, 5, 0, 0, 0, 2, 0, 0])y=np.array([1, 0, 0, 0, 0, 0, 0, 1, 0, 2])sim=sim_COS(x,y)print(sim)
3编程实现任意给定两个相同维度的布尔向量之间的Jaccard系数计算函数dist1=dist_Jaccard(x,y)。
import numpy as npdef sim_Jaccard(vect1, vect2):sim=-1if(vect1.size!=vect2.size):print("length of input vectors must agree")else:ind1=np.logical_and(vect1==1,vect2==1)ind2=np.logical_or(vect1==1,vect2==1)x=vect1[ind1]y=vect2[ind2]n1=np.size(x)n2=np.size(y)sim=n1/n2return simif __name__ == "__main__":x=np.array([1, 0, 0, 0, 0, 0, 1, 0, 0, 0])y=np.array([1, 0, 0, 0, 0, 0, 0, 0, 0, 1])dist=sim_Jaccard(x,y)print(dist)
4编程实现任意给定两个相同维度的布尔向量之间的简单匹配系数计算函数dist1=dist_SMC(x,y)。
import numpy as npdef sim_SMC(vect1, vect2):sim = -1if (vect1.size != vect2.size):print("length of input vectors must agree")else:ind0 = np.logical_and(vect1 == 0, vect2 == 0)ind1 = np.logical_and(vect1 == 1, vect2 == 1)ind2 = np.logical_or(vect1 == 1, vect2 == 1)x = vect1[ind1]y = vect1[ind2]z=vect1[ind0]n1 = np.size(x)n2 = np.size(y)n3 = np.size(z)sim = (n1+n3) / (n2+n3)return simif __name__ == "__main__":x=np.array([1, 0, 0, 0, 0, 0, 1, 0, 0, 0])y=np.array([1, 0, 0, 0, 0, 0, 0, 0, 0, 1])dist=sim_SMC(x,y)print(dist)
相关文章:

数据挖掘(作业1)
实验开始前先配置环境 以实验室2023安装的版本为例: 1、安装anaconda:(anaconda自带Python,安装了anaconda就不用再安装Python了) 下载并安装 Anaconda3-2022.10-Windows-x86_64.exe 自己选择安装路径,其他使用默认…...

【UE4 RTS游戏】01-项目准备
步骤新建一个工程,选择俯视角游戏模板我命名工程如下:删除场景内的所有cube再删除Floor和Wall删除TopDownCharacter删除“NavgationMeshBoundVolume”删除“TamplateLabel”和“RecastNavMesh-Default”删除LightmassImportanceVolume、PostProcessVolum…...
登录系统账号检测--课后程序(Python程序开发案例教程-黑马程序员编著-第3章-课后作业)
实例8:登录系统账号检测 登录系统一般具有账号密码检测功能,即检测用户输入的账号密码是否正确。若用户输入的账号或密码不正确,提示 “用户名或密码错误”和“您还有*次机会”; 若用户输入的账号和密码正确,提示“登…...

CentOS8基础篇12:使用RPM管理telnet-server软件包
一、RPM包管理工具简介 RedHat软件包管理工具(RedHat Package Manager,RPM) RPM软件包工具常用于软件包的安装、查询、更新升级、校验、卸载以及生成.rpm格式的软件包等操作。 RPM软件包工具只能管理后缀是.rpm的软件包。软件包的命名格式: 软件名称…...
IT女神文章记录之自己
匆匆时光,一转眼自己已经从一个学生转变成一个职场工作者了刚出校园的时候,对职场充满了憧憬,觉得自己可以大展身手然后其实在我毕业后2年内,踏入码农阶段的时候,是一段非常压抑的工作,不知道谁能体会到那种…...

Compose 动画 (四) : AnimatedVisibility 各种入场和出场动画效果
AnimatedVisibility中的EnterTransition 和 ExitTransition ,用来配置入场/出场时候的动画效果。 默认的入场效果是 fadeIn() expandVertically() 默认的出场效果是 fadeOut() shrinkVertically() 1. EnterTransition和ExitTransition支持的动画 enter的参数类…...

notepad++学习小技巧
不要小瞧了notepadd 这个可是我们的cv好帮手。。。 实战1背景,我找一个同事要表结构 结果他给我了一个xml。顿时一懵,我也不知道为啥好像是从前端扣下来的。 建表我只需要 columnName, displayName当作是comment, dataTypeNamecolumnType借鉴…...
Android supports-screens 屏幕适配
基本概念 supports-screens用于设置屏幕相关,处于Manifest的子标签中。 使您能够指定应用支持的屏幕尺寸,并为比应用支持的最大屏幕还大的屏幕启用屏幕兼容性模式。请务必始终在应用中使用此元素指定应用支持的屏幕尺寸。 注意:建议不要在屏…...

操作系统基础知识介绍之Mixed CriticalitySystems——混合关键系统
一、发展背景 在嵌入式场景中,虽然Linux已经得到了广泛应用,但并不能覆盖所有需求,例如高实时、高可靠、高安全的场合。这些场合往往是实时操作系统 的用武之地。有些应用场景既需要Linux的管理能力、丰富的生态又需要实时操作系统的高实时、…...

【数据结构初阶】详解链表OJ题
目录一.删除链表中等于给定值的节点二.合并有序链表并返回三.链表的回文结构1.反转单链表2.返回非空链表的中间节点四.输出链表倒数第K个节点五.基于给定值x分割单链表六.返回两个链表的第一个中间节点一.删除链表中等于给定值的节点 我们先来看第一题(题目链接): 因为我们需…...

Java基本数据类型变量自动提升、强制类型转换、String基本类型使用
文章目录基本数据类型变量自动提升特殊情况强制类型转换String基本类型使用基本数据类型变量自动提升 规则: 将取值范围小(或容量小)的类型自动提升为取值范围大(或容量大)的类型 。 byte、short、char-->int-->…...

Redis锁与幂等性不得不说的故事
前言: 相信很多小伙伴对缓存锁都不陌生,但是简单的缓存锁想要用好还是需要一些功力。本文总结了笔者多年使用缓存所的一些心得,欢迎交流探讨~ 幂等模型: 幂等场景一般由查重写入两步操作组成,两步操作组成一个最小完…...

Spark 应用调优
Spark 应用调优人数统计优化摇号次数分布优化Shuffle 常规优化数据分区合并加 Cache优化中签率的变化趋势中签率局部洞察优化倍率分析优化表信息 : apply : 申请者 : 事实表lucky : 中签者表 : 维度表两张表的 Schema ( batchNum,carNum ) : ( 摇号批次,…...

synchronized 与 volatile 关键字
目录1.前言1.synchronized 关键字1. 互斥2.保证内存可见性3.可重入2. volatile 关键字1.保证内存可见性2.无法保证原子性3.synchronized 与 volatile 的区别1.前言 synchronized关键字和volatile是大家在Java多线程学习时接触的两个关键字,很多同学可能学习完就忘记…...

【0成本搭建个人博客】——Hexo+Node.js+Gitee Pages
目录 1、下载安装Git 2、下载安装Node.js 3、使用Hexo进行博客的搭建 4、更改博客样式 5、将博客上传到Gitee 6、更新博客 首先看一下Hexo的博客的效果。 1、下载安装Git Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本…...
【面试实战】认证授权流程及原理分析
认证授权流程及原理分析 1、认证 (Authentication) 和授权 (Authorization)的区别是什么?2、什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ?3、Cookie 和 Session 有什么区别?如何使用Session进行身份验证?1、认证 (Authentication) 和授权 (Authorizatio…...
TPM命令解析之tpm2_startauthsession
参考网址链接:tpm2-tools/tpm2_startauthsession.1.md at master tpm2-software/tpm2-tools GitHub 命令名称 tpm2_startauthsession 功能 启动一个TPM会话。 命令形式 tpm2_startauthsession [OPTIONS] 描述 启动一个TPM会话。默认是启动一个试验(…...

第14章 局部波动率模型
这学期会时不时更新一下伊曼纽尔德曼(Emanuel Derman) 教授与迈克尔B.米勒(Michael B. Miller)的《The Volatility Smile》这本书,本意是协助导师课程需要,发在这里有意的朋友们可以学习一下,思…...
云原生周刊:开源“赢了”,但它可持续吗?
日前召开的 State of Open 会议上,开源“赢了”,但如果政府和企业不站出来确保生态系统在未来的弹性和可持续性,那么它仍然会失败。 OpenUK 首席执行官 Amanda Brock 在开幕式上表示,数字化和开源在过去 5 到 10 年的进步提升了工…...

读《企业IT架构转型之道》
本书还没读完,暂摘抄一些概念,因为自身做的新系统也在转型,从单体式到一体化一年来遇到很多问题有技术上的,也有团队协作的,过程是痛苦且复杂的,所以在刚翻阅前几十页时候,对于淘宝技术团队转型…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...