【机器学习】数据探索(Data Exploration)---数据质量和数据特征分析

news/2024/4/29 8:56:34/文章来源:https://blog.csdn.net/qq_38614074/article/details/137132498

一、引言

  在机器学习项目中,数据探索是至关重要的一步。它不仅是模型构建的基础,还是确保模型性能稳定、预测准确的关键。数据探索的过程中,数据质量和数据特征分析占据了核心地位。数据质量直接关系到模型能否从数据中提取有效信息,而数据特征分析则决定了模型能否准确捕捉数据的内在规律和模式。

  高质量的数据能够减少模型训练时的噪声干扰,提高模型的泛化能力。相反,如果数据中存在大量错误、重复或缺失的值,模型的性能将受到严重影响。同样,对数据特征进行深入分析,有助于理解数据的分布、相关性以及潜在的规律,从而为模型选择和特征工程提供有力支持。

  因此,在机器学习项目中,进行充分的数据探索,特别是对数据质量和数据特征进行深入分析,对于提高模型性能具有不可替代的作用。
在这里插入图片描述

二、数据质量分析

  数据质量分析是数据挖掘过程中不可或缺的一环,它位于数据准备的核心阶段,为数据预处理提供了关键的指导,更是确保数据挖掘分析结论有效性和准确性的基石。没有坚实可靠的数据支撑,数据挖掘所构建的模型将如同空中楼阁,缺乏实际价值和应用意义。

  数据质量分析的主要任务是检查原始数据中是否存在脏数据,脏数据一般是指不符合要求,以及不能直接进行相应分析的数据。在常见的数据挖掘工作中,脏数据包括如下内容。

  • 缺失值。
  • 异常值。
  • 不一致的值。
  • 重复数据及含有特殊符号(如#、¥、*)的数据。

  本小节将主要对数据中的缺失值、异常值和一致性进行分析。

2.1 缺失值分析

  数据的缺失是一个普遍存在的问题,主要表现为记录整体的缺失或记录中某个特定字段的信息缺失。这两种情况都可能导致分析结果的偏差。以下,我们将从缺失值产生的原因和其对分析的影响,以及如何处理这些缺失值等几个方面进行详细探讨。

  • 缺失值可能产生的原因。有时,某些信息可能暂时无法获取,或者获取这些信息的成本过高,因此选择留空。另外,有些信息的缺失可能是由于人为疏忽,如输入时认为某些信息不重要、忘记填写或对数据理解有误等。同时,非人为因素也可能导致数据缺失,如数据采集、存储或传输过程中的故障。还有一种情况是,某些属性值对于某些对象来说本身就是不存在的,例如未婚者的配偶信息或未成年人的收入等。

  • 缺失值对数据分析和挖掘的影响。首先,缺失值会导致大量有用信息的丢失,从而影响数据挖掘模型的准确性和完整性。其次,缺失值会使模型的不确定性增加,使得模型中的规律更难被准确捕捉和理解。最后,包含缺失值的数据可能会干扰建模过程,导致模型输出不可靠,从而影响决策的有效性。

  针对缺失值的问题,我们需要进行仔细的分析和处理。通过简单的统计分析,我们可以了解哪些属性存在缺失值,以及每个属性的缺失程度。在处理缺失值时,我们可以选择删除存在缺失值的记录对缺失值进行插补保留缺失值不做处理等方法。具体选择哪种方法,需要根据数据的实际情况和分析目的来决定。
在这里插入图片描述

2.2 异常值分析

  异常值分析是检验数据是否有录入错误以及含有不合常理的数据。忽视异常值的存在是十分危险的,不加剔除地把异常值包括进数据的计算分析过程中,对结果会产生不良影响; 重视异常值的出现,分析其产生的原因,常常成为发现问题进而改进决策的契机。

  异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称为离群点,异常值的分析也称为离群点分析。

  • (1)简单统计量分析

  可以先对变量做一个描述性统计,进而查看哪些数据是不合理的。最常用的统计量是最大值和最小值,用来判断这个变量的取值是否超出了合理的范围。如客户年龄的最大值为199岁,则该变量的取值存在异常。

  • (2)3 δ \delta δ原则
    正态分布图根据正态分布的定义可知,数据点落在偏离均值正负1倍标准差(即sigma值)内的概率为68.2%;数据点落在偏离均值正负2倍标准差内的概率为95.4%;数据点落在偏离均值正负3倍标准差内的概率为99.6%。

所以,换个角度思考上文提到的概率值,如果数据点落在偏离均值正负2倍标准差之外的概率就不足5%,它属于小概率事件,即认为这样的数据点为异常点。同理,如果数据点落在偏离均值正负3倍标准差之外的概率将会更小,可以认为这些数据点为极端异常点。为使读者直观地理解文中提到的概率值,可以查看标准正态分布的概率密度图,如下图所示:
  如果数据服从正态分布,在3 δ \delta δ原则下,异常值被定义为一组测定值中与平均值的偏差超过3倍标准差的值。在正态分布的假设下,距离平均值3 δ \delta δ之外的值出现的概率为 P ( x − μ > 3 δ ) ≤ 0.003 P(x-μ>3\delta)≤0.003 Pxμ>3δ0.003,属于极个别的小概率事件。
如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。
在这里插入图片描述
3 δ \delta δ原则使用案列:

# 读入外部数据
pay_ratio = pd.read_excel(r'C:\Users\Administrator\Desktop\pay_ratio.xlsx')
# 绘制单条折线图,并在折线图的基础上添加点图
plt.plot(pay_ratio.date, # x轴数据pay_ratio.ratio, # y轴数据linestyle = '-', # 设置折线类型linewidth = 2, # 设置线条宽度color = 'steelblue', # 设置折线颜色marker = 'o', # 往折线图中添加圆点markersize = 4, # 设置点的大小markeredgecolor='black', # 设置点的边框色markerfacecolor='black') # 设置点的填充色
# 显示图形
plt.show()# 添加上下界的水平参考线(便于判断异常点,如下判断极端异常点,只需将2改为3)
plt.axhline(y = pay_ratio.ratio.mean() - 2* pay_ratio.ratio.std(), linestyle = '--', color = 'gray')
plt.axhline(y = pay_ratio.ratio.mean() + 2* pay_ratio.ratio.std(), linestyle = '--', color = 'gray')# 导入模块,用于日期刻度的修改(因为默认格式下的日期刻度标签并不是很友好)
import matplotlib as mpl
# 获取图的坐标信息
ax = plt.gca()
# 设置日期的显示格式  
date_format = mpl.dates.DateFormatter("%m-%d")  
ax.xaxis.set_major_formatter(date_format) # 设置x轴每个刻度的间隔天数
xlocator = mpl.ticker.MultipleLocator(7)
ax.xaxis.set_major_locator(xlocator)
# 为了避免x轴刻度标签的紧凑,将刻度标签旋转45度
plt.xticks(rotation=45)

在这里插入图片描述

  • (3)箱型图分析

  箱型图提供了识别异常值的一个标准:异常值通常被定义为小于 Q L − 1.5 I Q R Q_L-1.5IQR QL1.5IQR或大于 Q U + 1.5 I Q R Q_U+1.5IQR QU+1.5IQR的值。 Q L Q_L QL称为下四分位数,表示全部观察值中有四分之一的数据取值比它小; Q U Q_U QU称为上四分位数,表示全部观察值中有四分之一的数据取值比它大;IQR称为四分位数间距,是上四分位数Qu与下四分位数,之差,其间包含了全部观察值的一半。

  箱型图依据实际数据绘制,没有对数据作任何限制性要求(如服从某种特定的分布形式),它只是真实直观地表现数据分布的本来面貌;另一方面,箱型图判断异常值的标准以四分位数和四分位距为基础,四分位数具有一定的鲁棒性:多达25%的数据可以变得任意远而不会很大地扰动四分位数,所以异常值不能对这个标准施加影响。由此可见,箱型图识别异常值的结果比较客观,在识别异常值方面有一定的优越性,如图所示。
在这里插入图片描述

2.3 一致性分析

  数据不一致性是指数据之间存在矛盾或不相容的情况。如果直接对这类数据进行挖掘分析,那么得出的结果很可能与实际情况相悖,导致错误的结论。

  在数据挖掘的流程中,数据不一致的问题通常出现在数据集成阶段。这往往是因为所挖掘的数据来源于多个不同的数据源,或者对于重复存储的数据没有进行同步更新。举个例子来说,假设有两张表都记录了用户的电话号码,但是当用户的电话号码发生变动时,如果只更新了其中一张表的数据,那么这两张表中的数据就会出现不一致的情况。因此,在进行数据挖掘之前,必须对数据进行清洗和整合,以确保数据的一致性和准确性。

三、数据特征分析

  对数据进行质量分析以后,接下来可通过绘制图表、计算某些特征量等手段进行数据的特征分析。

3.1 分布分析

  分布分析能揭示数据的分布特征和分布类型。对于定量数据,欲了解其分布形式是对称的还是非对称的,发现某些特大或特小的可疑值,可通过绘制频率分布表、绘制频率分布直方图、绘制茎叶图进行直观地分析;对于定性分类数据,可用饼图和条形图直观地显示分布情况。

1.定量数据的分布分析

  对于定量变量而言,选择“组数”和“组宽”是做频率分布分析时最主要的问题,一般按照以下步骤进行。

  • 求极差:
    极差是数据集中最大值与最小值之间的差值,它反映了数据的离散程度。通过计算极差,我们可以对数据集的波动范围有一个初步的了解。

  • 决定组距与组数:
    组距是指每个数据分组之间的间隔大小,而组数则是数据被分为多少个组。组距和组数的选择对于准确反映数据的分布特征至关重要。过小的组距和过多的组数可能导致信息过于繁琐,而过大的组距和过少的组数则可能掩盖数据的真实分布。因此,需要根据数据的实际情况和分析目的,选择合适的组距和组数。

  • 决定分点:
    分点是根据组距将数据集中的每个数值分配到相应的组中。分点的确定应确保每个数值都能被准确地归类到其所属的组中,以便后续的频率分布统计。

  • 列出频率分布表:
    频率分布表是将数据集按照分组进行统计,列出每个分组中的频数(即该分组中的数据个数)。频率分布表能够直观地展示数据的分布情况,便于后续的分析和比较。

  • 绘制频率分布直方图:
    频率分布直方图是根据频率分布表绘制的图形,它更直观地展示了数据的分布情况。在直方图中,每个分组的频数用矩形的面积表示,矩形的宽度表示组距,高度表示频数。通过直方图,我们可以快速地了解数据的分布形态、集中趋势和离散程度。

2.定性数据的分布分析

   定性数据的分布分析主要关注数据的类别属性,通过分析不同类别的分布情况来揭示数据的内在特征。

  • 数据分类:
    首先,需要对定性数据进行分类,明确数据的类别属性。这些类别可以是根据问题的性质和研究目的自行定义的,也可以是已有的分类标准。

  • 频数统计:
    然后,对每个类别进行频数统计,即统计每个类别在数据集中出现的次数。频数统计有助于我们了解各类别在总体中的分布情况。

  • 比例计算:
    除了频数统计外,还可以计算各类别的比例,即每个类别的频数占总频数的百分比。比例计算能够更直观地展示各类别在总体中的相对重要性。

  • 可视化展示:
    为了更好地展示定性数据的分布情况,可以使用饼图、条形图等可视化工具进行展示。这些图形能够直观地展示各类别的比例和分布情况,便于分析和解释。

3.2 对比分析

  对比分析是指把两个相互联系的指标进行比较,从数量上展示和说明研究对象规模的大小,水平的高低,速度的快慢,以及各种关系是否协调。特别适用于指标间的横纵向比较、时间序列的比较分析。在对比分析中,选择合适的对比标准是十分关键的步骤,只有选择合适,才能做出客观的评价,选择不合适,评价可能得出错误的结论。

对比分析主要有以下两种形式。

(1) 绝对数比较
  绝对数比较是一种直接利用数值大小进行比较的方法,它侧重于分析不同数据组之间的实际数量差异。这种比较方式直观明了,能够清晰地展示各个数据组的具体数值,从而揭示它们之间的规模、水平或总量的差异。
(2)相对数比较

  • 结构相对数:
    结构相对数用于描述某一总体内部各组成部分所占的比重或分布状况。例如,在一份关于员工构成的报告中,结构相对数可以展示不同部门或不同职位的员工数量占总员工数量的比例,从而揭示员工构成的分布情况。

  • 比例相对数:
    比例相对数用于比较两个不同总体之间的数量关系。例如,比较两个城市的GDP增长率,可以通过计算它们的比例相对数来展示两个城市在经济增长方面的差异。

  • 比较相对数:
    比较相对数用于比较同一总体在不同时期或不同条件下的数量变化。例如,比较一个公司今年和去年的销售额,可以通过计算比较相对数来揭示销售额的增长或下降情况。

  • 强度相对数:
    强度相对数用于描述两个有联系的不同总体之间的数量对比关系。例如,在人口统计学中,强度相对数可以用于比较人口数量和土地资源之间的关系,从而揭示人口承载能力的状况。

  • 计划完成程度相对数:
    计划完成程度相对数用于评估实际完成数与计划完成数之间的比例关系。这种相对数常用于评估项目、计划或任务的完成情况,帮助决策者了解实际进度与预期目标之间的差距。

  • 动态相对数:
    动态相对数用于描述某一现象在不同时期的发展速度或变化程度。例如,计算一个国家近几年的GDP增长率,可以揭示该国经济发展的动态趋势。

3.3 统计量分析

  统计量分析通常包括中心趋势统计量、散布程度统计量和分布形状统计量等几类。中心趋势统计量用于表示数据的集中趋势,如均值、中位数和众数等。均值是所有数值的总和除以数值的数量,它描述了数据的平均位置;中位数则是将一组数据从小到大排列后,位于中间位置的数值,特别适用于倾斜的数据集;众数则是数据集中出现频率最高的数值。

  散布程度统计量用于衡量数据的离散程度,如标准差和四分位极差。标准差反映了每个数值与均值之间的平均差异,它越大,说明数据越分散;四分位极差则是上四分位数与下四分位数之差,它描述了数据集中间50%的数值的散布范围。分布形状统计量可以帮助我们了解数据的分布形态,如偏度和峰度。偏度描述了数据分布的不对称性,而峰度则反映了数据分布的尖锐程度。

3.4 周期性分析

  周期性分析可以应用于多个时间尺度。在较长的时间尺度上,我们可以观察到年度性周期性趋势和季节性周期性趋势。例如,某些行业或产品的销量可能会随着季节的更替而呈现出明显的起伏变化。而在较短的时间尺度上,我们可以观察到月度、周度、天度甚至小时度的周期性趋势。这些短周期的波动可能受到多种因素的影响,如特定节假日、促销活动或日常工作生活的规律等。

3.5 贡献度分析

  贡献度分析又称帕累托分析,它的原理是帕累托法则,又称20/80定律。同样的投入放在不同的地方会产生不同的效益。例如,对一个公司来讲,80%的利润常常来自于20%最畅销的产品,而其他80%的产品只产生了20%的利润。

  贡献度分析的核心在于通过一系列统计和数据分析技术,识别并量化各个因素或变量对总体目标的贡献。这通常涉及对数据的收集、整理、清洗和转换,以及应用适当的统计分析方法。在分析过程中,可能需要考虑多个因素之间的相互作用和相关性,以更全面地了解它们对总体目标的影响。

3.6 相关性分析

  分析连续变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程称为相关分析。

  • 1.直接绘制散点图
      判断两个变量是否具有线性相关关系的最直观的方法是直接绘制散点图,如图所示。
    在这里插入图片描述

  • 2.绘制散点图矩阵
      需要同时考察多个变量间的相关关系时,一一绘制它们间的简单散点图是十分麻烦的。此时可利用散点图矩阵同时绘制各变量间的散点图,从而快速发现多个变量间的主要相关性,这在进行多元线性回归时显得尤为重要。
    在这里插入图片描述

  • 3.计算相关系数
      为了更加准确地描述变量之间的线性相关程度,可以通过计算相关系数来进行相关分析。在二元变量的相关分析过程中比较常用的有Pearson相关系数、Spearman秩相关系数和判定系数。

( 1 ) Pearson相关系数
  一般用于分析两个连续性变量之间的关系,其计算公式如下:
r = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 r = \frac{\sum_{i = 1} ^n(x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum_{i = 1} ^n(x_i-\bar{x})^2\sum_{i = 1} ^n(y_i-\bar{y})^2}} r=i=1n(xixˉ)2i=1n(yiyˉ)2 i=1n(xixˉ)(yiyˉ)
相关系数 r r r的取值范围: − 1 ≤ r ≤ 1 -1 \leq r \leq 1 1r1
{ r > 0 为正相关, r < 0 为负相关 ∣ r ∣ = 0 表示不存在线性关系 ∣ r ∣ = 1 表示完全线性关系 \begin{cases} r > 0为正相关,r < 0为负相关 \\ \mid r \mid = 0 表示不存在线性关系 \\ \mid r \mid = 1 表示完全线性关系 \end{cases} r>0为正相关,r<0为负相关r∣=0表示不存在线性关系r∣=1表示完全线性关系

0 < ∣ r ∣ < 1 0 < \mid r \mid < 1 0<∣r∣<1表示存在不同程度线性关系:
{ ∣ r ∣ ≤ 0.3 为不存在线性相关 0.3 < ∣ r ∣ ≤ 0.5 为低度线性相关 0.5 < ∣ r ∣ ≤ 0.8 为显著线性相关 ∣ r ∣ > 0.8 为高度线性相关 \begin{cases} \mid r \mid \leq 0.3 为不存在线性相关 \\ 0.3 < \mid r \mid \leq 0.5为低度线性相关 \\ 0.5 < \mid r \mid \leq 0.8为显著线性相关 \\ \mid r \mid > 0.8 为高度线性相关 \end{cases} r∣≤0.3为不存在线性相关0.3<∣r∣≤0.5为低度线性相关0.5<∣r∣≤0.8为显著线性相关r∣>0.8为高度线性相关
( 2 ) Spearman秩相关系数
  Pearson线性相关系数要求连续变量的取值服从正态分布。不服从正态分布的变量、分类或等级变量之间的关联性可采用Spearman秩相关系数,也称等级相关系数来描述。
其计算公式如下。

r s = 1 − 6 ∑ i = 1 n ( R i − Q i ) 2 n ( n 2 − 1 ) r_s=1-\frac{6\sum_{i = 1} ^n(R_i-Q_i)^2}{n(n^2-1)} rs=1n(n21)6i=1n(RiQi)2

  对两个变量成对的取值分别按照从小到大(或者从大到小)顺序编秩, R i R_i Ri代表 x i x_i xi的秩次, Q i Q_i Qi代表 y i y_i yi的秩次, R i − Q i R_i-Q_i RiQi x i 、 y i x_i 、y_i xiyi的秩次之差。
下表给出一个变量 x ( x 1 , x 2 , . . . , x i , . . . , x n ) x(x_1,x_2,...,x_i,...,x_n) x(x1,x2,...,xi,...,xn)秩次的计算过程。

变量 x 秩次的计算过程 \bold{变量x秩次的计算过程} 变量x秩次的计算过程

x i x_i xi从小到大排序从小到大排序时的位置秩次 R i R_i Ri
0.511
0.822
1.033
1.24(4+5)/2=4.5
1.25(4+5)/2=4.5
2.366
2.877

  因为一个变量的相同的取值必须有相同的秩次,所以在计算中采用的秩次是排序后所在位置的平均值。
  只要两个变量具有严格单调的函数关系,那么它们就是完全Spearman相关的,这与Pearson相关不同,Pearson相关只有在变量具有线性关系时才是完全相关的。
  在实际应用计算中,上述两种相关系数都要对其进行假设检验,使用t检验方法检验其显著性水平以确定其相关程度。研究表明,在正态分布假定下,Spearman秩相关系数与Pearson相关系数在效率上是等价的,而对于连续测量数据,更适合用Pearson相关系数来进行分析。

( 3 ) 判定系数

  判定系数是相关系数的平方,用 r 2 r^2 r2表示;用来衡量回归方程对y的解释程度。判定系数取值范围: 0 ≤ r 2 ≤ 1 0≤r^2≤1 0r21 r 2 r^2 r2越接近于1,表明 x x x y y y之间的相关性越强; r 2 r^2 r2越接近于0,表明两个变量之间几乎没有直线相关关系。

五、总结

  数据探索在机器学习的全过程中扮演着至关重要的角色。它是数据预处理的关键步骤,是模型构建的基础,更是确保模型性能稳定、预测准确的核心保障。通过对数据的深入探索,我们可以理解数据的结构、质量、特征分布以及与目标变量的关系,从而为后续的模型选择、特征工程以及参数调优提供有力的依据。

  在数据质量分析阶段,我们特别关注了缺失值的处理。缺失值不仅可能影响模型的训练效果,还可能导致模型对数据的解释能力下降。因此,对缺失值的识别、原因分析和处理是数据探索中不可或缺的一部分。通过选择合适的填充方法或删除策略,我们可以有效地减少缺失值对模型性能的影响。

  在数据特征分析阶段,我们利用统计描述、可视化工具以及相关性分析等方法,深入挖掘了数据中的有用信息。通过对特征与目标变量之间关系的探究,我们可以筛选出对模型性能有提升作用的特征,同时去除那些与目标变量无关或相关性较弱的特征,从而提高模型的预测精度和泛化能力。

  此外,数据探索还有助于发现数据中的异常值和潜在模式。异常值可能是由于数据录入错误、测量误差或特殊事件引起的,如果不加以处理,可能会对模型的训练产生干扰。通过数据探索,我们可以及时发现并处理这些异常值,确保模型的稳定性和可靠性。

  综上所述,数据探索是机器学习项目中的一项重要任务,它贯穿于整个项目流程,从数据收集、预处理到模型构建和评估,都离不开数据探索的支持。只有充分、深入地探索数据,我们才能更好地理解数据,从数据中提取有价值的信息,为机器学习模型的构建和优化提供坚实的基础。

注:
  后面的【机器学习】数据探索—python主要的探索函数将重点介绍在数据探索阶段使用的功能函数;让我们一起来学习数据处理的步骤和功能函数,为机器学习的模型提升更有效的保障。

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

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

相关文章

linux中查看内存占用空间

文章目录 linux中查看内存占用空间 linux中查看内存占用空间 使用 df -h 查看磁盘空间 使用 du -sh * 查看每个目录的大小 注意这里是当前目录下的文件大小&#xff0c;查看系统的可以回到根目录 经过查看没有发现任何大的文件夹。 继续下面的步骤 如果您的Linux磁盘已满&a…

VScode中cmake调试

一般的cmake命令行测试方法&#xff1a; cmake -S . -B build cmake --build build ./build/cmake_debug 在vscode中使用图形化界面操作的方法 main.cpp #include <iostream>int main() {int num_a, num_b;num_a 10;num_b 20;std::cout << "num_a &qu…

TTS通用播放库技术设计

TTS音频播放库技术设计 目录介绍 01.整体介绍概述 1.1 项目背景介绍1.2 遇到问题1.3 基础概念介绍1.4 设计目标1.5 问题答疑和思考 02.技术调研说明 2.1 语音播放方案2.2 TTS技术分析2.3 语音合成技术2.4 方案选择说明2.5 方案设计思路2.6 文本生成音频 03.系统TTS使用实践 3…

CSS(六)

一、精灵图 1.1 为什么需要精灵图 一个网页中往往会应用很多小的背景图像作为修饰&#xff0c;当网页中的图像过多时&#xff0c;服务器就会频繁地接收和发送请求图片&#xff0c;造成服务器请求压力过大&#xff0c;这将大大降低页面的加载速度。 因此&#xff0c;为了有效…

Vue挂载全局方法

简介&#xff1a;有时候&#xff0c;频繁调用的函数&#xff0c;我们需要把它挂载在全局的vue原型上&#xff0c;方便调用&#xff0c;具体怎么操作&#xff0c;这里来记录一下。 一、这里以本地存储的方法为例 var localStorage window.localStorage; const db {/** * 更新…

面试八股——Redis——分布式锁——Redisson

1.看门狗机制 注意看门狗机制&#xff1a;redisson会监听持有锁的线程&#xff0c;并每隔一段时间(releaseTime/3&#xff0c;默认releaseTime为30s)&#xff0c;如果线程还未释放锁的话&#xff0c;会给锁做一次续期。 2. 主从一致性 实际开发中我们会搭建多台redis服务器&a…

八大技术趋势案例(区块链量子计算)

科技巨变,未来已来,八大技术趋势引领数字化时代。信息技术的迅猛发展,深刻改变了我们的生活、工作和生产方式。人工智能、物联网、云计算、大数据、虚拟现实、增强现实、区块链、量子计算等新兴技术在各行各业得到广泛应用,为各个领域带来了新的活力和变革。 为了更好地了解…

BOT攻击是什么,应当如何防护?

抢票失败、小程序崩溃、平台遭恶意灌水……这些我们日常都可能遇到过的问题的背后很有可能是BOT攻击在兴风作浪。对于企业用户来说&#xff0c;据相关调研显示&#xff0c;近八成企业都曾因BOT攻击而受到经济损失&#xff0c;而面对越来越复杂的BOT攻击&#xff0c;大多数企业表…

数据结构 之 队列习题 力扣oj(附加思路版)

优先级队列 #include<queue> --队列 和 优先级队列的头文件 优先级队列&#xff1a; 堆结构 最大堆 和 最小堆 相关函数&#xff1a; front() 获取第一个元素 back() 获取最后一个元素 push() 放入元素 pop() 弹出第一个元素 size() 计算队列中元素…

鸿蒙HarmonyOS应用开发之USB DDK开发指导

场景介绍 USB DDK&#xff08;USB Driver Develop Kit&#xff09;是为开发者提供的USB驱动程序开发套件&#xff0c;支持开发者基于用户态&#xff0c;在应用层开发USB设备驱动。提供了一系列主机侧访问设备的接口&#xff0c;包括主机侧打开和关闭接口、管道同步异步读写通信…

学习JavaEE的日子 Day32 线程池

Day32 线程池 1.引入 一个线程完成一项任务所需时间为&#xff1a; 创建线程时间 - Time1线程中执行任务的时间 - Time2销毁线程时间 - Time3 2.为什么需要线程池(重要) 线程池技术正是关注如何缩短或调整Time1和Time3的时间&#xff0c;从而提高程序的性能。项目中可以把Time…

没学数模电可以玩单片机吗?

我们首先来看一下数电模电在单片机中的应用。数电知识在单片机中主要解决各种数字信号的处理、运算&#xff0c;如数制转换、数据运算等。模电知识在单片机中主要解决各种模拟信号的处理问题&#xff0c;如采集光照强度、声音的分贝、温度等模拟信号。而数电、模电的相互转换就…

Ubuntu 系统下安装 Redis

目录 一、上传 Redis 安装包并解压缩 二、编译 1、安装gcc&#xff0c;不然后面编译报错 2、开始编译 三、生成后台服务 四、修改配置文件 1、设置密码 2、设置后台启动 五、启动服务 一、上传 Redis 安装包并解压缩 tar -zxvf redis-6.0.2.tar.gz 二、编译 1、安装g…

【分布式】——CAPBASE理论

CAP&BASE理论 ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/tree-learning-notes ⭐⭐⭐⭐⭐⭐ Spring专栏&#x1f449;https://blog.csdn.net/weixin_53580595/category_12279588.html Sprin…

C语言用if语句设计选择结构程序

在C语言中&#xff0c;if语句是一种常用的选择结构语句&#xff0c;用于根据条件选择性地执行不同的代码块。if语句的设计使得程序可以根据条件的真假进行分支控制&#xff0c;从而实现灵活的程序逻辑。本文将深入介绍C语言中如何使用if语句设计选择结构程序&#xff0c;包括if…

Elasticsearch 和 Kibana 8.13:简化 kNN 和改进查询并行化

作者&#xff1a;Gilad Gal, Tyler Perkins, Srikanth Manvi, Aris Papadopoulos, Trevor Blackford 在 8.13 版本中&#xff0c;Elastic 引入了向量搜索的重大增强&#xff0c;并将 Cohere 嵌入集成到其统一 inference API 中。这些更新简化了将大型语言模型&#xff08;LLM&a…

企业微信变更主体公证怎么弄?

企业微信变更主体有什么作用&#xff1f;现在很多公司都用企业微信来加客户&#xff0c;有时候辛辛苦苦积累了很多客户&#xff0c;但是公司却因为各种各样的原因需要注销&#xff0c;那么就需要通过企业微信变更主体的方法&#xff0c;把企业微信绑定的公司更改为最新的。企业…

【python 数据可视化】 WordCloud词云图

目录 词云简介 准备工作 安装方法一&#xff1a; 安装方法二&#xff1a; 生成词云步骤 数据预处理&#xff1a; 分词&#xff1a; 统计词频出现的次数&#xff1a; 去除词语&#xff1a; 生成词云&#xff1a; 显示词云&#xff1a; 保存词云&#xff1a; 完整代码 词…

ClickHouse06-ClickHouse中基础的增删改查

使用数据库&#xff0c;最基础的学习都是增、删、改、查&#xff0c;然后才会去了解基础函数和高阶函数&#xff0c;今天就来看看大火的 ClickHouse 中简单的增删改查怎么写&#xff1f; 创建数据库&#xff1a;create database创建表格&#xff1a;create table修改表格&…

jmeter总结之:Regular Expression Extractor元件

Regular Expression Extractor是一个后处理器元件&#xff0c;使用正则从服务器的响应中提取数据&#xff0c;并将这些数据保存到JMeter变量中&#xff0c;以便在后续的请求或断言中使用。在处理动态数据或验证响应中的特定信息时很有用。 添加Regular Expression Extractor元…