HNU-数据挖掘-作业1

数据挖掘课程作业
作业1

计科210X 甘晴void 202108010XXX
在这里插入图片描述

第一题

假设所分析的数据包括属性 age,它在数据元组中的值(以递增序)为13 ,15 ,16 ,16 ,19 ,20 ,20 ,21 ,22 ,22 ,25 ,25 ,25 ,25 ,30 ,33 ,33 ,35 ,35 ,35 ,35 ,36 ,40 ,45 ,46 ,52,70。

  • a. 该数据的均值是多少?中位数是什么?
  • b. 该数据的众数是什么?讨论数据的模态(即二模、三模等)。
  • c. 该数据的中列数是多少?
  • d. 你能(粗略地)找出该数据的第一个四分位数(Q1)和第三个四分位数(Q3)吗?
  • e. 给出该数据的五数概括。
  • f. 绘制该数据的盒图。
  • g. 分位数-分位数图与分位数图有何不同?

解:

a. 该数据的均值是多少?中位数是什么?

均值:809/27=29.96
中位数:25

b. 该数据的众数是什么?讨论数据的模态(即二模、三模等)。

众数是 25 和 35,它们都出现了 4 次。
这个数据集是二模的,有两个众数,即两个峰态,因此是双峰众数。

c. 该数据的中列数是多少?

中列数:极大值与极小值的平均
极大值:70	极小值:13
中列数:(70+13)/2=41.5

d. 你能(粗略地)找出该数据的第一个四分位数(Q1)和第三个四分位数(Q3)吗?

四分位数:将数据集分成四等分的值。
Q1 表示数据的第 25% 位置处的值,而 Q3 表示数据的第 75% 位置处的值。
第一个四分位数为[27/4]=7处,Q1=20,;第三个四分位数为21处,Q3=35。

e. 给出该数据的五数概括。

五数概括包括最小值、第一四分位数(Q1)、中位数、第三四分位数(Q3)和最大值。
最小值:13
Q1(第一个四分位数):20
中位数:25
Q3(第三个四分位数):35
最大值:70

f. 绘制该数据的盒图。

#python代码如下
import matplotlib.pyplot as plt
data = [13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25, 25, 30, 33, 33, 35, 35, 35, 35, 36, 40, 45, 46, 52, 70]
plt.boxplot(data)
plt.title('Box Plot of the Data')
plt.show()

绘制图像如下:

在这里插入图片描述

g. 分位数-分位数图与分位数图有何不同?

简单来说,
分位数图是一种观察单变量数据分布的简单有效分发(就是上面给出的箱型图)。首先它显示给定属性的所有数据的分布情况;其次它给出了分位数信息。
分位数-分位数图则是反映了同一个属性的不同样本的数据分布情况,使得用户可以很方便地比较这两个样本之间的区别或联系。具体地说,
分位数图是一种用来展示数据值低于或等于在一个单变量分布中独立的变量的粗略百分比。这样,他可以展示所有数的分位数信息,而为独立变量测得的值(纵轴)相对于它们的分位数(横轴)被描绘出来。
分位数-分位数图用纵轴表示一种单变量分布的分位数,用横轴表示另一单变量分布的分位数。两个坐标轴显示它们的测量值相应分布的值域,且点按照两种分布分位数值展示。
举例来说,一条线(y=x)可画到图中+以增加图像的信息。落在该线以上的点表示在y轴上显示的值的分布比x轴的相应的等同分位数对应的值的分布高。反之,对落在该线以下的点来说,则低。

以下是简单实现观测值和正态分布对比的QQ图(仅仅作为练习使用)

#python代码
import scipy.stats as stats
import matplotlib.pyplot as plt
data = [13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25, 25, 30, 33, 33, 35, 35, 35, 35, 36, 40, 45, 46, 52, 70]
# 计算标准正态分布的分位数
theoretical_quantiles = stats.norm.ppf([(i - 0.5) / len(data) for i in range(1, len(data) + 1)])
# 计算数据集的分位数
sample_quantiles = sorted(data)
plt.scatter(theoretical_quantiles, sample_quantiles)
plt.xlabel('Theoretical Quantiles')
plt.ylabel('Sample Quantiles')
plt.title('Q-Q Plot')
plt.show()

