Py 机器基础及其实践 9_第1页
Py 机器基础及其实践 9_第2页
Py 机器基础及其实践 9_第3页
Py 机器基础及其实践 9_第4页
Py 机器基础及其实践 9_第5页
已阅读5页,还剩14页未读, 继续免费阅读

下载本文档

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

文档简介

第8章逻辑回归8.1sigmoid函数与逻辑回归模型8.2梯度下降与推导过程8.5本章小结18.3参数学习向量化8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测8.1Sigmoid函数与逻辑回归模型学习基础学习认知能力信息素养高为了提高分类器的鲁棒性,需要降低线性回归模型的敏感性,通过在线性模型中引入一个sigmoid函数,可以有效提高分类的效果。sigmoid函数定义如下:基于线性函数的逻辑回归分类模型定义为:sigmoid函数曲线如图8-8所示。importnumpyasnpimportmatplotlib.pyplotaspltdefsigmoid(x):y=1.0/(1.0+np.exp(-x))returnyplot_x=np.linspace(-5,5,100)plot_y=sigmoid(plot_x)plt.plot(plot_x,plot_y)plt.axhline(y=0.5,color='r',linestyle='-')plt.axvline(x=0,color='r',linestyle='-')plt.text(0.3,0.45,'(0,0.5)')plt.show()8.2梯度下降与推导过程代价函数如公式8-31所示:为了避免陷入局部最低点,我们可以将h(z)的取值看作样本属于类1的后验概率,因此构造符合特定条件的损失函数:8.2梯度下降与推导过程在参数下,极大似然函数为:其对数似然函数为:代价函数8.3参数学习向量化参数学习可用向量表示为:对样本和标签用向量进行表示:若用A表示线性输出,则:8.3参数学习向量化真实标签与经过sigmoid函数变换后的预测标签的误差表示为:向量化的逻辑回归算法描述如下:输入:训练样本X、标签y、学习步长、迭代次数、初始化参数。过程:(1)当i<=N时,重复执行以下步骤,直至当前均值向量不再更新:①计算A=。②计算误差E=y-g(A)。③更新,使。(2)当i>N时,停止迭代,输出参数的值。输出:参数的值。8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测1.查看数据利用Pandas在线下载样本数据,原始数据的下载地址为:。该数据共包含699条样本,每个样本有11列数据,其中第1列是id,第2~10列是与肿瘤相关的特征,第11列表示肿瘤类型。8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测2.缺失值处理使用()查看各属性特征信息,其结果如图9-3所示。由于“?”的存在,导致数据类型为object。数据共包含16个缺失值,将缺失值先转换为NaN,然后再进行删除。data=data.replace(to_replace="?",value=np.NaN)data=data.dropna()查看是否还有缺失值情况,如图9-4所示。8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测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)8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测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)8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测对于肿瘤的预测,我们希望建立的模型在保证准确率的前提下,对患有恶性肿瘤的病人能够准确筛选出来,这就是召回率(recall/查全率),即恶性肿瘤患者被诊断出的概率,与之对应的评价指标还有精确率(Precission),指的是被诊断为恶性肿瘤,确认患有的概率是多少。在介绍召回率和准确率之前,先来了解一下混淆矩阵(ConfusionMatrix)。对于二分类来说,其混淆矩阵为二行二列的,如表所示。8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测(1)TP,即TruePostive,为真正例,样本的真实类别是正例,且模型预测的结果也是正例。(2)FP,即FalsePositive,为假正例,样本的真实类别是负例,但模型预测的结果为正例。(3)FN,即FalseNegative,为假负例,样本的真实类别是正例,但模型预测的结果为负例。(4)TN,即TrueNegative,为真负例,样本的真实类别是负例,且模型预测的结果也是负例。8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测1.精确率与召回率精确率是指分类正确的正样本占预测为正的样本个数的比例,在信息检索领域称为查准率。2.召回率召回率是指分类正确的正样本占真正的正样本个数的比例,在信息检索领域称为查全率。8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测3.准确率准确率是指分类正确的样本占总样本个数的比例。4.F1-scoreF1-score是综合考虑精确率和召回率的一个评价指标。8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测5.ROC曲线与AUC在分类模型中,ROC(ReceiverOperatingCharacteristicCurve,受试者工作特征曲线)曲线和AUC(AreaUnderROCCurve,ROC曲线下的面积)经常作为衡量一个模型泛化性能的指标。8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测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()8.4逻辑回归的Python实现──乳腺良性与恶性肿瘤的预测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-scoresupportBenign0.971.000.99111Malignant1.000.950.9760accuracy0.98171macroavg0.990.970.98171weightedavg0.980.980.98

温馨提示

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

评论

0/150

提交评论