Python机器学习项目化教程(微课视频版)课件 第6章 回归分析_第1页
Python机器学习项目化教程(微课视频版)课件 第6章 回归分析_第2页
Python机器学习项目化教程(微课视频版)课件 第6章 回归分析_第3页
Python机器学习项目化教程(微课视频版)课件 第6章 回归分析_第4页
Python机器学习项目化教程(微课视频版)课件 第6章 回归分析_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章回归分析目录CONTENTS6.1

回归分析概述6.2线性回归6.3逻辑回归6.4本章小结6.1回归分析概述学习基础学习认知能力信息素养高回归分析通过研究一个或多个自变量与因变量的关系,建立自变量与因变量的数学模型,从而利用该模型进行预测。根据自变量与因变量的个数,回归分析可分为一元回归分析、多元回归分析、逻辑回归分析等。根据自变量与因变量的函数表达式可分为线性回归和非线性回归分析。线性回归是回归分析中最基本的分析方法,对于非线性回归,可借助数学手段将其转换为线性回归来解决。线性回归的数学公式可表示为:6.2线性回归6.2.1单变量线性回归假设数据集D={(x1,y1),(x2,y2),(x3,y3),…,(xm,ym)},它的线性模型就是试图通过该数据集学习一个线性方程以进行预测:为了学习到参数W和b,可用最小二乘逼近来拟合,预测函数h(x)与y之间的差值平方和为:6.2线性回归梯度下降法分别对W和b求偏导来求解参数W和b:W和b的迭代求解:6.2单变量线性回归defOptimization(x,y,w,lr,iter):m=len(x)alpha=lrh=0foriinrange(iter):sum0=0.0sum1=0.0forjinrange(m):h=w[0]+w[1]*x[j]sum1+=(h-y[j])*x[j]sum0+=(h-y[j])w[0]-=alpha*sum0/mw[1]-=alpha*sum1/mreturnw6.2线性回归LinearRegression是sklearn.linear_model子类模块下中的回归模型,主要通过调用LinearRegression函数、fit函数和predict函数来训练和预测模型。LinearRegression(copy_X=True,fit_intercept=True,n_jobs=1,normalize=False)fit(X,y[,n_jobs])返回值分为两个部分:coef_和intercept_,其中coef_存储LinearRegression模型的回归系数。intercept_存储LinearRegression模型的回归截距。::predict(X)主要是利用训练模型预测,使用训练得到的估计器或模型对输入的X数据集进行预测,返回结果为预测值。数据集X通常划分为训练集和测试集:6.2线性回归根据表6-1所示的房屋面积和房价之间的对应关系,建立线性回归模型。clf=LinearRegression()x=np.array(x)y=np.array(y)x=x.reshape(len(x),1)y=y.reshape(len(y),1)clf.fit(x,y)pre=clf.predict(x)plt.plot(x,pre)plt.xlabel('面积(平方米)')plt.ylabel('房价(万元)')plt.show()6.2线性回归(1)牛顿法求解线性回归问题的原理假设要求f(x)的解,二阶泰勒展开式为:将非线性优化问题min

f(x)近似为二次函数的最优化求解问题:6.2线性回归牛顿法求解线性回归问题的算法实现6.2线性回归6.3.1多变量回归分析原理对于多变量中的自变量与因变量的关系可表示为:(1)解析法求解利用最小二乘法最小代价函数:对公式(8-19)中的参数求偏导,则有:6.2线性回归梯度下降法迭代公式:在数据量特别大的情况下,一般会使用梯度下降求解法。6.2线性回归【例6-2】根据表6-2所示的运输里程、运输次数与运输总时间的对应关系,利用解析法建立多元线性回归模型。X=xdata[:,:-1]Y=xdata[:,-1]X_one=np.ones(len(X))X0=np.vstack(np.ones((len(X),1)))#10*1X=np.hstack((X0,X))X_T=np.transpose(X)#将X转置X_TX=np.matmul(X_T,X)#计算X_T*XX_TX_inv=np.linalg.inv(X_TX)#计算(X_T*X)^(-1)X_TX_inv_X_T=np.matmul(X_TX_inv,X_T)#计算(X_T*X)^(-1)*X_TW=np.matmul(X_TX_inv_X_T,Y)#计算(X_T*X)^(-1)*X_T*Y,即W6.2线性回归多项式回归是线性回归模型的一种,假设存在一个函数,只有一个自变量,即只有一个特征属性,满足多项式函数如下:其损失函数为:6.2线性回归【例6-4】根据给定的数据集x=[6,9,15,29,35,46,60,66,73,91,95],y=[16,25,61,67,51,38,36,49,68,82,98],拟合出多项式回归曲线。deffit_poly(n):para=np.random.randn(n)w=leastsq(err_func,para,args=(np.array(x),np.array(y)))returnw[0]#返回多项式系数6.3逻辑回归学习基础学习认知能力信息素养高为了提高分类器的鲁棒性,需要降低线性回归模型的敏感性,通过在线性模型中引入一个sigmoid函数,可以有效提高分类的效果。sigmoid函数定义如下:基于线性函数的逻辑回归分类模型定义为:sigmoid函数曲线如图6-8所示。6.3逻辑回归代价函数如公式6-31所示:为了避免陷入局部最低点,我们可以将h(z)