绘制图像如下:

在这里插入图片描述

第二题

在数据分析中,重要的选择相似性度量。然而,不存在广泛接受的主观相似性度量,结果可能因所用的相似性度量而异。虽然如此,在进行某种变换后,看来似乎不同的相似性度量可能等价。

假设我们有如下二维数据集:

A1A2
X11.51.7
X221.9
X31.61.8
X41.21.5
X51.51.0
  • a. 把该数据看做二维数据点。给定一个新的数据点x=(1.4,1.6) 作为查询点,使用欧几里得距离、曼哈顿距离、上确界距离和余弦相似性,基于查询点的相似性对数据库的点排位。
  • b. 规格化该数据集,使得每个数据点的范数等于 1。在变换后的数据上使用欧几里得距离对诸数据点排位。

解:

a.计算四种距离并给出各自排名

首先需要了解这几个距离都是怎么计算的

  • 欧几里得距离:d=sqrt[(x1-x2)2+(y1-y2)2],即平面直角坐标系上两点间距离
  • 曼哈顿距离:d=|x1-x2|+|y1-y2|
  • 上确界距离:d=max(|x1-x2|,|y1-y2|)
  • 余弦相似性:d=(A·B)/(||A||·||B||),A,B分别为原点指向两个点的向量

使用以下python代码实现进行计算与排序

import numpy as np# 数据集
data = np.array([[1.5, 1.7],[2.0, 1.9],[1.6, 1.8],[1.2, 1.5],[1.5, 1.0]])# 查询点
query_point = np.array([1.4, 1.6])# a. 使用不同相似性度量对数据点进行排名# 欧几里得距离
euclidean_distances = np.sqrt(np.sum((data - query_point) ** 2, axis=1))
euclidean_ranking = np.argsort(euclidean_distances)# 曼哈顿距离
manhattan_distances = np.sum(np.abs(data - query_point), axis=1)
manhattan_ranking = np.argsort(manhattan_distances)# 上确界距离
supremum_distances = np.max(np.abs(data - query_point), axis=1)
supremum_ranking = np.argsort(supremum_distances)# 余弦相似性
cosine_similarities = np.dot(data, query_point) / (np.linalg.norm(data, axis=1) * np.linalg.norm(query_point))
cosine_ranking = np.argsort(cosine_similarities)[::-1]  # 使用负值排名,因为余弦相似性越大越相似# 计算值
print("欧几里得距离计算值:", euclidean_distances)
print("曼哈顿距离计算值:", manhattan_distances)
print("上确界距离计算值:", supremum_distances)
print("余弦相似性计算值:", cosine_similarities)# 打印排名结果
print("欧几里得距离排名:", euclidean_ranking + 1)  # 加1以匹配数据点的索引
print("曼哈顿距离排名:", manhattan_ranking + 1)
print("上确界距离排名:", supremum_ranking + 1)
print("余弦相似性排名:", cosine_ranking + 1)

结果如下:

E:\anaconda\envs\python3-11\python.exe E:\python_files\数据挖掘\homework1\homework1-2.py 
欧几里得距离计算值: [0.14142136 0.67082039 0.28284271 0.2236068  0.60827625]
曼哈顿距离计算值: [0.2 0.9 0.4 0.3 0.7]
上确界距离计算值: [0.1 0.6 0.2 0.2 0.6]
余弦相似性计算值: [0.99999139 0.99575226 0.99996948 0.99902823 0.96536339]
欧几里得距离排名: [1 4 3 5 2]
曼哈顿距离排名: [1 4 3 5 2]
上确界距离排名: [1 4 3 2 5]
余弦相似性排名: [1 3 4 2 5]

整理与绘制表格

表一:相似性计算结果
X1X2X3X4X5
欧几里得距离0.140.670.280.220.61
曼哈顿距离0.20.90.40.30.7
上确界距离0.10.60.20.20.6
余弦相似性0.999991390.995752260.999969480.999028230.99902823
表二:相似性排序结果
排序结果
欧几里得距离X1 < X4 < X3 < X5 < X2
曼哈顿距离X1 < X4 < X3 < X5 < X2
上确界距离X1 < X4 < X3 < X2 < X5
余弦相似性X1 > X3 > X4 > X2 > X5

