栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Chapter 7 逻辑回归

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Chapter 7 逻辑回归

模型的保存与加载

对于已经训练好的模型,可以先保存,等到下次需要的时候再加载

保存

当模型训练好后

#保存训练好的模型
    model=joblib.dump(lr,'./new/test.pkl') #文件格式pkl
加载

对保存的模型进行加载

#预测房价结果
    model=joblib.load('./new/test.pkl')
    y_predict=std_y.inverse_transform(model.predict(x_test))
    print('保存的模型预测的结果:',y_predict)
逻辑回归

应用场景:逻辑回归是解决二分类问题的利器。
eg:广告点击率?判断用户的性别?预测用户是否会购买给定的商品类?判断一条评论是正面的还是负面的?

定义

线性回归的输入——>分类,需要使用工具sigmod函数

sigmod函数


损失函数和优化

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

  • 损失函数:均方误差(不存在多个局部最低点)只有一个最小值
  • 对数似然损失:多个局部最小值 目前解决不了的问题
  • 梯度下降求解:1.多次随机初始化,多次比较最小值结果 2.求解过程当中,调整学习率
    尽管每月全局最低点,但是效果都是不错的。
逻辑回归API

从sklearn.linear_model导入LogisticRegression。
哪个类别少,那么判定概率值指的就是这个类别。
步骤:
1、网上获取数据(工具pandas)
2、数据缺失值处理、标准化
3、LogisticRegression估计器流程

import numpy as np
import pandas as pd
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  mean_squared_error,classification_report
import joblib

def logistic():
    '''
    逻辑回归做二分类进行癌症预测(根据细胞的属性特征)
    :return: None
    '''
    #构造列标签名字
    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("C:/Users/sunfl/Desktop/breast-cancer-wisconsin.data",names=column)
    #处理缺失值
    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)
    #进行标准化处理
    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=['良性','恶性']))
    return None

if __name__=='__main__':
    logistic()
逻辑回归总结

应用:广告点击率预测、电商购物搭配推荐
优点:适合需要得到一个分类概率的场景
缺点:当特征空间很大时,逻辑回归的性能不是很好
(看硬件能力)

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015258.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号