【Python数据分析】数据挖掘建模——分类与预测——回归分析

根据挖掘目标和数据形式可以建立分类与预测、聚类分析、关联规则、时序模型、离群点检测等模型。首先介绍一下分类与预测模型。

一、分类预测模型实现过程

分类模型主要是预测分类编号,预测模型主要是建立连续值函数模型,预测给定自变量对应的因变量的值。

分类和预测的实现过程类似。以分类算法为例,分类算法主要有两步:第一步是学习步,通过归纳分析训练样本集来建立分类模型,得到分类规则;第二步是分类部,先用已知的测试样本集来评估分类规则的准确率,如果准确率是可以接受的,则使用该模型对未知类标号的待测样本集进行预测。

二、常用的分类与预测算法

常用的分类与预测算法包括:回归分析;决策树;人工神经网络;贝叶斯网络;支持向量机

三、回归分析

常用的回归分析模型如下:

回归模型名称 适用条件 算法描述
线性回归 因变量与自变量是线性关系 对一个或多个自变量和因变量之间的线性关系进行建模,可用最小二乘法求解模型系数
非线性回归 因变量和自变量之间不都是线性关系 如果非线性关系可以通过简单的函数变换转化成线性关系,用线性回归的思想求解;不能的话用非线性最小二乘法求解
logistics回归 一般因变量有0,1两种取值 利用logistics函数将因变量的取值范围控制在0和1之间,表示取值为1的概率
岭回归 参与建模的自变量之间具有多重共线性 是一种改进最小二乘估计的方法
主成分回归 参与建模的自变量之间具有多重共线性 主成分回归分析是根据主成分分析的思想提出来的,是对最小二乘法的一种改进,它是参数估计的一种有偏估计

1.logistics回归

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 

猜你喜欢

转载自blog.csdn.net/weixin_41168304/article/details/122566527