注意余弦相似性计算结果越大表示越相似。

b.规格化数据集并在变换后重新用欧几里得距离排序

操作如下:

  1. 计算每个数据点的范数(欧几里得距离)
  2. 将每个数据点除以其范数,以规格化数据点
  3. 使用规格化后的数据集计算欧几里得距离并对数据点进行排名

可以使用python实现如上过程

import numpy as np# 数据集
data = np.array([[1.5, 1.7],[2.0, 1.9],[1.6, 1.8],[1.2, 1.5],[1.5, 1.0]])# 计算每个数据点的范数
norms = np.linalg.norm(data, axis=1)# 规格化数据集
normalized_data = data / norms[:, np.newaxis]# 查询点,需要进行规格化
query_point = np.array([1.4, 1.6])# 规格化查询点
query_point_norm = np.linalg.norm(query_point)
normalized_query_point = query_point / query_point_norm# 使用欧几里得距离对规格化后的数据点进行排名
euclidean_distances = np.linalg.norm(normalized_data - normalized_query_point, axis=1)
euclidean_ranking = np.argsort(euclidean_distances)# 打印欧几里得距离计算值和排名
print("欧几里得距离计算值:", euclidean_distances)
print("欧几里得距离排名:", euclidean_ranking + 1)  # 加1以匹配数据点的索引

运行结果如下:

E:\anaconda\envs\python3-11\python.exe E:\python_files\数据挖掘\homework1\homework1-2b.py 
欧几里得距离计算值: [0.00414935 0.09217091 0.00781232 0.04408549 0.26319805]
欧几里得距离排名: [1 3 4 2 5]
表三:规格化后的欧几里得距离排序
X1X2X3X4X5
规格化后的欧几里得距离0.00410.09220.00780.04410.2632

排序结果:X1 < X3 < X4 < X2 < X5

第三题

使用如下方法规范化如下数组:

200,300,400,600,1000

  • a. 令 min=0,max=1,最小—最大规范化。
  • b. z 分数规范化。
  • c. z 分数规范化,使用均值绝对偏差而不是标准差。
  • d. 小数定标规范化。

解:

首先了解这四种数据规范化的方法的操作步骤

  1. 最小-最大规范化:
    • 解释:将数据缩放到一个指定的范围,通常是[0, 1]。
    • 计算方法:对于每个数据点X,使用以下公式进行规范化: X=[X-min(X)]/[max(X)-min(X)]
    • 意义:这种方法确保了所有数据都位于指定的范围内,其中最小值映射为0,最大值映射为1。
  2. z 分数规范化:
    • 解释:将数据映射为均值为0,标准差为1的正态分布(z 分数分布)。
    • 计算方法:对于每个数据点X,使用以下公式进行规范化: X=(X-μ)/σ,其中μ为均值,σ为标准差
    • 意义:这种方法适用于数据分布近似正态分布的情况,可以使数据更容易进行比较和分析。
  3. z 分数规范化(使用均值绝对偏差而不是标准差):
    • 解释:将数据映射为均值为0,均值绝对偏差为1的分布。
    • 计算方法:: X=(X-μ)/MAD,其中μ为均值,MAD为均值绝对偏差,MAD=(1/n)[Σ|xi-μ|]
    • 意义:均值绝对偏差是数据点到均值的绝对距离的均值,与标准差不同。这种方法在数据中存在离群值(异常值)的情况下更稳健。
  4. 小数定标规范化:
    • 解释:通过移动小数点,将数据映射到[-1, 1]或其他合适的范围。
    • 计算方法:找到数据中的最大绝对值,然后计算一个缩放因子,通常是10的幂,以便将最大绝对值缩放到1之下。然后,将所有数据点除以这个缩放因子。
    • 意义:这种方法将数据点缩放到[-1, 1]或[-0.1, 0.1]等范围内,使数据易于理解和比较。这里我选取的是[-1,1]

