设备管理中数据聚类处理

§01 据处理


背景介绍

统计数据背后的指数分布模型 对于设备利用时间进行了初步统计,可以看到数据本身具有指数分布的特性。 为了进一步将设备种类划分小类别,下面计划对于设备命名属性进行聚类。

数据分析

数据文件

处理的数据仍然来自于最初的EXCEL表格文件。下面数据原始EXCEL表格文件:


数据文件中包含有五个表单,分别是 2017 至 2021 年的记录信息。其中能够有效反应设备属性和 应用时间的属性字段包括有:

  • 仪器名称: 汉字字符串
  • 仪器编号: 八位长的字符串
  • 分类号: 八位 至 十位 长的字符串
  • 有效机时:数字
  • 使用方向:分为 教学,科研,公共服务等
  • 是否开放共享: 是,否,未定等;

除了上面字段之外,还有其它一些字段。在这五个表格中,字段的种类和个数各不相同。在2017,2018年里,没有校外机时这一栏。

数据预处理

表格结构

首先将EXCEL表格中的所有数据分别存储在 TEXT 文件中。

▲ 图1.1.1 数据文件及其大小

▲ 图1.1.1 数据文件及其大小

下面是出数据文件每一行的字段属性。对于2017,2018年没有校外机时这一属性。

['填报院系', '使用单位号', '使用单位', '仪器编号', '分类号', '仪器名称', '负责人', '有效机时', '备注(低于150机时情况说明)', '使用方向', '型号', '规格', '单价', '国别', '国别码', '厂家', '建帐日期', '领用人', '经费来源', '平台类型', '平台实验室号', '平台实验室名称', '是否开放共享', '校外机时']

提取所需表单属性

从上面五个数据文件中,提取以下字段合并成统一后续处理的数据文件,并存储在 NPZ文件中。

  • 仪器编号;
  • 分类号
  • 仪器名称
  • 有效计时
  • 使用方向
  • 型号
  • 校外机时(2017,2018都设置为0)

下面是处理后截取的部分数据:

['12026444', '04060300', '三室真空定向炉 ', 0.0, '科研', 'ZGD-10BYF', 0]
['12005527', '03040404', '光电发射光谱仪', 0.0, '科研', 'PDA-7000', 0]
['07001233', '03040100', '高分辨率磁力显微镜', 0.0, '教学', 'HR-MFM', 0]
['10016800', '03060301', '超高真空电子束镀膜机', 0.0, '科研', 'SCTES-15CUHV', 0]
['12013022', '03060302', '高真空共溅镀仪', 0.0, '科研', 'LJ-103', 0]
['09000108', '03260100', '自动大气汞监测系统', 8640.0, '科研', '2537/1130/1135', 0]
['09018343', '03260208', '痕量汞分析仪', 8640.0, '科研', 'TeRran 2537B', 0]
['16015174', '04060807', '高温压力烧结炉', 0, '科研', 'SIP150/200-2000-9', 0]
['16005806', '03060300', '聚焦离子束', 4045.0, '教学', 'Auriga', 810.0]
['16034354', '03040101', '激光共聚焦显微镜', 2600.0, '科研', 'OLS4100', 500.0]
['16042019', '03040702', '场发射透射电镜', 3800.0, '科研', 'Titan Clubed Themis', 400.0]
['11027718', '03040900', '皮秒激光器', 2000.0, '科研', 'PX100Ⅱ-A', 400.0]
['16016382', '03041142', '40W飞秒激光器', 1800.0, '科研', 'TruMicro5050', 300.0]
['02006744', '03031110', '多功能气体分析仪', 1025.0, '科研', '1312型', 700.0]
['06002158', '03040415', '三维激光扫描仪', 1800.0, '教学', '3Dguru-LR', 0.0]
['06005777', '03030220', '红外热成像仪', 500.0, '教学', 'Yario CAM 170I', 0.0]
['06012268', '03030714', '质子传递反应质谱仪', 200.0, '科研', '06-03(33)', 0.0]
['07021260', '03030706', '气相质谱热脱附联用仪', 5760.0, '科研', '6850/5975B', 0.0]
['07021261', '03141131', '三维粒子成像测速系统', 800.0, '科研', 'Model', 100.0]
['20027587', '03240109', 'Servotest结构加载试验控制系统', 0.0, '科研', 'Pulsar 非标', 0.0]
['11021410', '03011105', '光纤测温控制器', 0.0, '科研', 'OTS4OPFS4', 0.0]
['17033987', '03080404', '涡度自动监测系统', 0.0, '科研', 'AV-OPEC', 0.0]
['20036620', '0316060201', '高亮度激光投影机', 0.0, '公共服务', 'AL-TU26K', 0.0]
['08018395', '03030706', '液相色谱/串联质谱', 0.0, '公共服务', 'UPLC/Quattro Premier', 0.0]
['10000899', '03030706', '气相色谱质谱联用仪', 0.0, '科研', 'Agilent 7890A', 0.0]

合并之后,得到有效的记录为 11531。

from head import *

datadir = r'D:\Temp\exceltxt'

filedim = os.listdir(datadir)
attrstr = ['仪器编号', '分类号', '仪器名称','有效机时', '使用方向', '型号', '校外机时']

alldata = []

for f in filedim:
    fname = os.path.join(datadir, f)

    sectattr = []

    with open(fname, 'r', encoding='gbk') as f:
        for id,l in enumerate(f.readlines()):
            l = l.strip('\n').split('\t')

            if id == 0:
                sectattr = []

                for a in attrstr:
                    if a in l:
                        sectattr.append(l.index(a))
                    else: sectattr.append(0)

                printf(sectattr)
                continue

            if len(l[0]) == 0: continue

            alldata.append(list(array(l)[sectattr]))

for id, d in enumerate(alldata):
    uset = d[3]

    if uset.replace('.','').isdigit():
        d[3] = float(uset)
    else: d[3] = 0

    uset = d[-1]
    if uset.replace('.','').isdigit():
        d[-1] = float(uset)
    else: d[-1] = 0

printf(len(alldata))

tspsave('alldata', attrstr=attrstr, alldata=alldata)

printf('\a')

数据初步分析

将合并的数据的有效机时绘制曲线,曲线如下。 奇怪的事情出现了。可以看到曲线中间部分(2019,2020年)使用机时呈现比较随机的分布,符合数据规律。但是 数据开始(2017,2018)和数据结束(2021年)曲线呈现规律的增加和减少的趋势。这不符合数据随机分布的特性。

▲ 使用机时分布

▲ 使用机时分布

查看原始 EXCEL 数据表格,可以看到又是表格中的 有效机时就是这样分布的。所以确定也是数据中的 “有效机时” 数据可能存在问题。

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/126266783