python逻辑回归模型建模步骤_实战:利用Python sklearn库里的逻辑回归模型训练数据---建立模型...

本案例主要是通过对不均衡的28万组数据建立模型,分析预测欺诈用户,采用sigmod函数作为损失函数,采用交叉验证的方法

和l1正交法则,比对了不同惩罚函数下的模型的召回率,也通过预测值和实际值做出混淆矩阵更加直观看到各种预测结果。

也比较了sigmod函数下的不同阈值下的模型预测的精度和召回率。

以下是部分数据格式,代码中对每一步如何做以及为什么做了详细的说明。可能有某些库的版本不同会出现错误。

数据格式:

50a14091104cfe5acf8640210267d55a.png

Python源码:

#!/usr/bin/env python

# encoding: utf-8

"""

@Company:华中科技大学电气学院聚变与等离子研究所

@version: V1.0

@author: Victor

@contact: [email protected] or [email protected] 2018--2020

@software: PyCharm

@file: LG.py

@time: 2018/11/16 16:32

@Desc:

"""

import pandas as pd

import matplotlib.pyplot as plt

import numpy as np

data = pd.read_csv("creditcard.csv")

data.head()

##该案列中Class是分类,1表示该用户是欺诈用户,0表示为好用户

count_classes = pd.value_counts(data['Class'],sort=True).sort_index()##取出Class列中不同数的个数,并按照大小排序

print(count_classes)

plt.figure(1)

count_classes.plot(kind='bar')###直接调用pd中的plot画直方图

plt.title("Fraud class histogram")

plt.xlabel("Class")

plt.ylabel("Frequency")

from sklearn.preprocessing import StandardScaler

data['normAmount']=StandardScaler().fit_transform(data['Amount'].reshape(-1,1))##因为机器默认Amout大小与某个特征数据的大小相对应,影响建模,所以对Amount进行标准化

data = data.drop(['Time','Amount'],axis=1)

data.head(3)

X = data.ix[:,data.columns != 'Class']##取得除去Class列的所有数据

y = data.ix[:,data.columns == 'class']

#X.head()

#y.head()

number_records_fraud = len(data[data.Class == 1])##class为1的数量

fraud_indices = np.array(data[data.Class == 1].index)###取出所有class为1在源文件中编号

##print(fraud_indices)

normal_indices = data[data.Class == 0].index

##向下采样:保证数据一样少

random_normal_indices = np.random.choice(normal_indices,number_records_fraud,replace=False)

#print(random_normal_indices)

random_normal_indices = np.array(random_normal_indices)##将其变为数组形式,方便使用

#print(random_normal_indices)

##将class为0和1的等量样本数据的编号整合到一起

under_sample_

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值