不同的规范化方法适用于不同的数据和分析场景。您可以根据数据的性质和分析要求选择适当的规范化方法。

使用python代码实现

#给定数据
data = [200, 300, 400, 600, 1000]# 最小-最大规范化
min_val = min(data)
max_val = max(data)
normalized_data = [(x - min_val) / (max_val - min_val) for x in data]
#print(normalized_data)
print([round(val, 2) for val in normalized_data])  # 保留两位小数#  z 分数规范化,使用标准差
import statistics
mean = statistics.mean(data)
std_dev = statistics.stdev(data)
z_scores = [(x - mean) / std_dev for x in data]
#print(z_scores)
print([round(val, 2) for val in z_scores])  # 保留两位小数# z 分数规范化,使用均值绝对偏差
def mean_absolute_deviation(data):mean = sum(data) / len(data)deviation = [abs(x - mean) for x in data]return sum(deviation) / len(deviation)mad = mean_absolute_deviation(data)
normalized_data = [(x - statistics.mean(data)) / mad for x in data]
#print(normalized_data)
print([round(val, 2) for val in normalized_data])# 小数定标规范化
max_val = max(data)
num_digits = len(str(max_val))
scaled_data = [x / (max_val) for x in data]
#print(scaled_data)
print([round(val, 2) for val in scaled_data]) # 保留两位小数

结果如下:

E:\anaconda\envs\python3-11\python.exe E:\python_files\数据挖掘\homework1\homework1-3.py 
[0.0, 0.12, 0.25, 0.5, 1.0]
[-0.95, -0.63, -0.32, 0.32, 1.58]
[-1.25, -0.83, -0.42, 0.42, 2.08]
[0.2, 0.3, 0.4, 0.6, 1.0]

绘制表格如下

X1X2X3X4X5
最小-最大规范化0.00.120.250.51.0
z 分数规范化(标准差)-0.95-0.63-0.32-0.321.58
z 分数规范化(均值绝对偏差)-1.25-0.83-0.420.422.08
小数定标规范化0.20.30.40.61.0

第四题

假设 12 个销售价格记录已经排序,如下所示:

5,10,11,13,15,35,50,55,72,92,204,215

使用如下各方法将它们划分成三个箱。

  • a. 等频(等深)划分。
  • b. 等宽划分。
  • c. 聚类。

解:

a. 等频(等深)划分:

等频划分将数据集分成相等数量的箱,每个箱中包含近似相等数量的数据点。

  1. 首先,计算数据集的总数,即 12。
  2. 然后,计算每个箱的大小,即 12 / 3 = 4。
  3. 从最小值5开始,将数据点按顺序放入箱中,直到每个箱包含4个数据点为止。

划分后的三个箱分别是:

  • 箱1: [5, 10, 11, 13]
  • 箱2: [15, 35, 50, 55]
  • 箱3: [72, 92, 204, 215]

b. 等宽划分:

等宽划分将数据集分成包含相等数值范围的箱。

  1. 首先,找到数据集的最小值(5)和最大值(215)。
  2. 计算数值范围,即 215 - 5 = 210。
  3. 将数值范围除以3,以确定每个箱的宽度,即 210 / 3 = 70。
  4. 从最小值开始,创建三个箱,每个箱的宽度为70。
  5. 第一个箱,5-75;第二个箱,75-145;第三个箱,145-215

划分后的三个箱分别是:

  • 箱1: [5, 10, 11, 13, 15, 35, 50, 55, 72]
  • 箱2: [92]
  • 箱3: [204, 215]

c. 聚类:

聚类方法:使用聚类算法来将数据点分成组。使用 k-means 聚类方法,将数据点划分成三个簇。这个过程需要计算簇的中心点,然后将每个数据点分配到离它最近的中心点所属的簇。

本题由于数据只有一个维度,故没有必要进行标准化,也可以进行标准化,但是实际测试没有改变结果(符合预期)。

在Python中,可以使用sklearn库来执行 k-means 聚类。使用以下代码实现。

