【数据挖掘】数据预处理

news2025/2/24 3:10:08

Outline

ChapterOverview
1.为什么要对数据预处理
2.数据描述性总结
3.数据清洗
4.数据变换
5.数据整合
6.数据归约
7.离散化与概念层级
8.总结

Chapter 1. 为什么要预处理

我们从现实生活中获得的原始数据,或多或少会因为各种原因不能直接使用。例如:

  • 不完整
    • 收集时的“不适用”数据值
    • 收集数据的时间和分析数据的时间之间的不同考虑
    • 人力/硬件/软件问题
  • 噪声
    • 数据采集仪器故障
    • 数据输入时的人为或计算机错误
    • 数据传输错误
  • 格式不一致
    • 不同的数据源
    • 不同规格的采集方式和标准
  • 重复数据

数据的质量决定了数据挖掘的质量


数据预处理的主要任务

TasksConception
数据清洗填充缺失值、平滑噪声、识别离群点、解决不一致
数据整合多个不同来源的数据聚合
数据变换标准化和聚集
数据归约减少数据量,但保留主要信息
数据离散化对连续的数值数据进行离散化

Chapter 2. 数据描述性总结

中心趋势度

指的是一组数据向某一中心值靠拢的程度,反映了一组数据的中心点所在。

1️⃣ 均值

最常见的统计量,可以表征数据的总体水平。但均值对于噪声比较敏感。

2️⃣ 中位数

先排序,再找中心。毫无疑问,这个方法的时间开销至少是 O ( n l o g n ) O(nlog_n) O(nlogn)级别的。所以有时候,我们可以采用近似估计的方式去计算。

假定数据可以通过数值划分为区间,且知道每个区间的个数。于是,中位数可用以下的公式表示。
m e d i a n = L 1 + [ N 2 − ( ∑ f ) l f m e d i a n ] w i d t h median=L_1+\left [\frac{\frac{N}{2}-(\sum f)_l}{f_{median}}\right ]width median=L1+[fmedian2N(f)l]width
3️⃣ 众数

众数是一组数据中出现最多的数值,有多少个众数,那么我们称数据集为多少峰,例如一个众数:单峰,两个:双峰。

4️⃣ 中列数

Midrange,表示最大值和最小值的均值。也可以度量中心趋势哦。不过与其说度量中心,倒不如说是数据范围的中心,正如midrange的意思一般。

在这里插入图片描述

尾巴往哪甩,数据往哪偏


离散趋势度

用于评估数据的散布或发散程度。

1️⃣ 极差、四分位数和四分位数极差

极差(Range)也称范围误差或者全距,指的是最大值和最小值的差距。也是衡量变动最简单的指标。

四分位数:将数据从大到小排序后,用三个点(25,50,75)将数据分为三等分,这三个点上对应的位置就是四分位数。例如 Q 1 , Q 2 , Q 3 Q_1,Q_2,Q_3 Q1,Q2,Q3表示第一四分位数,第二四分位数,第三四分位数。

分半四分位差:即 ( Q 3 − Q 1 ) / 2 (Q_3-Q_1)/2 (Q3Q1)/2

四分位数极差(IQR): Q 3 − Q 1 Q_3-Q_1 Q3Q1,它给出了数据中间一半的部分。

2️⃣ 五数概括、盒图和离群点

哪五个数?

  • min
  • Q 1 Q_1 Q1
  • Q 2 Q_2 Q2
  • Q 3 Q_3 Q3
  • max

在这里插入图片描述

从下往上分别是:最小值、Q1、中位数、Q3、最大值

盒图又称箱线图,盒须图,体现了五数概括。利用四分位数间距 I Q R IQR IQR,我们可以判断界限,找出异常值。通常设定1.5倍 I Q R IQR IQR外的为异常值。所以边界为:
I Q R 左 = Q 1 − 1.5 × I Q R I Q R 右 = Q 3 + 1.5 × I Q R IQR_{左}=Q_1-1.5\times IQR \\ IQR_右=Q_3+1.5\times IQR IQR=Q11.5×IQRIQR=Q3+1.5×IQR


正态分布曲线

