一、分类与预测
分类是构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的分类。分类模型建立在已有类标记的数据集上,属于有监督的学习。
预测是指建立两种或两种以上变量间相互依赖的函数模型,然后进行预测或控制。
1.回归分析
- 线性回归:可用最小二乘法求解模型系数
- 非线性回归:可用非线性最小二乘法求解
- 二分类逻辑回归:因变量一般只有0和1两种取值。
- 多分类逻辑回归
- 岭回归:可消除自变量之间的多重共线性
- 主成分回归:可消除自变量之间的多重共线性,因为当自变量之间出现多 重共线性时,用最小二乘法估计的回归系数将会不准确,可用岭回归和主成分回归来改进。
2.决策树
逻辑回归本质上还是一种线性模型,对于非线性关系的变量筛选方法有决策树和神经网络等。
决策树算法:
- ID3算法:基于信息熵来选择最佳测试属性,在决策树的各级节点上,使用信息增益方法作为属性的选择标准,只适用离散的描述属性。
- C4.5算法:改为信息增益率来选择节点属性,可以处理离散和连续的描述属性
- CART算法:是一种十分有效的非参数分类和回归方法,当终结点是连续变量时,是回归树,是分类变量时,是分类树。
3.人工神经网络(ANN)
其中y是输出,f是激活函数,w是权重系数,x是输入,b是阈值
对权值的修正
其中p是学习率,
是期望输出与实际输出之差,Yi是输入。
误差函数
当误差函数小于某一个设定值时即停止神经网络的训练。
激活函数主要有4种形式
- 阈值函数(阶梯函数)
- 分段线性函数
- 非线性转移函数
- Relu函数
常用的用来实现分类和预测的人工神经网络算法
- BP神经网络:按误差逆传播算法训练的多层前馈网络
- LM神经网络:基于梯度下降和牛顿法结合的多层前馈网络。
- RBF径向基神经网络:能够以任意精度逼近任意连续函数,从输入层到隐含层的变换是非线性的,从隐含层到输出层是线性的,特别适合解决分类问题。
- FNN模糊神经网络
- GMDH神经网络:多项式网络,用于预测的神经网络。
- ANFIS自适应神经网络
分类与预测算法评价
- 模型预测效果评价方法
- 相对、绝对误差
- 平均绝对误差
- 均方误差
- 均方根误差
- 平均绝对百分误差
- Kappa统计:Kappa取值[-1,1],1表示两次判断结果完全一致,0表示两次判 断的结果是机遇造成。
- 识别准确度
- 识别精确率
- 反馈率
- ROC曲线:受试者工作特性曲线
- 混淆矩阵:描绘样本数据的真实属性与识别结果类型之间的关系,是评价分类器性能的一种常用方法。
二、聚类分析
与分类不同,聚类分析是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法,是一种无监督的学习算法。划分的原则是组内距离最小化而组间距离最大化。
常用聚类分析算法
:
- K-Means:基于距离的非层次聚类算法。
- K-中心点
- 系统聚类
python主要聚类分析函数(sklearn.cluster包里)
- KMeans
- AffinityPropagation 效果优,运行效率低
- MeanShift 均值漂移聚类算法
- SpectralClustering 谱聚类,效果比K均值好,速度快
- AgglomerativeClustering 层次聚类,给出一棵聚类层次树
- DBSCAN 具有噪声的基于密度的聚类方法
- BIRCH 可以处理大规模数据的聚类
这些方法都是先用对应的函数建立模型,然后用.fit()方法来训练模型,训练好之后用.lable_方法给出样本数据标签,或者用.predict()方法预测新输入的标签。
聚类分析算法评价
三、关联规则
关联规则目的是在一个数据集中找出各项之间的关联关系。
常用的关联规则算法
- Apriori
- FP-Tree
- Eclat算法
- 灰色关联法
四、时序模式
常用按时间顺序排列的一组随机变量X1,X2,...,Xt来表示一个随机事件的时间序列,用x1,x2,...,xn表示该随机序列的n个有序观察值。可以应用于给定一个已被观测了的时间序列,预测该序列的未来值。
常用的时间序列算法
- 平滑法:常用于趋势分析和预测,具体可分为移动平均法和指数平滑法
- 趋势拟合法:建立回归模型,分为线性拟合和曲线拟合
- 组合模型:时间序列的变化主要受长期趋势,季节变动,周期变动,不规则变动这4个因素的影响。可构建加法模型和乘法模型
- AR模型:线性预测模型,根据多点预测少数点,比插值效果好,以当前观察值为因变量,前p期观察值为自变量建立线性回归模型
- MA模型:滑动平均模型,当前观测值与以前观测值无关,而与前q期随机扰动有关,以此建立线性回归模型。
- ARMA模型:自回归移动平均模型,AR和MA模型的融合
- ARIMA模型:自回归积分滑动平均模型,许多非平稳序列差分后会显示出平稳序列的性质,称为差分平稳序列
- ARCH模型:适用于序列具有异方差性并且异放差函数短期自相关
- GARCH模型及其衍生模型:是ARCH的衍生,更能反映实际序列中的长期记忆性和信息的非对称性。
时间序列预处理
进行纯随机性和平稳性检验
- 纯随机性:自相关系数为0
- 平稳性:有常数均值和常数方差,时间序列在某一常数附件波动且波动范围有限,延迟k期的序列变量之间的影响程度是一样的,即延迟k期的自相关系数会比较快的衰减趋于0,并在0附近随机波动。
分类
- 对于纯随机序列,又称白噪声序列,序列各项没有任何相关关系,序列在进行完全无序的随机波动,没有任何信息可以提取,可以终止分析。
- 对于平稳非白噪声序列,均值和方差是常数,常用AR,MA,ARMA模型
- 对于非平稳序列,均值和方差不稳定,一般用差分方法将其转化为平稳序列,常用ARIMA模型,残差自回归模型,季节模型,异方差模型。
python主要时序模型函数
主要库是StatsModels
acf():计算自相关系数
plot_acf():画自相关系数图
pacf():计算偏自相关系数
plot_pacf():画偏相关系数图
adfuller():对观测值序列进行单位根检测,即ADF检测
diff():对观测值进行差分计算
ARIMA():创建一个ARIMA模型
summary()或summary2():给出一份模型报告
aic,bic,hqic指标值,说用来选择模型的指标值,aic,bic值越小越好。
forecast():预测函数
acorr_ljungbox():检验是否是白噪声。
五、离群点检测
常用的离群点检测方法
- 基于统计模型:具有低概率的对象视为离群点
- 基于邻近度
- 基于密度
- 基于聚类