数据分析流程简介

一、背景介绍

数据分析一开始的目的是对业务累计的大量数据进行分析,提取有用的信息,而随着电脑的计算能力和数据处理能力的提升,数据分析发展快速成长。现在常常听到的人工智能其实就是数据分析的一种演化与应用,数据分析的原理与步骤和机器学习里面的训练模型大致相同,商业上的数据分析一般是用来做BI(商业智能)用途,更偏向于数据挖掘,图表展现等应用,比如说,要找出哪些存款用户可能对某基金产品更感兴趣。而人工智能则是希望借由算法来找出历史数据中的特定规律,比如说根据1万张车子的照片,找出当照片中出现车子的时候有什么规律,当机器在检视新照片的时候,就可以判断照片中是否有车子。

二、步骤

数据分析步骤可简单分类为下

1、确认目标:首先必须要先确定的是,我们要做什么,比如我们想要知道哪些客户的购买力更强,或是新推出的商品该如何去定价,数据分析是有目标的,当然也有些时候分析人员意外发现了目标以外的信息,但大部分的时候在商业上的数据分析都是有目的性才会开始的。机器学习也是,看是要训练机器识别图片,还是判断文章的分类。在确认目标的同时需要决定要分析哪些数据,还有就是用哪种分析方式、哪种算法,商业上的数据分析通常需要由技术人员和业务人员讨论后定出。

2、获取数据:在确立了目标后,就必须要去获取数据,传统的商业数据分析大部分只要从自己公司的数据库调取数据就好,但现在越来越多的数据是需要利用爬虫软件去获取,甚至是要和别人购买,或是做问卷调查,比如我们想要分析新推出的车子在市场的反应好不好,除了调取销售量以外,还需要把客户的问卷调查做统计显示,甚至是到论坛上将所有车友的评价抓取下来,综合起来才可以得到一份全方位的分析报告。获取到的数据种类很多种,包含了文字、影音、图片等等,要储存这些海量数据,已经不是传统关系型数据库的天下(当然还是很多公司只需要关系型数据库就好了),NoSQL的兴起也是因为数据储存的格式种类越来越多的原因,而大规模分布式计算也是应用海量数据而兴起的技术。

3、数据预处理:一般获取到的数据,即使是自己公司数据库里的数据,也很容易夹杂着脏数据,这些数据会影响到分析结果,或是让代码无法顺利跑完,所以得到数据后必须先将数据处理,处理数据的方式很多,针对不同种类的数据、不同用途的数据,清理的方式不一样。例如我是要训练文件分类器的,我要先将文章里面常见的字和罕见的字去除掉,或是要分析地方人均拥有车辆的数目,要把过大的数和非整数的数目清除,才不会影响到分析结果。

4、测试算法:数据分析的算法很多,有一句话是这样说的“没有最好的算法,只有最适合的算法”,每种分析方式都有他的优缺点,例如KNN可能在人脸识别准确率不够高,但是用他来预估商品价格是非常准的。一般在商业上做数据分析会根据算法的特性选择一个合适的算法来进行分析,但有可能会发现这个算法得出来的结果并不好而尝试了另外一种算法,在机器学习也是,都是需要不断的去尝试才可以找出一个“相对”结果比较好的算法。而且算法也是不停的在演化进步,像是是人工智能的发展,其实就是一种算法的发展,从线性回归到人工神经网络(ANN)再到深层神经网络(DNN),一步步的复杂化使得识别率和准确率不断的提升。

5、调整参数:一个合适的算法,还需要有良好的参数,调整参数需要有大量的数据提供,这些数据在机器学习里面称为“训练材料”,决定一个人工智能够不够聪明,分析结果够不够准确,往往就是算法模型里面的这个参数,不同的算法有不同的调整方式,这个过程称为“优化”,优化的方式也有很多,这边不一一细说,只举个简单的例子,今天我们要从办公室到家里,有很多种的交通方式,假如直接打车回家可能是最快的,但也是最贵的,假如走路回家是最省钱的,但是最慢,所以在不花太多钱,速度又不慢的情况就会选择走路+打车+地铁的组合,这种过程就是优化的一种,透过不同的组合,计算出成本,找出成本最低的,就是常见的优化方式。

这边要提的一点是,机器学习有一种说法叫“过度学习(overfitting)”,就是训练完的参数在训练材料里跑出的结果100分,结果在正式使用的时候发现准确率不高,这是因为参数过度的去迎合训练材料,所以通常会将训练材料拆分成两个部分,一个用来优化参数,一个用来校验。

评断机器训练成果有两项标准,一个是“查全率”,一个是“准确率”,假设我有100个苹果,要透过机器选出好的苹果来,现在我从这100个里面挑出了80个好的苹果,但是有10个没被我挑到,那我的查全率就是80/90=88.9%,我又重新挑选一次,这次是挑选了95个好苹果出来,但是这95个里面只有90个是好的苹果,那我的准确率就是90/95=94.7%。

“查全率”和“准确率”是相斥的,假如筛选条件严格,那就有可能有些好的苹果没被挑上,假如筛选条件放宽,那就会有些不好的苹果被挑了出来,根据不同的业务需求,来决定查全率和准确率哪个比较重要。

原文地址:https://www.cnblogs.com/yenpaul/p/9969699.html