在这里插入图片描述

  • 区间 [ μ ± σ ] [\mu±\sigma] [μ±σ] 68 % 68\% 68%的数据量
  • 区间 [ μ ± 2 σ ] [\mu±2\sigma] [μ±2σ] 95 % 95\% 95%的数据量
  • 区间 [ μ ± 3 σ ] [\mu±3\sigma] [μ±3σ] 99.7 % 99.7\% 99.7%的数据量,超过此区间的数据,我们就可以将其视作离群点了(小概率事件)

直方图分析

在这里插入图片描述

直方图方便我们观察数据的分布情况


QQ图 Quantile-Quantile Plot

QQPlot图是用于直观验证一组数据是否来自某个分布,或者验证某两组数据是否来自同一(族)分布。在教学和软件中常用的是检验数据是否来自于正态分布。

公式描述为:
f i = i − 0.5 n f_i=\frac{i-0.5}{n} fi=ni0.5
对于一组递增排序的数据 X X X f i f_i fi表示有 100 % f i 100\%f_i 100%fi的数据小于或等于 x i x_i xi

在这里插入图片描述

一般来说,横坐标为实际分位数,纵坐标为标准分布,若QQ图的点分布在y=x曲线附近,说明数据近似正态分布。


散点图

一般是二维或者三维散点图,用来查看数据的聚类、离群点,或是两个特征之间的相关性。

在这里插入图片描述


路易斯曲线 Loess Curve

在散点图中增加一条曲线,用来拟合回归数据的

在这里插入图片描述


Chapter 3. 数据清洗

数据清洗可以说是数据仓库中的核心问题

数据清洗的主要任务

Tasks
填充缺失值
识别异常值和平滑噪声
纠正不一致的数据
解决冗余问题

1️⃣ 缺失值

常见处理手段有:

  • 忽略该数据,通常在某些关键数据缺失(比如分类时的label标签缺失)时进行
  • 填充缺失值
    • 基于统计信息
    • 基于推理信息,如贝叶斯、决策树
    • 基于各种模型

2️⃣ 噪声

在一个被测量的变量中的随机误差或方差

噪声一般来说是数据中的随机误差,当然,不一致或者重复的数据也可也算作噪声。

常见的处理手段有:

  • Binning
    • 将数据排序后分组(bins)
    • 按照各个组的中值、边缘等对噪声进行平滑处理
  • 回归
    • 通过回归函数平滑噪声
  • 聚类
    • 检测和移除离群点
  • 计算机结合人类
    • 单走一个6

Binning算法可以分为等距离划分和等频率划分:

等距离等频率
也叫等宽度(Equal-width)也叫等深度(Equal-depth)
将数据划分为N个宽度相同的间隔将数据划分为N个元素数量相同的间隔
每个间隔的大小为: ( M a x − M i n ) / n (Max-Min)/n (MaxMin)/n每个间隔的元素大小为: A l l / n All/n All/n
容易受到异常影响!且稀疏数据很难处理具有良好的数据缩放

我们举个binning的栗子

假设有这样一组数据:

age232327273941474950525454565758586061
%fat9.526.57.817.831.425.927.427.231.234.642.528.833.430.234.132.941.235.7

现在我们要做一个分组为6的边缘平滑:

这里因为我们是对排好序的数据做处理,所以可以通过二分法进行优化,获取中间分界。

def close(x,a,b):
    # 是否靠近下界
    return (x-a)<=(b-x)

def boundary(x):
    Min=x[0]
    Max=x[-1]

    l,r=0,len(x)-1
    while l<=r:
        mid=(r-l)//2+l
        if close(x[mid],Min,Max):
            if not close(x[mid+1],Min,Max):
                l=mid
                break
            l=mid+1
        else:
            if close(x[mid-1],Min,Max):
                l=mid
                break
            r=mid-1
    return [[Min]*l+[Max]*(len(x)-l)]

N_y=sorted(y)
bins=[[]]
for j in N_y:
    bins[-1].append(j)
    if len((v:=bins[-1]))==6:
        v[:]=boundary(v)
        bins.append([])
for i,j  in enumerate(bins[:-1]):
    print("bin %d is :"%(i+1),j)
bin 1 is : [[7.8, 7.8, 27.2, 27.2, 27.2, 27.2]]
bin 2 is : [[27.4, 27.4, 32.9, 32.9, 32.9, 32.9]]
bin 3 is : [[33.4, 33.4, 33.4, 33.4, 42.5, 42.5]]

Chapter 4. 数据变换

数据变换的工作主要是让数据满足某一规则,比如都在某一区间,比如映射到频域等。

