逻辑回归算法 - 乳腺癌预测
1 目标
根据历史女性乳腺癌患者数据集(医学指标)构建逻辑回归分类模型进行良/恶性乳腺癌肿瘤预测
2 数据集
- 2.1 数据集来源
数据集源于威斯康星州临床科学中心。每个记录代表一个乳腺癌的随访数据样本。这些是DR Wolberg自1984~1995随访搜集连续乳腺癌患者数据,数据仅包括那些具有侵入性的病例乳腺癌并没有远处转移的医学指标数据集。
- 2.2 特征值(医学特征)
3 算法
- 3.1 应用场景
经典的二分类算法
广告点击率
判断用户的性别
预测用户是否会购买给定的商品类
判断一条评论是正面的还是负面的 - 3.2 算法流程
激活函数:映射到概率的函数
def sigmoid(z):
return 1 / (1 + np.exp(-z))
预测函数:返回预测结果值
def model(X, theta):
return sigmoid(np.dot(X, theta.T))
def cost(X, y, theta):left = np.multiply(-y, np.log(model(X, theta)))right = np.multiply(1 - y, np.log(1 - model(X, theta)))
return np.sum(left - right) / (len(X))
def gradient(X, y, theta):grad = np.zeros(theta.shape)error = (model(X, theta)- y).ravel()for j in range(len(theta.ravel())): #for each parmeterterm = np.multiply(error, X[:,j])grad[0, j] = np.sum(term) / len(X)return grad
梯度下降 - 模型迭代学习
寻找山谷的最低点,也就是我们的目标函数终点(什么样的参数能使得目标函数达到极值点)
下山分几步走呢?(更新参数)
(1):找到当前最合适的方向
(2):走那么一小步,走快了该”跌倒 ”了
(3):按照方向与步伐去更新我们的参数
4 应用
4.1 核心算法
column = ['Sample code number', 'Clump Thickness', 'Uniformity of Cell Size','Uniformity of Cell Shape', 'Marginal Adhesion', 'Single Epithelial Cell Size','Bare Nuclei', 'Bland Chromatin', 'Normal Nucleoli', 'Mitoses ', 'Class']# 读取数据data = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data",names=column)# 缺失值处理:包含16个缺失值,用”?”标出data = data.replace(to_replace='?', value=np.nan)data = data.dropna()# 数据集分割x_train, x_test, y_train, y_test = train_test_split(data[column[1:10]], data[column[10]],test_size=0.25)# 标准化处理:线性回归模型,w1、w2...wn系数需要标准化std = StandardScaler()x_train = std.fit_transform(x_train)x_test = std.transform(x_test)# 逻辑回归算法'''the whole flow, exclude mean cost: 1 Sigmoid function2 model function3 gradient function4 gradient descent@:param C 梯度下降学习率 '''lg = LogisticRegression()param = {"C": [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5]}'''gridsearch:sk-learn封装api带有网格搜索+交叉验证功能,搜索最优梯度下降学习率超参数@:param cv交叉验证折数 '''gc = GridSearchCV(lg, param_grid=param, cv=10)gc.fit(x_train, y_train)# 网格搜索最优模型model = gc.best_estimator_# 预测测试集y_predict = model.predict(x_test)print("模型预测结果:", y_predict)
4.2 模型评估
'''模型评估分类问题关键点:精确率、准确率、召回率恶性分类问题:现实2问题,召回率(漏查率)非常关注,混淆矩阵可视化预测结果与真实结果对比'''print("准确率:", model.score(x_test, y_test))print("召回率:", classification_report(y_test, y_predict, labels=[2, 4], target_names=['良性', '恶性']))# 预测结果生成混淆矩阵,confusion matrix @also see liner regression model manual generate functiontarget_names = ['begin', 'malignant']mat = confusion_matrix(y_test, y_predict)plt.title("predict-to-true confusion matrix")sns.heatmap(mat.T, square=True, annot=True, fmt='d', cbar=False, xticklabels=target_names,yticklabels=target_names)plt.xlabel('true label')plt.ylabel('predicted label')plt.show()
4.3 模型分析报告
报告: precision recall f1-score support
良性 0.97 0.97 0.97 109恶性 0.95 0.95 0.95 62
avg / total 0.96 0.96 0.96 171
混淆矩阵:
4.4 算法总结
逻辑回归处理样本分布不均匀-异常场景:
样本分布不均衡将导致样本量少的分类所包含的特征过少,并很难从中提取规律;即使得到分类模型,也容易产生过度依赖于有限的数据样本而导致过拟合的问题,当模型应用到新的数据上时,模型的准确性和鲁棒性将很差。
样本分布不平衡主要在于不同类别间的样本比例差异,以笔者的工作经验看,如果不同分类间的样本量差异达到超过10倍就需要引起警觉并考虑处理该问题,超过20倍就要一定要解决该问题。
样本分布均匀的应用场景:
**异常检测场景。*大多数企业中的异常个案都是少量的,比如恶意刷单、黄牛订单、信用卡欺诈、电力窃电、设备故障等,这些数据样本所占的比例通常是整体样本中很少的一部分,以信用卡欺诈为例,刷实体信用卡的欺诈比例一般都在0.1%以内。
*客户流失场景。*大型企业的流失客户相对于整体客户通常是少量的,尤其对于具有垄断地位的行业巨擘,例如电信、石油、网络运营商等更是如此。
*罕见事件的分析。*罕见事件与异常检测类似,都属于发生个案较少;但不同点在于异常检测通常都有是预先定义好的规则和逻辑,并且大多数异常事件都对会企业运营造成负面影响,因此针对异常事件的检测和预防非常重要;但罕见事件则无法预判,并且也没有明显的积极和消极影响倾向。例如由于某网络大V无意中转发了企业的一条趣味广告导致用户流量明显提升便属于此类。
*发生频率低的事件。这种事件是预期或计划性事件,但是发生频率非常低。例如每年1次的双11盛会一般都会产生较高的销售额,但放到全年来看这一天的销售额占比很可能只有1%不到,尤其对于很少参与活动的公司而言,这种情况更加明显。这种属于典型的低频事件。
处理策略(详细请参阅作者的信用欺诈实例):
过抽样策略,如SMOTE算法
欠抽样策略
逻辑回归算法 - 乳腺癌预测相关推荐
- ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性)
ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性) 目录 输出结果 设计思路 数据集 核心代码 输出结果 Testing accuracy (10 trainin ...
- Python+sklearn使用逻辑回归算法预测期末考试能否及格
封面图片:<Python程序设计实验指导书>,董付国编著,清华大学出版社 ================= 虽然名字中带有"回归"二字,但实际上逻辑回归是一个用于分类 ...
- ML机器学习算法(一): 基于逻辑回归的分类预测
机器学习算法(一): 基于逻辑回归的分类预测 1 逻辑回归的介绍和应用 1.1 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有"回归"两个 ...
- 【机器学习入门】(9) 逻辑回归算法:原理、精确率、召回率、实例应用(癌症病例预测)附python完整代码和数据集
各位同学好,今天我和大家分享一下python机器学习中的逻辑回归算法.内容主要有: (1) 算法原理:(2) 精确率和召回率:(3) 实例应用--癌症病例预测. 文末有数据集和python完整代码 1 ...
- 传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例
传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例 文章目录 传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例 1导入基本库 2读取数据并且变换类型 3输出数据 4可视化数据 ...
- 机器学习算法(一): 基于逻辑回归的分类预测-Task01
基于逻辑回归LR的分类预测 1.逻辑回归的介绍 Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类.Logistic Regression 因其简单.可并行化 ...
- sklearn机器学习(六)逻辑回归实例乳腺癌检测
本节采用逻辑回归算法完成乳腺癌的检测. 逻辑回归主要用于这种二项分类问题,采用sigmoid函数作为预测函数,当x=0时,sigmoid函数的值为0.5,之后向两边趋近,因此它得到的结果都是非黑及白的 ...
- 机器学习算法(3)—— 逻辑回归算法
逻辑回归算法 1 逻辑回归介绍 2 损失及优化 3 逻辑回归的使用 4 分类评估方法 4.1 混淆矩阵 4.2 ROC曲线与AUC指标 4.3 ROC曲线绘制 5 分类中类别不平衡问题 5.1 过采样 ...
- 基于机器学习逻辑回归算法完成癌症病人的肿瘤是否良性的判断
https://www.toutiao.com/a6630407688360575502/ 2018-12-04 22:46:48 逻辑回归算法 虽然逻辑回归算法的名字中有回归二字,但是它却不是回归算 ...
最新文章
- RandomForest:随机森林预测生物标记biomarker——分类
- C安全编码--预处理
- Django 一些 简单 配置
- Qt线程之QRunnable的使用详解
- Hulu兰华峰:专注平衡用户体验和成本
- bzoj 3668 数位DP
- 英特尔核显驱动hd630_【惊喜提升】英特尔第十代Cometlake台式机处理器详解与简单评测...
- 一个超好玩的音乐网站源码 类似小游戏
- 我要注册一个邮箱,如何注册邮箱正确格式?
- Windows XP 电脑桌面图标后面有蓝色阴影怎么去除
- React 之 Expected an assignment or function call and instead saw an expression 解决办法
- 揭开HPC应用的神秘面纱
- 地图服务平台技术方案
- 全球第二!食在爱尔兰,安全感满满!
- 孔乙己——纪念当今的穷酸大学生们
- 女朋友家亲戚让我做个电商网站,说和淘宝一样就行。。。
- SVG基本使用(四、动画、动画常用属性、复合动画/往返动画/形变动画/路径动画、脚本编程
- Mac OSX ffmpeg 硬件加速
- 【SDK】The Agora RTM SDK及RTE 传输调用
- VO DO DTO TO的区别:
热门文章
- 办理充电宝移动电源GB/T35590-2017费用多少钱
- 下次激活策略10_服装店营销策划方案,简单策略让服装超市提升10倍业绩!
- 2021年全国大学生数据统计与分析竞赛-B题分析
- 用C#实现控制台进度条
- 程序员升职记-汇报技巧:金字塔原理、MECE法则
- php省市区三级联动,thinkPHP实现的省市区三级联动功能示例
- MATLAB 2008a 激活成功后还要激活(许可证过期)
- 著名的松下伺服电机之中的1000W应该用那个系列的减速器呢?
- 3. adb常用命令
- php30m限制,住建部:严格控制高度超过 30 米或宽度超过 45 米的大型雕塑