python 异常检测模型_案例:基于逻辑回归、随机森林、Bagging概率投票组合模型的异常检测(python_028)...

本文通过一个异常订单分析的案例,介绍如何使用Python进行异常检测。涉及数据预处理、过抽样处理SMOTE、LogisticRegression、RandomForest、Bagging概率投票组合模型,并通过交叉验证评估模型效果,最终实现91%的预测准确率。
摘要由CSDN通过智能技术生成

异常检测的应用场景,分为两种情况:

(1)异常订单的分析。包括异常订单的主要特征、品类集中度、重点客户等,尤其是可以将异常订单联系人加入黑名单,以降低其对公司正常运营的干扰。

(2)订单的实时检测。订单实时检测后会将结果为异常的订单记录发送到审核部门,然后由审核部门做进一步审查。

本文的案例来自宋天龙老师的《python数据分析与数据化运营》第6章。主要学习技术包括:基本预处理:使用DictVectorize将字符型分类变量转换为数值型变量、使用SMOTE对不均衡样本做过抽样处理;数据建模:基于cross_val_score的交叉检验,基于LogisticRegression、RandomForest、Bagging概率投票组合的模型做分类。

一、案例数据

数据概况:特征数量:13

数据记录数:134190

是否有NA值:有

是否有异常:有

共有13个特征变量,包括:order_id: 订单ID,数字组合而成,例如:4324543267

order_date: 订单日期,格式为YYYY-MM-DD,例如2013-10-17

order_time: 订单时间,格式为HH:MM:SS,例如12:54:06

cat: 商品一级类别,字符串型,包含中文和英文。

attribution: 商品渠道来源,字符串型,包含中文和英文

pro_id: 商品ID,数字组合型

pro_brand: 商品品牌,字符串型,包含中文和英文

total_money: 商品销售金额,浮点型

total_quantity: 商品销售数量,整数型

order_source: 订单来源,从哪个渠道形成的销售,字符串型

pay_type: 支付类型,字符串型

use_id: 用户ID,由数字和字母等组成的字符串

city_id: 用户下订单时的城市,字符串型,中文。

目标变量:abnormal_label, 代表该订单记录是否为异常订单。

二、案例过程

步骤1: 导入库

import numpy as np

import pandas as pd

from sklearn.feature_extraction import DictVectorizer #数值分类转整数分类库

from imblearn.over_sampling import SMOTE #过抽样处理库SMOTE

from sklearn.model_selection import StratifiedKFold, cross_val_score #交叉检验算法

from sklearn.linear_model import LogisticRegression

from sklearn.ensemble import VotingClassifier, RandomForestClassifier, BaggingClassifierDictVectorizer:用于将定义好的字符串值和数值健值对做转换

SMOTE:用于处理样本不均衡的过抽样处理库

StratifiedKFold: 适用于有标签数据集的交叉检验数据集划分方法

cross_val_score: 通过交叉检验方法做模型效果评估

LogisticRegression,RandomForestClassifier, BaggingClassifier:三个集成分类库

VotingClassifier:用于分类的投票组合模型方法库

步骤2: 数据审查预处理函数

#基本状态查

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值