主要的工作有:

TasksDescription
平滑移除噪声
标准化缩放区间
聚合数据立方体构建
属性/特征构造也就是构建新特征

常见数据标准化

1️⃣ 最大最小标准化
v ′ = v − m i n i m a x i − m i n i v'=\frac{v-min_i}{max_i-min_i} v=maximinivmini
2️⃣ Z得分标准化
v ′ = v − μ σ v'=\frac{v-\mu}{\sigma} v=σvμ
其中:
μ = ∑ v n \mu=\frac{\sum v}{n} μ=nv

σ = ∑ ∣ v − μ ∣ n \sigma=\frac{\sum|v-\mu|}{n} σ=nvμ

3️⃣ 十进制缩放
v ′ = v 1 0 j v'=\frac{v}{10^j} v=10jv


Chapter 5. 数据集成

这个部分关注的重点有:

  • 多源数据集成
  • 同一个数据在不同源上的表现
  • 检测和识别数据冲突
  • 数据冗余

如何解决数据冗余?

冗余的数据很多时候都是由另一个属性派生出来的

所以,我们可以通过相关性检测来识别。

1️⃣ 协方差

对于数值型数据,我们可以计算他的协方差:
r A , B = ∑ ( a i − A ˉ ) ( b i − B ˉ ) ( n − 1 ) σ A σ B = ∑ ( a i b i ) − n A ˉ B ˉ ( n − 1 ) σ A σ B r_{A,B}=\frac{\sum(a_i-\bar A)(b_i-\bar B)}{(n-1)\sigma_A\sigma_B}=\frac{\sum(a_ib_i)-n\bar A\bar B}{(n-1)\sigma_A\sigma_B} rA,B=(n1)σAσB(aiAˉ)(biBˉ)=(n1)σAσB(aibi)nAˉBˉ

r > 0 r>0 r>0表示正相关, r < 0 r<0 r<0表示负相关

2️⃣ * χ 2 \chi^2 χ2检验

卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时,卡方值就为0,表明理论值完全符合。

卡方检验适用于标称属性,假设对于两个属性 A , B A,B A,B, A A A c c c个不同的取值, B B B r r r个不同的取值,用 A A A B B B描述的数据元组可以用一个相依表显示,其中 A A A c c c个值构成列, B B B r r r个值构成行。 ( A i , B j ) (A_i,B_j) (Ai,Bj)表示属性 A A A i i i,属性 B B B j j j的联合事件。
χ 2 = ∑ i = 1 c ∑ j = 1 c ( o i j − e i j ) 2 e i j \chi^2=\sum_{i=1}^c\sum_{j=1}^c\frac{(o_{ij}-e_{ij})^2}{e_{ij}} χ2=i=1cj=1ceij(oijeij)2
其中 O i j O_{ij} Oij表示联合事件的观测频度, e i j e_{ij} eij表示期望频度,计算式为:
e i j = c o u n t ( A = a i ) × c o u n t ( B = b j ) n e_{ij}=\frac{count(A=a_i)\times count(B=b_j)}{n} eij=ncount(A=ai)×count(B=bj)
n n n为元组个数。

例如:

在这里插入图片描述


Chapter 6. 数据规约

一个数据库或者数据仓库可能可以存储TB级的数据,如果想对这些数据进行分析或者挖掘是十分困难的

数据规约可以获得数据体积小得多,但产生相同(或几乎相同)的分析结果。

常见的策略

Strategies
数据立方体聚合
尺寸减少----移除不重要的属性
数据压缩
数量减少
离散化和概念层次结构的生成

1️⃣ 数据立方体

数据立方体的最低级别(基本立方)

  • 针对感兴趣的单个实体的聚合数据

数据多维数据集中的多个级别的聚合

  • 进一步减小要处理的数据的大小

2️⃣ 特征选择(即属性子集选择)

  • 选择一组最小的功能不同类别的概率分布,这些功能的值尽可能接近给定所有特征值的原始分布

  • 减少模式中的特征数量,更容易理解

常见的模式:

前项选择、后向选择、决策树归纳

在这里插入图片描述

3️⃣ 主成分分析

给定N维的N个数据向量,求k≤ n个最适合用于表示数据的向量(主成分)

