zoukankan      html  css  js  c++  java
  • 机器学习案例实战之信用卡欺诈检测——收获的技术

    本文主要记录小白我自己在这个小项目中收获的技术点,
    有一篇博客下写的特别好,这里直接附上链接https://blog.csdn.net/huahuaxiaoshao/article/details/85232089

    1.#中文字体显示 

    plt.rc('font', family='SimHei', size=13)

    2. pandas中的.value_counts(),很像python自带的Count(),但.value_counts()可以对Series里面的每个值进行计数并且排序,如果想用升序排列,可以加参数ascending=True,如果想得出的计数占比,可以加参数normalize=True

    如:count_class = pd.value_counts(data['Class'], sort=True).sort_index()

    3.数据归一化操作中,可以直接StandardScaler().fit_transform(要归一化的数据)

    4.pandas中好像啥都要.values  没有括号,才可以喂给算法去fit

    如:sta.fit_transform(data['Amount'].values.reshape(-1, 1))   ###如果这里不加.values 就会报错

    5.

    # data.ix[:,:]
    # .ix弃用。请使用
    # .loc用于基于标签的索引或

    6.

    下采样

    目标:获得分类太多的数据和分类太少的数据相同数量的训练数据
    方法:从分类多的数据中,随机取出与分类少数量数量相同的数据,然后进行混合,
    进而进行下面的操作...

    7.

    过采样

    用了SMOTE算法

    from imblearn.over_sampling import SMOTE

    其中有k近邻算法的思想,比如找到k个相近的邻居,将他们与随机找的x_i的距离排序,如果要将少数量的某一样本点增加5倍,

    则取前5个相近的邻居,然后利用公式:x_new = x_i + rand(0,1)*(x~ - x_i)  其中x~分别去之前得到的5个样本,进而达到扩大样本数量的目的

    8.

    交叉验证

    KFold

    fold = KFold(要交叉验证数据集的个数,分为几份(默认3),是否每次验证要洗牌(默认shuffle=False))实例化

    fold是一个可迭代对象,可以用枚举的方法获取其,索引和值

    for iteration, indices in enumerate(fold, start=1):

      pass

    这里的iteration是第几次交叉验证的次数

    indices是  “要交叉验证数据集的个数”,在该次交叉验证被划分的两部分(训练集+验证集)

    9.

    召回率和精准率

    from sklearn.metrics import recall_score

    recall = TP/(TP+FN)   = recall_score(y_真实值,y_预测值)

    precision = TP/(TP+FP)

    10.

    混淆矩阵

    from sklearn.metrics import confusion_matrix

    confusion_matrix(y_真实值,y_预测值)

    11.

    画图

    plt.imshow(cm, interpolation='nearest', cmap=cmap)

    cm存储图像,本项目中传的是混淆矩阵,其他默认值就行。。我也不太会。。。

    12.

    正则化惩罚cost function中所求得θ不要太大

    l1 l2都可以 l2更平缓,l1有去除权重很小的特征的作用

    min(loss + C*正则化)

    13.

    对逻辑回归(线性关系--->映射成逻辑值,sigmoid函数)设置不同的阈值,进而平衡其召回率和精准率













    .ix is deprecated. Please use .loc for label based indexing or .iloc for positional indexing
    翻译过来就是:

    .ix弃用。请使用

    .loc用于基于标签的索引或

    .iloc用于位置索引

  • 相关阅读:
    ReentrantReadWriteLock锁例子
    线程安全的atomic wrapper classes例子
    统一处理jquery ajax请求过程中的异常错误信息的机制
    理解RESTful架构
    适配器模式的两种实现方式
    第一部分:开发前的准备-第一章 什么是Andorid
    cocos2d-x开发记录:二,基本概念(骨骼动画)
    cocos2d-x开发记录:二,基本概念(粒子系统,Scheduler和定时器)
    cocos2d-x开发记录:二,基本概念(导演,场景,层和精灵,场景切换,效果)
    cocos2d-x开发记录:二,基本概念(动作,动画,坐标系统)
  • 原文地址:https://www.cnblogs.com/kongweisi/p/10597055.html
Copyright © 2011-2022 走看看