【机器学习】数据探索(Data Exploration)---数据质量和数据特征分析
一、引言
在机器学习项目中,数据探索是至关重要的一步。它不仅是模型构建的基础,还是确保模型性能稳定、预测准确的关键。数据探索的过程中,数据质量和数据特征分析占据了核心地位。数据质量直接关系到模型能否从数据中提取有效信息,而数据特征分析则决定了模型能否准确捕捉数据的内在规律和模式。
高质量的数据能够减少模型训练时的噪声干扰,提高模型的泛化能力。相反,如果数据中存在大量错误、重复或缺失的值,模型的性能将受到严重影响。同样,对数据特征进行深入分析,有助于理解数据的分布、相关性以及潜在的规律,从而为模型选择和特征工程提供有力支持。
因此,在机器学习项目中,进行充分的数据探索,特别是对数据质量和数据特征进行深入分析,对于提高模型性能具有不可替代的作用。
二、数据质量分析
数据质量分析是数据挖掘过程中不可或缺的一环,它位于数据准备的核心阶段,为数据预处理提供了关键的指导,更是确保数据挖掘分析结论有效性和准确性的基石。没有坚实可靠的数据支撑,数据挖掘所构建的模型将如同空中楼阁,缺乏实际价值和应用意义。
数据质量分析的主要任务是检查原始数据中是否存在脏数据,脏数据一般是指不符合要求,以及不能直接进行相应分析的数据。在常见的数据挖掘工作中,脏数据包括如下内容。
- 缺失值。
- 异常值。
- 不一致的值。
- 重复数据及含有特殊符号(如#、¥、*)的数据。
本小节将主要对数据中的缺失值、异常值和一致性进行分析。
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 P(x−μ>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 QL−1.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(xi−xˉ)2∑i=1n(yi−yˉ)2∑i=1n(xi−xˉ)(yi−yˉ)
相关系数 r r r的取值范围: − 1 ≤ r ≤ 1 -1 \leq r \leq 1 −1≤r≤1
{ 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=1−n(n2−1)6∑i=1n(Ri−Qi)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 Ri−Qi为 x i 、 y i x_i 、y_i xi、yi的秩次之差。
下表给出一个变量 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.5 | 1 | 1 |
0.8 | 2 | 2 |
1.0 | 3 | 3 |
1.2 | 4 | (4+5)/2=4.5 |
1.2 | 5 | (4+5)/2=4.5 |
2.3 | 6 | 6 |
2.8 | 7 | 7 |
因为一个变量的相同的取值必须有相同的秩次,所以在计算中采用的秩次是排序后所在位置的平均值。
只要两个变量具有严格单调的函数关系,那么它们就是完全Spearman相关的,这与Pearson相关不同,Pearson相关只有在变量具有线性关系时才是完全相关的。
在实际应用计算中,上述两种相关系数都要对其进行假设检验,使用t检验方法检验其显著性水平以确定其相关程度。研究表明,在正态分布假定下,Spearman秩相关系数与Pearson相关系数在效率上是等价的,而对于连续测量数据,更适合用Pearson相关系数来进行分析。
( 3 ) 判定系数
判定系数是相关系数的平方,用 r 2 r^2 r2表示;用来衡量回归方程对y的解释程度。判定系数取值范围: 0 ≤ r 2 ≤ 1 0≤r^2≤1 0≤r2≤1。 r 2 r^2 r2越接近于1,表明 x x x与 y y y之间的相关性越强; r 2 r^2 r2越接近于0,表明两个变量之间几乎没有直线相关关系。
五、总结
数据探索在机器学习的全过程中扮演着至关重要的角色。它是数据预处理的关键步骤,是模型构建的基础,更是确保模型性能稳定、预测准确的核心保障。通过对数据的深入探索,我们可以理解数据的结构、质量、特征分布以及与目标变量的关系,从而为后续的模型选择、特征工程以及参数调优提供有力的依据。
在数据质量分析阶段,我们特别关注了缺失值的处理。缺失值不仅可能影响模型的训练效果,还可能导致模型对数据的解释能力下降。因此,对缺失值的识别、原因分析和处理是数据探索中不可或缺的一部分。通过选择合适的填充方法或删除策略,我们可以有效地减少缺失值对模型性能的影响。
在数据特征分析阶段,我们利用统计描述、可视化工具以及相关性分析等方法,深入挖掘了数据中的有用信息。通过对特征与目标变量之间关系的探究,我们可以筛选出对模型性能有提升作用的特征,同时去除那些与目标变量无关或相关性较弱的特征,从而提高模型的预测精度和泛化能力。
此外,数据探索还有助于发现数据中的异常值和潜在模式。异常值可能是由于数据录入错误、测量误差或特殊事件引起的,如果不加以处理,可能会对模型的训练产生干扰。通过数据探索,我们可以及时发现并处理这些异常值,确保模型的稳定性和可靠性。
综上所述,数据探索是机器学习项目中的一项重要任务,它贯穿于整个项目流程,从数据收集、预处理到模型构建和评估,都离不开数据探索的支持。只有充分、深入地探索数据,我们才能更好地理解数据,从数据中提取有价值的信息,为机器学习模型的构建和优化提供坚实的基础。
注:
后面的【机器学习】数据探索—python主要的探索函数将重点介绍在数据探索阶段使用的功能函数;让我们一起来学习数据处理的步骤和功能函数,为机器学习的模型提升更有效的保障。
相关文章:
【机器学习】数据探索(Data Exploration)---数据质量和数据特征分析
一、引言 在机器学习项目中,数据探索是至关重要的一步。它不仅是模型构建的基础,还是确保模型性能稳定、预测准确的关键。数据探索的过程中,数据质量和数据特征分析占据了核心地位。数据质量直接关系到模型能否从数据中提取有效信息ÿ…...
软件测试(一)--简介+主流技能+分类+模型+流程
一、软件及测试简介 1、软件生产过程 需求产生–需求文档–设计效果图–产品开发–产品测试(测试产品与需求文档是否一致)–部署上线 2、什么是软件测试 使用技术手段验证软件是否满足使用需求。 技术包括:(使用网络技术测试安…...
技术引领,策略升级:腾讯云与你共探数字金融新篇章
引言 2024 年 3 月 27 日下午,在北京腾讯总部,一场关于大模型与数据要素时代数字金融发展的深入讨论火热进行中。【TVP 走进腾讯:大模型与数据要素时代的数字金融发展论坛】是在腾讯二十年发展历程和数字化实践的基础上,进一步探索…...
数据库-root密码丢失的重置方案(win11环境)
当在windows系统中安装的mysql由于操作不当,或者密码遗忘,今天测试了一下,可以用以下方法重置root的密码。 mysqlwindows环境root密码重置问题 在win10/11环境下mysql8密码遗忘后的重置密码方案。 停止mysql服务 查找windows中的mysql服务名称…...
免试生常问的一些问题汇总---专升本学习篇
1.你怎么理解你申请的专业? 答:软件工程室一门涉及软件开发、维护和管理的工程学科。它结合了计算机科学、工程学和管理科学的原理,皆在通过系统化、规范化的方法来开发高质量的软件系统。 1.技术和支持 :软件工程包括编程语言、算法、数据结构、软件设计模式、软件测试、…...
FPGA的就业前景
FPGA(Field-Programmable Gate Array)技术在数字电路设计和嵌入式系统开发方面具有广泛的应用,因此在FPGA领域有着较好的就业前景。 目前,FPGA在通信、计算机、消费电子、汽车、航空航天等行业中得到了广泛应用。随着新一代通信网…...
7.阻塞模式与非阻塞模式
1.阻塞模式 一个线程来处理多个连接显得力不从心 accept等待连接 是一个阻塞方法 read读取SocketChannel中的数据 是一个阻塞方法 /*** 服务端* param args* throws IOException*/public static void main(String[] args) throws IOException {//建立一个缓冲区ByteBuffer b…...
Unity类银河恶魔城学习记录11-10 p112 Items drop源代码
Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili ItemObject_Trigger.cs using System.Collections; using System.Collecti…...
EasyExcel 模板导出excel、合并单元格及单元格样式设置。 Freemarker导出word 合并单元格
xls文件: 后端代码: InputStream filePath this.getClass().getClassLoader().getResourceAsStream(templateFile);// 根据模板文件生成目标文件ExcelWriter excelWriter EasyExcel.write(orgInfo.getFilename()).excelType(ExcelTypeEnum.XLS).withTe…...
炫我科技:云渲染领域的佼佼者
随着数字化时代的来临,云渲染技术正逐渐成为影视、游戏、动画等创意产业的重要支柱。在这一领域中,炫我科技凭借其卓越的技术实力、优质的服务以及不断创新的精神,已然成为了云渲染行业的佼佼者。 炫我科技自成立之初,便以打造高…...
VsCode正确解决vue3+Eslint+prettier+Vetur的配置冲突
手把手教你VsCode正确解决vue3EslintprettierVetur的配置冲突 VsCode正确解决vue3EslintprettierVetur的配置冲突Eslint文档查看和修改规则:step1:首先快速浏览下规则简要setp2: ctrlF 搜索你要配置规则的英文名,例如attributesetp3: 修改配置…...
计算机网络—VLAN 间路由配置
目录 1.拓扑图 2.实验环境准备 3.为 R3 配置 IP 地址 4.创建 VLAN 5.配置 R2 上的子接口实现 VLAN 间路由 6.配置文件 1.拓扑图 2.实验环境准备 配置R1、R3和S1的设备名称,并按照拓扑图配置R1的G0/0/1接口的IP地址。 [Huawei]sysname R1 [R1]interface Giga…...
微服务篇-C 深入理解第一代微服务(SpringCloud)_VII 深入理解Swagger接口文档可视化管理工具
原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载 Part 1 理论部分 1 传统API接口文档存在的问题? 1 对API接口文档进行更新的时候,需要及时将变化通知前端开发人员&…...
区块链的应用领域:重塑未来的信任机制
区块链作为一种新兴的技术,正在逐渐改变我们的生活。它以其独特的优势,正在开启一个信任的新时代。在金融、供应链管理、医疗健康、教育、文化娱乐、房地产等众多领域,区块链已经崭露头角,以其独特的方式发挥着作用。 1.金融领域…...
怎么在循环List的时候删除List的元素
怎么在循环List的时候删除List的元素 1. 先给出结论 任何时候都不要在 for 循环中删除 List 集合元素 2. 为什么在 for 循环中删除 List 集合元素是错误的 在 for 循环中删除 List 集合元素的问题主要是因为循环的迭代器和 List 集合的元素索引之间的冲突。在使用 for 循环遍历…...
SpringBoot+thymeleaf完成视频记忆播放功能
一、背景 1)客户要做一个视频播放功能,要求是系统能够记录观看人员在看视频时能够记录看到了哪个位置,在下次观看视频的时候能够从该位置进行播放。 2)同时,也要能够记录是谁看了视频,看了百分之多少。 说明:由于时间关系和篇幅原因,我们这里只先讨论第一个要求,第…...
ES 7.12官网阅读-ILM(index lifecycle management)
官网文档:ILM: Manage the index lifecycle | Elasticsearch Guide [7.12] | Elastic ILM:管理 index 的生命周期 可以根据你的性能、弹性、保存时长需求,使用ILM策略来自动管理你的index;比如 1. 当一个index达到确定的大小&a…...
Jenkins执行策略(图文讲解)
Jenkins执行策略-图文讲解 一:手动执行1、手动执行流程2、手动执行操作 二、通过构建触发器——定时执行1、定时执行流程2、定时执行操作 三、当开发部署成功之后进行执行——在测试项配置——关注的项目1、执行流程2、操作流程 四、测试代码有更新的时候自动构建1、…...
1,static 关键字.Java
目录 1.概述 2.定义格式和使用 2.1 静态变量及其访问 2.2 实例变量及其访问 2.3 静态方法及其访问 2.4 实例方法及其访问 3.小结 1.概述 static表示静态,是Java中的一个修饰符,可以修饰成员方法,成员变量。被static修饰后的ÿ…...
网络语义实体对齐(Entity Alignment)相关论文与数据集整理
传统的实体对齐方法主要通过属性相似度匹配的方式实现,利用有监督学习的机器学习模型,如:决策树、支持向量机、集成学习等。依赖实体的属性信息,通过属性相似度,进行跨平台实体对齐关系的推断。基于知识表示学习的方法通过将知识图谱中的实体和关系都映射低维空间向量,直…...
【自动装箱以及包装类的缓存】⭐️通过具体案例看下每种包装类的不同结果
目录 前言 一、自动装箱与拆箱(以 Integer 包装类为例) 二、再来看看几个示例 三、Double ,Float 类型亦是如此吗? 四、补充 前言 小伙伴们大家好,日常使用业务层方面的代码居多,但也不可忘了基本的一些代码格式…...
Java(内部类)
1.内部类 内的五大成员:属性、方法、构造方法、代码块、内部类 解释:在一个类的里面,再定义一个类。举例:在A类的内部定义B类,B类就被称为内部类注意:内部类表示的事物是外部类的一部分,内部类单独出现没…...
c++对象指针
对象指针在使用之前必须先进行初始化。可以让它指向一个已定义的对象,也可以用new运算符动态建立堆对象。 定义对象指针的格式为: 类名 *对象指针 &对象; //或者 类名 *对象指针 new 类名(参数); 用对象指针访问对象数据成员的格式为:…...
js 拼接HTML时 onclick方法和传参报错[onject Object] 和 unexpected end of input`
Vue js拼接onclick事件 1.onclick 方法函数找不到2.方法中传参2.1 int 类型传参(直接传参)2.2 字符串类型(需要加引号)2.3 对象(对象是不能直接拼接的。拼接的必须是字符串。因此需要将对象转成字符串。) 1…...
基于springboot实现定时任务,并且添加Event事件处理机制
1、基于Spring-Event增加事件处理机制 import org.bson.Document; import org.springframework.context.ApplicationEvent;/*** 基于Spring-Event增加事件处理机制* create: 2024/4/1-13:33*/ public class SysProductConfigEvent extends ApplicationEvent {// 数据配置priv…...
深入理解数据结构(1):复杂度详解
文章主题:复杂度详解🌱所属专栏:深入理解数据结构📘作者简介:更新有关深入理解数据结构知识的博主一枚,记录分享自己对数据结构的深入解读。😄个人主页:[₽]的个人主页🔥…...
kette介绍-Step之Merge Join
Merge Join介绍 需要配合Sort rows使用,对关联字段进行排序 关联两个step数据,可以是两个不同的数据库表数据,也可以是一张表,一个文件,输出字段为两张表所有字段 注意将小数据集作为first step Join Type有四个选项 INNER对应…...
通俗易懂:MySQL中如何设置只读实例并确保数据一致性?
在MySQL中设置只读实例主要应用于构建高可用性和扩展性的数据库环境,通常是为了分担读取负载或者用于备份和灾难恢复。以下是创建MySQL只读实例并确保数据一致性的基本步骤: 1. 创建并配置只读实例 - 主从复制设置 - 首先,你需要有一个主数…...
一文了解Java核心知识——线程池
介绍 什么是线程池? 管理一系列线程的资源池。当有任务要处理时,直接从线程池中获取线程来处理,处理完之后线程并不会立即被销毁,而是等待下一个任务。 为什么要使用线程池? 池化技术的思想主要是为了减少每次获取资…...
Redis热点Key问题分析与解决
目录 一、问题现象描述 二、什么是热点Key 三、热点Key的危害 3.1 Redis节点负载过高 3.2 Redis集群负载不均 3.3 Redis集群性能下降 3.4 数据不一致 3.5 缓存击穿 四、热点Key产生的原因分析 4.1 热点数据 4.2 业务高峰期 4.3 代码逻辑问题 五、如何检测热点Key …...
空调维修技术支持东莞网站建设/腾讯新闻潍坊疫情
文章目录前言一:测试步骤1.授权2.信息收集3.扫描4.利用5.提权(shell环境、桌面环境、最高权限)6.灭迹7.留后门8.渗透测试报告二、具体流程1.scanport扫描445端口2.利用IPC$: 进行破解:NTscan3.相关命令行4.制作5.植入&…...
建设一个购物网站要多少钱/china东莞seo
作者|硬糖君直播带货无疑是2020年最火爆的行业,但我们日常说起直播带货,往往只会讨论明星、主播等主角。殊不知,主角丰满、配角出彩那才算好戏。正如当初的李佳琦及“小助理”付鹏靠默契配合吸粉无数,一路扶摇直上。放眼如今的直播…...
怎么把网站加入黑名单/软文发布平台排名
在各种场合遇到其他产品的开发人员时,大家总忍不住想在技术上切磋两招。第一句问的通常都是“你们产品的崩溃率是多少?”程序员 A 自豪地说: “百分之一。”旁边的程序员 B 鄙视地看了一眼,然后喊到: “千分之一&#…...
电商网站建设与管理/北京seo收费
使用tc限制所有流量匹配tcp(协议6)目标端口54000(256Kbits入站)到eth0的所有流量的示例…作为根……tc qdisc add dev eth0 handle ffff: ingresstc filter add dev eth0 parent ffff: protocol ip prio 50 u32 \match ip protocol 6 0xff \match ip dport 54000 0xffff police…...
关于单位建设网站的申请/优秀网站设计
微信聊天不但能够文字、图片,还能发送视频,给我们带来了很多趣味,不过此前发送的视频只能顺序播放,而无法拖动快进,又有些不便。好消息来了,今天iOS版微信迎来6.2.2小更新,针对聊天中的视频增加…...
贝壳找房网站做销售/服务外包平台
关于模块报错 查看报错详细信息,右击打开报错如下图: window7 iis7 发布asp.net网站时报“HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler””的错…...