步骤

  • 规格化输入数据:每个属性都在同一范围内

  • 计算k个向量,即主分量

  • 每个输入数据(矢量)是k个主分量矢量的线性组合

  • 主要成分按“重要性”或强度递减的顺序排序

  • 由于对成分进行了排序,因此可以通过消除弱成分(即具有低方差的成分)来减小数据的大小。(即,使用最强的主成分,可以重建原始数据的良好近似值)

仅适用于数字数据

简单来说,就是:

  • 去均值(距平)
  • 计算协方差矩阵
  • 求解协方差矩阵特征值和特征向量
  • 按特征值大小排序,将原始数据映射到特征向量上

4️⃣ 数据压缩

字符串压缩

  • 有广泛的理论和完善的算法

  • 通常是无损的

  • 但在没有扩展的情况下,只能进行有限的操作

音频/视频压缩

  • 典型的有损压缩,具有渐进式改进

  • 有时可以重建信号的小片段而不重建整个

5️⃣ 小波变换

离散小波变换(DWT):线性信号处理、多分辨率分析

  • 压缩近似:仅存储最强小波系数的一小部分

  • 类似于离散傅里叶变换(DFT),但更好的有损压缩,局限于空间

方法:

  • 长度L必须是2的整数幂(必要时用0填充)

  • 每个变换有两个功能:平滑、差异

  • 适用于数据对,产生长度为L/2的两组数据

  • 递归应用两个函数,直到达到所需长度

6️⃣ 数量减少

通过选择其他更小的数据表示形式来减少数据量

  • 参数化方法

    • 假设数据符合某些模型,估计模型参数,仅存储参数,并丢弃数据(可能的异常值除外)
  • 非参数方法

    • 直方图、聚类、抽样

7️⃣ 回归模型

8️⃣ 直方图

9️⃣ 聚类

🔟 采样


Chapter 7. 离散化和概念层级

离散化

  • 通过将属性的范围划分为间隔,减少给定连续属性的值数量

  • 然后可以使用间隔标签替换实际数据值

  • 离散化可以递归地对属性执行

概念层次结构

  • 通过收集低级概念(如年龄的数值)并将其替换为高级概念(如年轻人、中年人或老年人),递归地减少数据

在数值型数据上,数据离散化和概念层次生成的经典方法:

  • 装箱

    • 自上而下拆分,用二进制平均值或中值替换值
  • 直方图分析

    • 自上而下拆分
  • 聚类分析

    • 自上而下拆分
  • 基于熵的离散化:有监督的、自上而下的分割

  • 自然分割:自上而下分割

举个栗子:

在这里插入图片描述

1️⃣ 基于熵的离散化

熵是对信息混乱程度的度量,其可以写作:
E ( s ) = − ∑ i n p l o g 2 ( p ) E(s)=-\sum_i^nplog_2(p) E(s)=inplog2(p)
给定一个样本 S S S,将 S S S用边界 T T T划分为两个连续的区间 S 1 S_1 S1 S 2 S_2 S2,那么分区后的熵就是:
E n t r o p y ( S , T ) = ∣ S 1 ∣ ∣ S ∣ E n t r o p y ( S 1 ) + ∣ S 1 ∣ ∣ S ∣ E n t r o p y ( S 1 ) Entropy(S,T)=\frac{|S_1|}{|S|}Entropy(S_1)+\frac{|S_1|}{|S|}Entropy(S_1) Entropy(S,T)=SS1Entropy(S1)+SS1Entropy(S1)
在所有的边界中,我们选择信息增益 T T T最大的边界作为划分:
G a i n ( S , T ) = E n t r o p y ( S ) − E n t r o p y ( S , T ) Gain(S,T)=Entropy(S)-Entropy(S,T) Gain(S,T)=Entropy(S)Entropy(S,T)
递归执行此过程,这样的边界可以减少数据量,大幅度提高分类精度。

2️⃣ 自然分区分割

可以通过一个简单的 3 − 4 − 5 3-4-5 345规则对数据进行分割。

  • 如果一个区间最高有效位上包含3,6,7或9个 不同的值,就将该区间划分为3个等宽子区间; (为7的话,划分成 2,3,2的宽度比例) ;
  • 如果一个区间最高有效位上包含2,4,或8个不 同的值,就将该区间划分为4个等宽子区间;
  • 如果一个区间最高有效位上包含1,5,或10个不同的值,就将该区间划分为5个等宽子区间;

