• 机器学习——逻辑斯蒂回归数学原理及信用卡诈骗项目实例


    一、分类模型评价指标

     

    某一类的精准率precision—其实预测为该类并且预测正确的比例。

    某一类的精准率recall—其实就是该类有多少被预测出来。

    二、逻辑斯蒂回归

    (一)、逻辑斯蒂回归叫回归,但实际上它是二分类算法;也可以实现多分类算法,也就是多次利用二分类算法实现多分类。

    1. 训练数据可以是离散型也可以是连续性特征。
    2. 逻辑斯蒂回归本质上也是线性分类器,就是线性函数曲线将超平面分成两部分;也可以实现非线性。
    3. 过拟合和线性回归同样办法。
    4. 出现欠拟合问题,处理增加新的特征变量,也可以增加多项式特征。

    (二) 逻辑斯蒂回归函数

    函数图像如图:

     

     所以在最后的判别方法为:

    三、信用卡诈骗分类

    首先介绍一下sklearn包中的分类器:

    • from sklearn.linear_model import LogisticRegression 这个分类器可以设置正则化功能,但只能做L2正则化。
    • from sklearn.linear_model import LogisticRegressionCV 带有参数遍历功能选择超参数alpha
    • from sklearn.linear_model import SGDClassifier 可以设置正则化功能,并且是随机梯度分类器,数据量大的时候用这个

    (1)导包

    1. %matplotlib inline
    2. import matplotlib.pyplot as plt
    3. import numpy as np
    4. import pandas as pd
    5. from sklearn.preprocessing import StandardScaler
    6. import imblearn
    7. from sklearn.metrics import classification_report
    8. from sklearn.model_selection import train_test_split

    (2)读入数据AND数据预处理

    1. data=pd.read_csv('./data_picture/chapter4/creditcard.csv')
    2. X = data.drop('Class',axis=1)
    3. y = data['Class']
    4. X=X.drop('Time',axis=1)
    5. X['Amount'] = (X['Amount'] - X['Amount'].min()) /(X['Amount'].max() - X['Amount'].min())
    6. data.head()

    结果如图:

     (3)分数据集

    X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=1)

     (4)模型训练

    1. from sklearn.linear_model import LogisticRegression,LogisticRegressionCV,SGDClassifier
    2. model = LogisticRegression(penalty='l2',random_state=33)
    3. model.fit(X_train, y_train)

    (5)模型评价

    1. ypred1=model.predict(X_test) #预测测试集各样本的类别
    2. ypred2=model.predict_proba(X_test) #预测测试集每个样本属于各类的概率
    3. train_score = model.score(X_train, y_train)
    4. test_score = model.score(X_test, y_test)
    5. print('train_score=',train_score)
    6. print('test_score=',test_score)
    7. print('------------------------------------------------------')
    8. y_predict=model.predict(X_test)
    9. model_report=classification_report(y_test,y_predict)
    10. print(model_report)

    结果如图:

     

  • 相关阅读:
    科普长文--网络安全拟态防御技术概念及应用
    禁止瘟疫清零计划 Project Zero与VR一起启动
    变化检测(Change Detection,CD) 综述2篇 & CD代码 & 常用CD数据集及链接
    C# 如何将表格数据转成实体
    java基础10题
    js + selenium 获取chatgpt的accessToken
    js用普通DIV模拟A标签
    Sigma 规则如何帮助解决网络安全技能短缺问题
    2023年全球市场新能源汽车车载充电器总体规模、主要生产商、主要地区、产品和应用细分研究报告
    android P MediaCodec编解码流程分析
  • 原文地址:https://blog.csdn.net/m0_72662900/article/details/126962406