机器学习算法基础(8): 逻辑回归算法

1411-李同学

发表文章数:148

首页 » 算法 » 正文

模型的保存和加载

from sklearn.externals import joblib
机器学习算法基础(8): 逻辑回归算法

分类算法:逻辑回归

逻辑回归:线性回归的式子作为输入,解决二分类问题, 也可以得出概率值

1、应用场景(基础分类问题:二分类)

  • 广告点击率

  • 是否为垃圾邮件

  • 是否患病

  • 金融诈骗

  • 虚假账号

2、广告点击

  • 点击

  • 没点击

3、逻辑回归的输入与线性回归相同

机器学习算法基础(8): 逻辑回归算法

将线性回归的输入转变为一个分类问题

4、sigmoid函数

机器学习算法基础(8): 逻辑回归算法

机器学习算法基础(8): 逻辑回归算法
函数y轴为概率值

机器学习算法基础(8): 逻辑回归算法

逻辑回归也是一个算法自我学习的过程

5、逻辑回归的损失函数

机器学习算法基础(8): 逻辑回归算法
机器学习算法基础(8): 逻辑回归算法

当事件发生的概率为1时,损失函数为0,发生的概率越小,损失越大

机器学习算法基础(8): 逻辑回归算法

逻辑回归只盼定属于y=1的概率

机器学习算法基础(8): 逻辑回归算法

目的:减少损失函数的大小

机器学习算法基础(8): 逻辑回归算法

逻辑回归的目的:更新权重

损失函数

  • 均方误差:不存在多个局部的最低点,只有一个最小值
  • 对数似然损失:有多个最小值,即多个局部最小值,目前解决不了的问题

解决方案(无法最终解决问题,尽量改善,尽管找不到全局最低点,但效果很好)

  • 多次随机初始化:分别去找自己的最低点,在比较最小值结果
  • 调整学习率:在求解的过程中,调整学习率,学习率大小决定学习快慢

6、逻辑回归算法

API

机器学习算法基础(8): 逻辑回归算法
机器学习算法基础(8): 逻辑回归算法

与岭回归一样,可以解决过拟合问题

回归案例:肿瘤检测

机器学习算法基础(8): 逻辑回归算法

from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression, SGDRegressor,Ridge,LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import classification_report
import numpy as np
import joblib
import pandas as pd


def logistic():
    '''
    逻辑回归做二分类进行癌症预测(根据细胞的属性特征)
    '''

    #构造列标签
    column=["sample code number","clump thickness","uniformtity 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("http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data",names=column)

    print(data)

    #缺失值进行数据处理
    data=data.replace(to_replace="?",value=np.nan)

    #将np.nan删除
    data=data.dropna()

    #进行数据分割,特征值为第2列到10列,目标值为第11列
    x_train, x_test, y_train, y_test = train_test_split(data[column[1:10]], data[column[10]], test_size=0.25)

    #进行标准化处理, 目标值不需要标准化 预测属于4的概率(癌症发生的概率)
    std=StandardScaler()

    x_train=std.fit_transform(x_train)

    x_test=std.fit_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=["良性","恶性"]))
    if __name__=="__main__":
    logistic()

机器学习算法基础(8): 逻辑回归算法
机器学习算法基础(8): 逻辑回归算法

总结

机器学习算法基础(8): 逻辑回归算法

逻辑回归与朴素贝叶斯

机器学习算法基础(8): 逻辑回归算法

未经允许不得转载:作者:1411-李同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《机器学习算法基础(8): 逻辑回归算法》 发布于2020-12-09

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录