将该规则递归的应用于每个子区间,产生给定数值属性的概念分层

在这里插入图片描述

先找到Low和High,向上向下找最近的最高位,依此划分作为主体。

下一步进行全数据分析,包含了Min向下和Max向上,只不过如果最小区间包含了最小值,将最小区间的坐区间修正到最小值,并添加主体到最大值的分支。

3️⃣ 针对分类数据的概念层次结构的生成

  • 由用户或专家在模式级别上明确说明属性的部分/全部排序
    • street < city < state < country
  • 通过显式数据分组指定一组值的层次结构
    • {Urbana, Champaign, Chicago} < llinois
  • 通过分析不同值的数量,自动生成层次结构(或属性级别)
    • E.g., for a set of attributes: {street, city, state, country}

4️⃣ 自动的概念层次结构的生成

可以根据分析数据集中每个属性的不同值的数量,自动生成一些层次结构

  • 具有最明显值的属性被放置在层次结构的最低级别

在这里插入图片描述

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

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

相关文章

K8S Pod Sidecar 应用场景之一-加入 NGINX Sidecar 做反代和 web 服务器

Kubernetes Pod Sidecar 简介 Sidecar 是一个独立的容器&#xff0c;与 Kubernetes pod 中的应用容器一起运行&#xff0c;是一种辅助性的应用。 Sidecar 的常见辅助性功能有这么几种&#xff1a; 服务网格 (service mesh) 代理监控 Exporter&#xff08;如 redis exporter)C…

【附源码】计算机毕业设计JAVA学校食堂订餐管理

【附源码】计算机毕业设计JAVA学校食堂订餐管理 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA my…

Java#20(包和final)

目录 一.包 1.包的作用? 2.包名书写的规则? 3.什么是全类名? 4.什么时候需要导包? 什么时候不需要导包? 二.final 三.常量 实际开发中&#xff0c;常量一般作为系统的配置信息&#xff0c;方便维护&#xff0c;提高可读性 四.权限修饰符 五.静态代码块 一.包 1…

简述使用vue使用webpack脚手架创建项目并升级至webpack4

第一步、输入命令 vue init webpack demo2 &#xff08;demo2表示项目名称&#xff09;&#xff0c;回车后等待项目完成创建&#xff1b; 第二步、打开package.json&#xff0c;升级以下依赖&#xff08;建议升级一项依赖后运行一下项目&#xff09; webpack系列webpack 3.6.…

Vue实现下载及文件重命名

效果如下&#xff1a; 实现步骤&#xff1a; html&#xff1a; <el-table-column prop"name" label"操作" align"center" header-align"center" width"165"><template slot-scope"scope"><el-but…

MindSpore和Python中nn.Unfold的区别

在往MindSpore迁移项目中遇到了这个转换&#xff0c;以至于不得不去仔细研究一下。 Unfold是卷积操作中的一部分&#xff0c;我们来看一下描述。 Unfold()函数是从一个batch图片中&#xff0c;提取出滑动的局部区域块&#xff0c;也就是卷积操作中的提取kernel filter对应的滑…

图片如何加水印?教你几招轻松加

相信很多喜欢出门游玩的小伙伴&#xff0c;会习惯将旅途中遇到的风景、趣事将其拍照记录下来&#xff0c;然后将图片分享到社交账号上去&#xff0c;但是互联网上什么人都有&#xff0c;总会有不怀好意的人&#xff0c;会在网上拿别人辛苦拍摄的照片&#xff0c;据为己有去发布…

开放式运动耳机哪款好,盘点几款目前最好的开放式耳机分享

如果是在户外运动的时候喜欢戴耳机&#xff0c;那么必然是要选择骨传导耳机&#xff0c;开放式耳道的设计在跑步的过程中&#xff0c;可以很快察觉到来往行人车辆&#xff0c;在安全方面能够极大缩小隐患的发声&#xff0c;无需入耳的佩戴设计能够以最大程度的释放我们的耳道长…

[翻译] 使用FXGL创建一个简单游戏 Pong (FXGL 11)

在本文中&#xff0c;我们将复刻经典的Pong游戏。要完成本教程&#xff0c;你首先需要获取FXGL要么通过Maven / Gradle&#xff0c;要么作为uber-jar。确保你使用FXGL 11 (例如11.3)。 本教程大部分是独立的&#xff0c;但是完成以前的基本教程将对一般理解非常有帮助。完整的…

