博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【学习笔记】分类算法-逻辑回归
阅读量:4563 次
发布时间:2019-06-08

本文共 1668 字,大约阅读时间需要 5 分钟。

逻辑回归(Logistic Regression),简称LR。它的特点是能够使我们的特征输入集合转化为0和1这两类的概率。一般来说,回归不用在分类问题上,因为回归是连续型模型,而且受噪声影响比较大。如果非要应用进了;来,可以使用逻辑回归。了解过线性回归之后再来看逻辑回归可以更好的理解。

Logistic回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数g(z)将作为假设函数来预测。g(z)可以将连续值映射到0和1上。Logistic回归用来分类0/1问题,也就是预测结果属于0或者1的二值分类问题。

映射函数为:

1156642-20190328141707855-446905781.png

映射出来的效果如下如:

1156642-20190328141820141-1945313640.png

输出:[0,1]区间的概率值,默认0.5作为阀值

注:g(z)为sigmoid函数

逻辑回归的损失函数、优化

与线性回归原理相同,但由于是分类问题,损失函数不一样,只能通过梯度下降求解。

对数似然损失函数:

1156642-20190328142328346-1374944878.png

完整的损失函数:

1156642-20190328142359084-208767713.png

cost损失的值越小,那么预测的类别准确度更高

当y=1时:

1156642-20190328144001928-703863058.png

y=0时:

1156642-20190328144038394-1670077395.png

sklearn逻辑回归API

sklearn.linear_model.LogisticRegression(penalty=‘l2’, C = 1.0)

  • Logistic回归分类器
  • coef_:回归系数

良/恶性乳腺癌肿案例

原始数据的下载地址为:

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)# print(data)# 缺失值进行处理data.replace(to_replace="?", value=np.nan, inplace=True)data.dropna(inplace=True)# 数据集划分x_train, x_test, y_train, y_test = train_test_split(data[column[1:10]], data[column[10]])# 标准化处理std = StandardScaler()x_train = std.fit_transform(x_train)x_test = std.transform(x_test)# 逻辑回归预测lg = LogisticRegression(C=1.0)lg.fit(x_train, y_train)print(lg.coef_)y_predict = lg.predict(x_test)print("准确率:", lg.score(x_test, y_test))print("精准率和召回率:", classification_report(y_test, y_predict, labels=[2, 4], target_names=["良性", "恶性"]))

LogisticRegression总结

应用:广告点击率预测、电商购物搭配推荐

优点:适合需要得到一个分类概率的场景

缺点:当特征空间很大时,逻辑回归的性能不是很好(看硬件能力)

转载于:https://www.cnblogs.com/zhangfengxian/p/10615429.html

你可能感兴趣的文章
Could not get a resource from the pool 错误解决
查看>>
聊聊Docker
查看>>
pycharm远程服务器进行调试
查看>>
linux下 如何切换到root用户
查看>>
Python中的json操作
查看>>
数据结构之排序算法二
查看>>
Mysql数据库索引的使用
查看>>
【推荐系统篇】--推荐系统之训练模型
查看>>
Mysql篇--Linux中安装Mysql
查看>>
CSS3实现图片木桶布局
查看>>
Flask入门之Virtualvenv的安装及使用(windows)
查看>>
Coder-Strike 2014 - Finals (online edition, Div. 2) B. Start Up
查看>>
(转载)软件开发模式对比(瀑布、迭代、螺旋、敏捷)
查看>>
eclipse中AndroidA工程依赖B工程设置
查看>>
Oracle - 查询
查看>>
SVN入门教程
查看>>
angular2
查看>>
24点游戏 程序(二)
查看>>
linux ----> centos 网络、tomcat、vi、等等的配置和使用
查看>>
Hive导入数据
查看>>