根据挖掘目标和数据形式可以建立分类与预测、聚类分析、关联规则、时序模型、离群点检测等模型。首先介绍一下分类与预测模型。
分类模型主要是预测分类编号,预测模型主要是建立连续值函数模型,预测给定自变量对应的因变量的值。
分类和预测的实现过程类似。以分类算法为例,分类算法主要有两步:第一步是学习步,通过归纳分析训练样本集来建立分类模型,得到分类规则;第二步是分类部,先用已知的测试样本集来评估分类规则的准确率,如果准确率是可以接受的,则使用该模型对未知类标号的待测样本集进行预测。
常用的分类与预测算法包括:回归分析;决策树;人工神经网络;贝叶斯网络;支持向量机
常用的回归分析模型如下:
回归模型名称 | 适用条件 | 算法描述 |
线性回归 | 因变量与自变量是线性关系 | 对一个或多个自变量和因变量之间的线性关系进行建模,可用最小二乘法求解模型系数 |
非线性回归 | 因变量和自变量之间不都是线性关系 | 如果非线性关系可以通过简单的函数变换转化成线性关系,用线性回归的思想求解;不能的话用非线性最小二乘法求解 |
logistics回归 | 一般因变量有0,1两种取值 | 利用logistics函数将因变量的取值范围控制在0和1之间,表示取值为1的概率 |
岭回归 | 参与建模的自变量之间具有多重共线性 | 是一种改进最小二乘估计的方法 |
主成分回归 | 参与建模的自变量之间具有多重共线性 | 主成分回归分析是根据主成分分析的思想提出来的,是对最小二乘法的一种改进,它是参数估计的一种有偏估计 |
logistics回归模型中因变量只有1和0两种取值,主要用于解决二分类问题。它其实就是用logistics函数将线性回归输出的很大范围的数,压缩到0和1之间。一般来说:如果样本x属于正类的概率大于0.5,那么就判定它是正类,否则就是负类。
更详细的关于logistics回归介绍可以看:
机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)_zouxy09的专栏-CSDN博客_python 逻辑回归
这里我主要介绍logistics回归在Python中的实现
#导入数据
import pandas as pd
from sklearn.linear_model import LogisticRegression
filename = './Python数据分析与挖掘实战(第2版)/chapter5/demo/data/bankloan.xls'
data = pd.read_excel(filename)
x = data.iloc[:,:8]
y = data.iloc[:,8]
print(x)
print(y)
分割训练集与测试集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(x,y,train_size=.8)
print('原始数据特征:',x.shape ,
',训练数据特征:', X_train.shape ,
',测试数据特征:',X_test.shape )
print('原始数据标签',y.shape,
'训练数据标签',y_train.shape,
'测试数据标签',y_test.shape)
from sklearn.linear_model import LogisticRegression
# 创建模型:逻辑回归
model = LogisticRegression()
# 训练模型
model.fit(X_train,y_train)
#模型评估(使用测试数据)
model.score(X_test,y_test)
#输出为:0.8428571428571429
#模型预测
model.predict_proba([[29,2,13,14,77,10.2,0.359998,2.12345]])
#输出为:array([[0.99036365, 0.00963635]])
关于岭回归和主成分回归可以分别参考以下两篇文章:
机器学习十大经典算法之岭回归和LASSO回归(学习笔记整理)_Magic 杨的博客-CSDN博客_岭回归
主成分回归python实现_to be a good girl的博客-CSDN博客_主成分回归python