的取值看作样本属于类1的后验概率,因此构造符合特定条件的损失函数:6.3逻辑回归在参数下,极大似然函数为:其对数似然函数为:代价函数6.3逻辑回归参数学习可用向量表示为:对样本和标签用向量进行表示:若用A表示线性输出,则:6.3逻辑回归真实标签与经过sigmoid函数变换后的预测标签的误差表示为:向量化的逻辑回归算法描述如下:输入:训练样本X、标签y、学习步长、迭代次数、初始化参数。过程:(1)当i<=N时,重复执行以下步骤,直至当前均值向量不再更新:①计算A=。②计算误差E=y-g(A)。③更新,使。(2)当i>N时,停止迭代,输出参数的值。输出:参数的值。6.4逻辑回归1.查看数据利用Pandas在线下载样本数据,原始数据的下载地址为:。该数据共包含699条样本,每个样本有11列数据,其中第1列是id,第2~10列是与肿瘤相关的特征,第11列表示肿瘤类型。6.3逻辑回归2.缺失值处理使用()查看各属性特征信息,其结果如图9-3所示。由于“?”的存在,导致数据类型为object。数据共包含16个缺失值,将缺失值先转换为NaN,然后再进行删除。data=data.replace(to_replace="?",value=np.NaN)data=data.dropna()查看是否还有缺失值情况,如图9-4所示。6.3逻辑回归3.选择特征X=data.iloc[:,1:10]y=data["Class"]#分割数据X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=0)print(X_train,X_test,y_train,y_test)6.3逻辑回归4.数据标准化data_standard=StandardScaler()X_train=data_standard.fit_transform(X_train)X_test=data_standard.transform(X_test)5.模型训练在对数据的缺失值进行填充、划分和标准化后,利用逻辑回归函数对样本进行训练,从而得到逻辑回归模型。LR_model=LogisticRegression()LR_model.fit(X_train,y_train)#逻辑回归的模型参数:回归系数和偏置print("模型的回归系数:{}".format(LR_model.coef_))print("模型的回归偏置:{}".format(LR_ercept_))

classPro1=k1/(n*v)6.3逻辑回归对于肿瘤的预测,我们希望建立的模型在保证准确率的前提下,对患有恶性肿瘤的病人能够准确筛选出来,这就是召回率(recall/查全率),即恶性肿瘤患者被诊断出的概率,与之对应的评价指标还有精确率(Precission),指的是被诊断为恶性肿瘤,确认患有的概率是多少。在介绍召回率和准确率之前,先来了解一下混淆矩阵(ConfusionMatrix)。对于二分类来说,其混淆矩阵为二行二列的,如表所示。6.3逻辑回归(1)TP,即TruePostive,为真正例,样本的真实类别是正例,且模型预测的结果也是正例。(2)FP,即FalsePositive,为假正例,样本的真实类别是负例,但模型预测的结果为正例。(3)FN,即FalseNegative,为假负例,样本的真实类别是正例,但模型预测的结果为负例。(4)TN,即TrueNegative,为真负例,样本的真实类别是负例,且模型预测的结果也是负例。6.3逻辑回归1.精确率与召回率精确率是指分类正确的正样本占预测为正的样本个数的比例,在信息检索领域称为查准率。2.召回率召回率是指分类正确的正样本占真正的正样本个数的比例,在信息检索领域称为查全率。6.3逻辑回归3.准确率准确率是指分类正确的样本占总样本个数的比例。4.F1-scoreF1-score是综合考虑精确率和召回率的一个评价指标。6.3逻辑回归5.ROC曲线与AUC在分类模型中,ROC(ReceiverOperatingCharacteristicCurve,受试者工作特征曲线)曲线和AUC(AreaUnderROCCurve,ROC曲线下的面积)经常作为衡量一个模型泛化性能的指标。6.3逻辑回归fori,valueinenumerate(thersholds):print("%f%f%f"%(fpr_train[i],tpr_train[i],value))plt.plot(fpr_train,tpr_train,'k--',label='ROC(面积={0:.2f})'.format(auc),lw=1)plt.plot([0,1],[0,1],color='navy',lw=2,linestyle='--')plt.xlabel('假正率')plt.ylabel('真正率')plt.title('ROC曲线')plt.legend(loc="lowerright")plt.rcParams['font.sans-serif']=['SimHei']#显示中文plt.rcParams['axes.unicode_minus']=Falseplt.show()6.3逻辑回归y_predict=LR_model.predict(X_test)#分类报告,'Benign','Malignant'良性和恶性,f1_score综合评判精确率和召回率的分数print(classification_report(y_test,y_predict,target_names=['Benign','Malignant']))roc_auc_score(y_test,y_predict)print("AUC指标:",roc_auc_score(y_test,y_predict))precisionrecallf1-scoresuppor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论