from sklearn.cluster import KMeans
import numpy as np
from sklearn.preprocessing import StandardScalerdata = np.array([5, 10, 11, 13, 15, 35, 50, 55, 72, 92, 204, 215])
data = data.reshape(-1, 1)  # 将数据转换为一列# 标准化数据
# scaler = StandardScaler()
# data = scaler.fit_transform(data)kmeans = KMeans(n_clusters=3, algorithm='lloyd').fit(data)
print(kmeans)
labels = kmeans.labels_# 根据标签将数据点分为三个簇
cluster1 = data[labels == 0]
cluster2 = data[labels == 1]
cluster3 = data[labels == 2]print("簇1:", cluster1)
print("簇2:", cluster2)
print("簇3:", cluster3)# 打印每个簇的中心点位置
centers = kmeans.cluster_centers_
print("簇1 中心点:", centers[0])
print("簇2 中心点:", centers[1])
print("簇3 中心点:", centers[2])

这将使用 k-means 聚类将数据点划分成三个簇。在示例代码中,cluster1cluster2cluster3 包含了每个簇的数据点。

划分后的三个箱分别是:

  • 箱1: [5, 10, 11, 13, 15, 35]
  • 箱2: [50, 55, 72, 92]
  • 箱3: [204, 215]

这三个簇的中心点分别为

  • 14.833
  • 67.25
  • 209.5

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

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

相关文章

基于Unity平台开发Vision Pro应用

VisionOS是苹果最新空间计算设备Vision Pro的操作系统。Unity开发人员可以利用现有的3D场景 以及为 visionOS 构建游戏或应用程序的资产。有关 visionOS 的更多信息&#xff0c;请参阅 Apple 的 visionOS 概述。 visionOS提供了几种不同的显示应用程序的模式&#xff1a;Windo…

【网站项目】基于SSM的274办公自动化管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

JVM系列-1.初识JVM

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术、JVM原理&#x1f525;如果感觉博主的文…

异或运算的骚操作,由浅入深拿捏一类型的题

文章目录 &#x1f680;前言&#x1f680;异或运算的基本用法&#x1f680;一组数中一种数出现了奇数次&#xff0c;其他种数出现了偶数次&#xff0c;找出这个数&#x1f680;一组数中有两种数出现了奇数次&#xff0c;其他种数出现了偶数次&#xff0c;求这两个数✈️得到一个…

Spring Boot3.2.2整合MyBatis Plus3.5.5

目录 1.前置条件 2.导坐标 3.配置数据源 4.配置mapper扫描路径 5.MyBatis Plus代码生成器整合 1.导坐标 2.编写代码生成逻辑 1.前置条件 已经初始化好一个spring boot项目且版本为3X&#xff0c;项目可正常启动 2.导坐标 <dependency><groupId>com.baomid…

弹性调度助力企业灵活应对业务变化,高效管理云上资源

作者&#xff1a;吴昆 什么是弹性调度 云计算时代&#xff0c;企业可以通过云平台获得大量计算资源&#xff0c;并根据业务发展和流量需求的实时变化&#xff0c;灵活调整使用的资源类型与资源量。阿里云提供了多种弹性资源&#xff0c;如云服务器 ECS 和弹性容器实例 ECI&am…

基于 Spring Boot+MySQL实现的在线考试系统源码+数据库,基于不同类型的客观题,进行自动组卷、批卷等功能的考试系统

1. 部署相关 1.1. 介绍 一个 JAVA 实现的在线考试系统,主要实现一套基于不同类型的客观题,进行自动组卷、批卷等功能的考试系统&#xff08;没有主观题&#xff09; 1.2. 系统架构 后端技术栈基于 Spring Boot数据库MySQLORMMyBatis & MyBatis-plus缓存Redis、guava的L…

【Java网络编程02】套接字编程

【Java网络编程02】套接字编程 1. Socket套接字 概念&#xff1a;Socket套接字&#xff0c;就是系统提供用于实现网络通信的技术&#xff0c;是基于TCP/IP协议的网络通信基本操作单元。基于Socket套接字的网络程序开发就是网络编程。 分类&#xff1a; 我们可以把Socket套接字…

docker 部署 sentinel

