码迷,mamicode.com
首页 > 其他好文 > 详细

逻辑回归

时间:2020-04-05 00:51:38      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:archive   tar   panda   normal   读取数据   gis   流程   image   regress   

逻辑回归

  逻辑回归,虽然有回归二字,但其实是个分类算法,主要用于二分类.

  逻辑回归是吧线性回归得到的值,进行一个转换,来解决分类问题

sigmoid函数

  输入范围-∞到+∞, 输出的值在[0,1]

  公式是这样的

技术图片

 

 

 e为常数,如果z趋近于+∞,e的负z次就越接近于0,g(z)=1.如果z趋近于-∞,e的负z次就越来越大.分母越大,g(z)趋近于0.

曲线图:

技术图片

 

 

 逻辑回归的公式:

技术图片

 逻辑回归的损失函数,优化(了解一下)

 

技术图片

 

 

### 与信息熵有些相似,对数. ###

 


逻辑回归API

 

sklearn.linear_model.LogisticRegression(penalty=‘l2‘,C=1.0)
    Logistic 回归分类器
    coef_:回归系数
    自带L2正则化解决过拟合问题.(C参数.可修改)

 

 

项目案例 : 癌症预测

  项目背景:通过给定的良/恶性乳腺肿瘤数据,判断是否患癌症

  数据:原始数据下载地址

  数据描述:

    1. 699条样本,共11列数据,第一列用于检索的id,后9列分别是与肿瘤相关的医学特征,最后一列表示肿瘤类型的数值

    2. 包含16个缺失值,用‘?‘标出.

项目流程:

  • 网上获取数据(工具pandas)
  • 数据缺失值处理,标准化
  • 逻辑回归算法

代码:

 

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split #数据集划分
from sklearn.preprocessing import StandardScaler  #数据标准化
from sklearn.linear_model import LogisticRegression  #逻辑回归
from sklearn.metrics import classification_report  # 召回率...deng

# 读取数据 提前构造列名
columns = [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(breast-cancer-wisconsin.data,names=columns)

# data.head()
# 数据处理-缺失值
data = data.replace(to_replace=?,value=np.NaN)
# 删除  有缺失值的不要
data = data.dropna()

# 分割数据集
x_train, x_test,y_train,y_test =train_test_split(data[columns[1:10]],data[columns[10]],test_size=0.25)  # 1参数为特征,2参数目标值
# ↑除去id不要 ,其他的列都要

# 标准化
std_x = StandardScaler()
x_train = std_x.fit_transform(x_train)
x_test = std_x.transform(x_test)
# 目标值需要做标准化吗? 不需要,分类

# 逻辑回归预测
lg = LogisticRegression()
lg.fit(x_train,y_train)

print(准确率:,lg.score(x_test,y_test))  #不是我们需要的,知道也没用,要的是召回率

y_predict = lg.predict(x_test)
print(召回率:,classification_report(y_test,y_predict,labels=[2,4],target_names=[良性,恶性]))
# classification_report参数:1. 真实值,2. 预测值,3. labels 分类内的值,4. target_names 对分类结果命名
# 后续还可以做交叉验证,或调整一下参数

 

输出结果:

技术图片

 

###  0.94,100个有6个没检查出来,放跑了,运气好. ### 

 

 

 

 

 

 

逻辑回归

标签:archive   tar   panda   normal   读取数据   gis   流程   image   regress   

原文地址:https://www.cnblogs.com/luowei93/p/12635194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!