案例之 逻辑回归_癌症预测
案例:使用 逻辑回归模型 实现癌症预测
逻辑回归模型介绍:
1.概述:属于有监督学习,即有特征、有标签、且标签是离散的。主要适用于二分类;
2.原理:把线性回归处理后的预测值–>通过Sigmoid激活函数,映射到[0, 1]概率–>基于自定义的阈值,结合概率来分类;
3.损失函数:极大似然估计函数的 负数形式;
""" 案例:演示逻辑回归模型实现癌症预测 逻辑回归模型介绍: 概述:属于有监督学习,即有特征、有标签、且标签是离散的。主要适用于二分类。 原理:把线性回归处理后的预测值-->通过Sigmoid激活函数,映射到[0, 1]概率-->基于自定义的阈值,结合概率来分类 损失函数:极大自然估计函数的 负数形式 机器学习开发流程: 1.加载数据 2.数据的预处理 3.特征工程(特征提取、特征与处理、特征降维、特征选择、特征组合) 4.模型训练 5.模型预测 6.模型评估 """# 导包importnumpyasnpimportpandasaspdfromsklearn.linear_modelimportLogisticRegression#逻辑回归模型fromsklearn.metricsimportaccuracy_scorefromsklearn.preprocessingimportStandardScaler#标准化fromsklearn.model_selectionimporttrain_test_split#训练集和测试集分割fromday02.案例之波士顿房价预测_正规方程法importtransfer# from sklearn.metrics import accuracy_score #模型评估# 1.加载数据data=pd.read_csv('data/breast-cancer-wisconsin.csv')# data.info()# 2.数据的预处理# 2.1 把 ? 替换成np.nan,参1:要被替换的值,参2:用来替换的值,参3:是否替换源数据,默认为Falsedata=data.replace('?',np.nan,inplace=True)# 2.2 确实值处理--》删除data.dropna(axis=0,inplace=True)#axis=0表示行,删除包含缺省值的行(确定axis=0表示行还是列:一般源方法都是默认按行删除,点进原方法看axis等于几)# 2.3 打印处理后的信息# data.info()# 3.特征工程(特征提取、特征与处理、特征降维、特征选择、特征组合)# 3.1 特征提取之 提取特征和标签x=data.iloc[:,1:-1]#按照行号、列索引获取数据,: 表示所有行,1:-1表示从第1列到最后一列,包左不包右# y=data.iloc[:, -1] #获取最后一列# y=data['Class'] #获取最后一列,效果同上y=data.Class.values#获取最后一列,效果同上# 3.2 查看特征和标签print(x[:5])print(y[:5])print(f'特征:{x.shape}, 标签:{y.shape}')#特征:(683, 9), 标签:(683,)# 3.3切割训练集和测试集x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=23)# 3.4 特征工程:标准化# 3.4.1 创建标准化对象transfer=StandardScaler()# 3.4.2 对训练集进行标准化处理x_train=transfer.fit_transform(x_train)# 3.4.3 对测试集进行标准化处理x_test=transfer.transform(x_test)# 4.模型训练# 4.1 创建模型对象 --》逻辑回归对象estimator=LogisticRegression()# 4.2 模型训练estimator.fit(x_train,y_train)# 5.模型预测y_predict=estimator.predict(x_test)print(f'预测结果:{y_predict}')# 6.模型评估# 正确率(准确率),公式为:预测对的/ 样本总数print(f'预测前评估,正确率:{estimator.score(x_test,y_test)}')#测试集的特征、标签print(f'预测后评估,正确率:{accuracy_score(y_test,y_predict)}')#测试集的标签、预测值# 思考:逻辑回归模型能用 准确率来评测吗?# 答案:可以,但是结果不精准,因为逻辑回归模型主要用于 二分类,即:A类还是B类,不能说 97%的A类,3%的B类# 所以要通过 混淆矩阵来评测,即:精确率,召回率,F1值(F1-Score),ROC曲线,AUC值.