docker 部署 sentinel 环境安装 拉取镜像 目前稳定的版本是1.8.0 docker pull bladex/sentinel-dashboard:1.8.0启动服务 docker run --name sentinel -p 8858:8858 -td bladex/sentinel-dashboard:1.8.0登录 登录的时候账号和密码都是sentinel

算法训练营Day45

#Java #动态规划 Feeling and experiences&#xff1a; 最长公共子序列&#xff1a;力扣题目链接 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新…

泛型..

1.泛型 所谓泛型 其实就是一种类型参数(我们平常所见到的参数指的就是方法中的参数 他接收有外界传递来的值 然后在方法中进行使用) 并且还提高了代码的复用率 何以见得提高了代码的复用率 其实就是通过对比使用了泛型技术和没有使用泛型技术之间的区别&#xff1a; 以下是没有…

windows如何切换访问NAS共享文件夹用户

从资源管理器对NAS共享文件夹输入用户名与密码进行访问后&#xff0c;想切换访问用户&#xff0c;搜索了一圈&#xff0c;网上介绍的方法都无效&#xff0c;最后只能注销windows7登陆&#xff0c;然后重新登陆&#xff0c;再访问NAS共享时才能切换用户&#xff0c;各位观众如有…

深度学习记录--Momentum gradient descent

Momentum gradient descent 正常的梯度下降无法使用更大的学习率&#xff0c;因为学习率过大可能导致偏离函数范围&#xff0c;这种上下波动导致学习率无法得到提高&#xff0c;速度因此减慢(下图蓝色曲线) 为了减小波动&#xff0c;同时加快速率&#xff0c;可以使用momentum…

【软件测试】学习笔记-制定性能测试的目标

之前有同学交流过&#xff0c;在测试执行过程中他并不清楚测试得到的结果到底能不能满足这次活动的需求。经过追问&#xff0c;发现他连本次活动规则涉及的模块和接口都不是十分清楚&#xff0c;像这样的测试就是没有做性能测试目标的分析。虽然说做了性能测试&#xff0c;但几…

学习CANopen --- [12] Abort报文

当我们使用SDO进行读写操作时&#xff0c;有时device会返回abort报文&#xff0c;意味着本次SDO读写失败。本文使用例子来讲解Abort报文&#xff0c;以及如何解读失败原因。 一 Device例子 下面是device的python代码&#xff0c;文件名叫device.py&#xff0c;device的CANopen…

Linux配置主机名-使用主机名访问服务器

主要需要对Hosts文件进行操作&#xff0c; Hosts是一个没有扩展名的系统文件&#xff0c;可以用记事本等工具打开&#xff0c;其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”&#xff0c; 先将自己的主机名设置成有意义&#xff0c;别人好记的样子&a…

上位机图像处理和嵌入式模块部署(开篇)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 图像处理是现实生活当中很实用的一门技术。工业上一般采用的是机器视觉&#xff0c;以传统算法和光源控制为主&#xff0c;部分采用了深度学习技术…

【51单片机】外部中断

0、前言 参考&#xff1a;普中 51 单片机开发攻略 第16章 及17章 1、硬件 2、软件 #include <reg52.h> #include <intrins.h> #include "delayms.h"typedef unsigned char u8; typedef unsigned int u16;sbit led P2^0; sbit key3 P3^2;//外部中断…

【深度学习:数据增强 】提高标记数据质量的 5 种方法

【深度学习&#xff1a;数据增强 】提高标记数据质量的 5 种方法 计算机视觉中常见的数据错误和质量问题&#xff1f;为什么需要提高数据集的质量&#xff1f;提高标记数据质量的五种方法使用复杂的本体结构作为标签人工智能辅助标签识别标签错误的数据改进注释者管理 计算机视…

spark 入门教程

一、安装scala环境 官网下载地址 Download | The Scala Programming Language,本次使用版本为sacla2.11.12,将压缩包解压至指定目录&#xff0c;配置好环境变量&#xff0c;控制台验证是否安环境是否可用&#xff1a; 二、添加pom依赖 创建一个maven项目 1、添加scala的sdk依…