AI测试 机器学习算法在常规测试中的实践

feifeihuanming · 2021年09月06日 · 最后由 Heroman 回复于 2021年12月01日 · 3339 次阅读

一直以来都希望机器学习或者深度学习能够应用到测试领域中,最近刚好在项目中使用了机器学习算法,最终得到的结果还不错。

其实做起来比较简单,项目背景是我们需要做一个分类任务。通过查找一些资料才知道这个任务是由一些国际标准的,不过标准里面的分类很细,有 200 多种。但是对于我们这个项目来说,其实分成 8 类或者 10 类就能满足需求。

刚开始的想法比较朴素,就是从这个国际标准的 200 多个类别中挑出 8 类,这时候问题就来了:
首先就是很费时,200 多个类别看过去,眼睛都看花了;
其次就是不同人挑出来的都是不一样的,太依赖于个人。

然后就想怎么解决这些问题,能够既快又能够有一个统一的标准,后来就想到了聚类算法
这个问题的本质其实就是把 200 多个类别进行聚合,最终形成只有 8 类或者 10 类。

想到这里,接下来就简单了。选择不同的聚类算法就行了,最终选择了 Kmeans 聚类,这个是一个无监督的聚类算法,同时最终类别的个数也可以随意指定。
通过聚类算法,既解决了效率问题,又统一了标准,一举两得。

共收到 4 条回复 时间 点赞

补充一下,前面用 kmeans 解决了自动化聚类的问题,后面针对算法的结果,又采用了 k 紧邻的方式自动判断算法效果属于哪一类。前期和后期都用算法进行了处理

可以详细介绍一下吗,比如什么是聚类算法,如何解决 200 多个类别分类,算法代码是怎么样的。
你这篇文章总体下来我的感受就是一句话——我用了 Kmeans 做了个分类。

Ouroboros 回复

这里主要是简单介绍了一下思路。
一直都想在将一些算法落地到实际的测试工作中,实际中还是有难度的,这个刚好算是做了一个落地。

对于一批数据,如果用 kmenas 聚类,其实也比较简单:
1.先随机挑选几个作为中心点,比如说想要 8 类的话就选 8 个,想要 10 类就选 10 个;
2.对于剩余的数据,挨个计算它和步骤 1) 选择的中心点之间的距离,然后挑一个最近的,那么他就属于这一类;
3.当每个点都找到了一个类别之后,把每个类别的所有点取个平均值,做为新的中心点,然后回到步骤 2) 继续即可

代码量不大,我使用 python 写的,python 有直接的包可以调用

feifeihuanming 回复

有没有具体的项目实践代码 可以分享出来啊

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册