数据挖掘的流程有,数据预处理、建立模型、构建网络、训练模型和加载模型预测。上面的代码显示了一个很简单的数据挖掘流程,模型使用的是Keras,并建构了多层神经网络。下面根据数据挖掘的流程,一个个步骤的详细说明。
数据预处理分为,数据清洗、数据集成和数据归约。数据清洗主要用来处理无关数据、噪声数据。筛选掉相关的缺失值和异常数据,为数据分析提供便利、提升精准度。而数据集成则是实体识别,将一个表的唯一性约束识别为某个具体的实物,并且将异名而同义的属性字段划上等号。而数据冗余在不恰当数据库设计里面很常见,不管是不满足第一范式的属性唯一约束,还是第二范式的传递依赖约束,都会造成数据的冗余,在数据处理环节对冗余的数据加以识别判断。而数据变换则是对数据进行规范化处理,使之处于一定的范围,方便进行综合分析。属性构造则是为了帮助用户提取更有用的信息,利用已有的属性集,并加入现有属性集合中。数据归约分为属性归约和数值归约,属性归约常见的有合并归约、逐步向前选择、逐步向后删除、决策树归纳和主成分分析等。而数据归约常见的方法有直方图、聚类、抽样、参数回归等。
上面就是一个很好的数据清洗的例子,首先通过需要的参数,选择对数据分析有影响的数据列,减少了分析时的负载和干扰,然后将异常值剔除,处理空值。
以上的图片就是一个参数归一化的例子,进行数据范围约束,减小分析干扰。
完成了数据的处理,下面就是模型的选取。
常见的模型有分类预测、聚类分析、关联规则分析、时序分析和离群点检测。常见的方法有回归分析、决策树和人工神经网络等。
回归分析又分为线性回归、非线性回归、逻辑回归、岭回归和主成分回归。线性回归是一种相对简单的回归模型。它是一个或多个自变量与因变量之间的线性关系,常使用最小二乘法求解模型系数。而非线性回归则说的是多个自变量与因变量之间的非线性关系。逻辑回归是将因变量的取值控制在1-0范围之间,表示取值为1的概率。而主成分分析法是根据主成分分析的思想提出来的,是对最小二乘法的一种改进,它是参数估计的一种有偏估计,可以消除自变量之间的多重共线性。
而图片使用的是基于神经网络的分析预测模型。dense是神经网络的一个常见的层,Dense(32, input_shape=(4,), activation='relu')表示的是输出维度是32,而输入维度是4,而激活函数使用的是relu。
model.add(Dropout(0.5))表示隐藏掉一半的神经元,
model.add(Dense(2, activation="sigmoid"))则是用于分类输出,激活(分类)函数使用的是sigmoid。
以上就是一个构建神经网络的过程。
输出模型再加载模型,进行预测。