刷题日记【第十三篇】-笔试必刷题【数根+星际密码+跳台阶扩展问题+快到碗里来】

刷题日记【第十三篇】-笔试必刷题【数根星际密码跳台阶扩展问题快到碗里来】 1.方法区在JVM中也是一个非常重要的区域&#xff0c;它与堆一样&#xff0c;是被【线程共享】的区域。 下面有关JVM内存&#xff0c;说法错误的是&#xff1f;(c) A.程序计数器是一个比较小的内存区…

GO语言之Goroutine和channel

1&#xff0c;goroutine-看一个需求 需求&#xff1a;要求统计1-90000000000的数字中&#xff0c;哪些是素数哦&#xff1f; 分析思路&#xff1a; 1&#xff09;传统的方法&#xff0c;就是使用一个循环&#xff0c;循环的判断各个数是不是素数。 2&#xff09;使用并发或…

Metabase学习教程:提问-5

多级聚合 如何使用查询生成器对多个部分提出问题。 许多分析问题只需四个步骤即可回答&#xff1a; 连接需要的表得到需要的信息。过滤数据使其仅包含期望的记录。分组和聚合这些数据&#xff0c;创造你所需要的价值。可视化结果&#xff0c;方便直观的理解数据告诉了你什么…

SpringBoot 集成JWT实现登录认证

如果文章对你有帮助欢迎【关注❤️❤️❤️点赞&#x1f44d;&#x1f44d;&#x1f44d;收藏⭐⭐⭐】一键三连&#xff01;一起努力&#xff01; 一、JWT简介 JSON Web Token&#xff08;JWT&#xff09;是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递…

基于粒子群优化算法的最佳方式设置无线传感器节点的位置,以减轻由于任何能量耗尽节点而产生的覆盖空洞(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

数据脱敏的安全管理

什么是数据脱敏 我们需要先说下什么是敏感数据&#xff0c; 敏感数据泛指个人信息&#xff08;姓名、电话、住址、健康信息、证件等数据&#xff09;、涉及需要保护的数据。 数据脱敏&#xff0c;是将敏感数据按照一定的规则对敏感数据进行变形&#xff0c;达到保护用户信息安…

提升80%上云集成效率, TA是如何做到的

摘要&#xff1a;基于华为云开天aPaaS&#xff0c;提升80%上云集成效率&#xff0c;降低50%集成成本没有充足资金&#xff0c;没有足够的项目规划和过渡时间&#xff0c;也没有经验丰富的IT团队支持&#xff0c;中小企业的上云路可谓是困难重重。如何帮助企业高效上云、实现降本…

【Globalmapper中文入门到精通系列实验图文教程】(附配套实验数据持续更新)

【Globalmapper中文版入门到精通系列实验图文教程】&#xff08;附配套实验数据持续更新&#xff09; 文章目录一、专栏简介二、文章目录三、数据目录四、传送门一、专栏简介 本专栏为GlobalMapper中文入门实战精品教程&#xff0c;内容主要涉及&#xff1a;Globalmapper23软件…

【Oracle】数据库账号频繁被锁问题解决

文中使用的Oracle版本为11g。 今天在测试环境中遇到了一个问题&#xff0c;如下图&#xff1a; 所有的数据库客户端访问Oracle11g都出现了上面的提示“ORA-28000: the account is locked”&#xff0c;一开始其实并不知道是什么原因引起的问题&#xff0c;到后面才发现是登录错…

Kotlin 开发Android app(九):Android两大布局LinearLayout和RelativeLayout

Kotlin 的基本特性就先写到这里&#xff0c;我们这个系列的定位是基础&#xff0c;也就是能用就好&#xff0c;够用就好&#xff0c;我们不会举太多的例子&#xff0c;但是这些都是最经常用到的特性。 从这节开始就是Kotlin和android 进行结合&#xff0c;使用Kotlin进行安卓应…

基于Spring Cloud的架构使用学习升级之路

引言 Spring Cloud全家桶用了挺长时间了&#xff0c;很长一段时间都是基于已有的架构进行需求研发。今年成为团队技术负责人&#xff0c;承担了新的项目&#xff0c;这是很好的一个机会&#xff0c;于是开启了项目架构升级之路。 架构&#xff0c;是团队项目的根基。在一个团…