• 白夜
    2019-03-15
    试了下SVM
    精确率: 0.843
    召回率: 0.717
    F1值: 0.775

    可以通过人的行为(反动言论,购物情况,日常行为)分析预测人群的标签,比如反社会人格,小众爱好者
    也可以,反过来通过人的标签(爱喝酒程度,注意力集中度,运动量等)分析人的行为(车祸,罕见疾病的发生)
    展开

    作者回复: Good Job

    
     4
  • 西湖晨曦
    2019-09-14
    继续上面的问题。就是,我就是银行信用卡部的工作人员。假设我通过fit()方法得到了信用卡诈骗分析的逻辑回归。假设特征是:性别、收入、是否有房子、是否有车子、是否有助学贷款、是否有公积金这几个特征。我通过fit()方法得到了这个有这些特征的逻辑回归曲线。我如何找到每一个特征前面的系数呢?-----说得直白点,我作为银行信用控制部门工作人员,希望知道上面的特征,哪一个是最重要的,哪一个次重要?哪一个不重要?这样我才能对我的信控工作作出调整。比如我假如知道了是否有助学贷款这个特征不重要,那么我就可以在未来工作中,在银行客户是否允许开信用卡的条件中,取消这个是否有助学贷款的条件,从而给银行信用卡开卡工作带来业务效益。

    作者回复: 很好的问题,你可以进行分类之后,查看下分类器中特征向量的重要程度,然后进行可视化的呈现,比如我们的分类器是clf,使用matplotlib进行可视化,具体代码如下:
    # 显示特征向量的重要程度
    coeffs = clf.feature_importances_
    df_co = pd.DataFrame(coeffs, columns=["importance_"])
    # 下标设置为Feature Name
    df_co.index = train_features.columns
    df_co.sort_values("importance_", ascending=True, inplace=True)
    df_co.importance_.plot(kind="barh")
    plt.title("Feature Importance")
    plt.show()

     2
     3
  • 王彬成
    2019-03-15
    1、使用LinearSVC输出的结果:
    精确率:0.846
    召回率:0.733
    F1值:0.786
    2、结果代码,把

    # 逻辑回归分类
    clf=LogisticRegression()
    clf.fit(train_x,train_y)
    predict_y=clf.predict(test_x)

    更换为:
    #线性SVM分类
    from sklearn import svm
    model=svm.LinearSVC()
    model.fit(train_x,train_y)
    predict_y=model.predict(test_x)
    展开

    作者回复: Good Job

    
     3
  • 一语中的
    2019-03-19
    用SVM的LinearSVC算法进行分类
    精确率:0.846
    召回率:0.733
    F1 值:0.786
    如果F1值越大,代表的模型的结果越好,那么SVM应该是优于逻辑回归,但是,从计算时间上来看,用逻辑回归算法比用SVM要节约50多秒(在我本地环境,其他条件不变的情况下)

    作者回复: Good Job

    
     2
  • 西湖晨曦
    2019-09-14
    对本期的信用卡诈骗分析中,涉及逻辑回归(LogisticRegression)有几点问题,我在网上找了大量资料都找不到答案。特地求助~
    1. 逻辑回归数学公式中,求出的值,是介于(0,1)之间。LogisticRegreesion的predict()方法,会设定一个阈值,比如是0.5,把大于0.5的逻辑回归值,设为1,相反小于0.5的,设置为0。那么我的问题是,为什么要设置0.5?是固定的吗?如果我希望把阈值(threshold)提高到0.6,如何设置?---我看了无数遍API,就是找不到如何设置这个阈值。
     2. 如何看逻辑回归的各个参数。假设我通过fit()这个方法对训练集进行训练,得到了逻辑回归的各个target的值,即我已经得到了这个逻辑回归的各个参数了。假设有10个特征。我如何知道每一个特征前面的变量呢?

    作者回复: 0.5是个阈值,一般做二分类的时候,大于0.5可以认为是1,小于0.5认为是0,=0.5的时候 可以是0或者1,概率都是一样的

     1
     1
  • third
    2019-03-21
    0、所有的小概率事件都属于不平衡数集,比如得某种病,出现车祸或者意外

    1、LinearSVC结果:
    精确率:0.845
    召回率:0.732
    F1值:0.778
    2、结果代码,把

    # 逻辑回归分类
    clf=LogisticRegression()
    clf.fit(train_x,train_y)
    predict_y=clf.predict(test_x)

    更换为:
    #线性SVM分类
    from sklearn import svm
    model=svm.LinearSVC()
    model.fit(train_x,train_y)
    predict_y=model.predict(test_x)
    展开

    作者回复: Good Job

    
     1
  • 王彬成
    2019-03-15
    逻辑回归混淆矩阵对应的TP、FP、TN、FN的位置,以输出的混淆矩阵图为例,
    1)首先这四个概念的定义
    1. TP:预测为正,判断正确;
    2. FP:预测为正,判断错误;
    3. TN:预测为负,判断正确;
    4. FN:预测为负,判断错误。
    2)回归原图
    1、predicted=1,True=1,代表预测为正,判断正确,所以TP=37
    2、predicted=1,true=0,代表预测为正,判断错误,所以FP=7
    3、predicted=0,true=1,代表预测为负,判断错误,所以FN=23

    展开

    作者回复: 总结的不错

    
     1
  • 李翔
    2020-01-07
    特征选择中为什么要drop掉amount这个特征呀?上一步amount不是刚标准化嘛?
    
    
  • Sam.张朝
    2019-08-09
    我以为程序是判断一笔交易,是否是不正常的。

    作者回复: 这个是可以判断的

    
    
  • 陈锦榕
    2019-07-30

    ***********The evaluation of split test data.*************
    Accuracy-Test data: 0.9601
    ************************************************************************************************************************
    Kappa: 0.07924493469331251
    ************************************************************************************************************************
    Confusion matrix,↓real laebl, →predict label”
          0 1
    0 9583 397
    1 2 18
    ************************************************************************************************************************
                  precision recall f1-score support

               0 1.00 0.96 0.98 9980
               1 0.04 0.90 0.08 20

        accuracy 0.96 10000
       macro avg 0.52 0.93 0.53 10000
    weighted avg 1.00 0.96 0.98 10000
    展开

    作者回复: Good Job 认真做练习的同学

    
    
  • 东东哥
    2019-07-18
    (0, 0)格子真实值和预测值都为0,称为预测Negative正确,记作True Negative,简写为TN。
    (0, 1)格子真实值为0,但预测值为1,称为预测Positive错误,记作False Positive,简写为FP。
    (1, 0)格子真实值为1, 但预测值为0,称为预测Negative错误,记作False Negative,简写为FN。
    (1, 1)格子真实值和预测值都为1,称为预测Positive正确,记作True Positive,简写为TP。

    作者回复: 解释正确

    
    
  • 挠头侠
    2019-06-05
    老师 为什么只依靠查准率无法判断模型的好坏呢?我试过很多情况,让我感觉是基本上都可以通过查准率判断模型好坏
    
    
  • 挠头侠
    2019-06-01
    老师 X = np.array(data.as_matrix()) ,将dataframe转化成ndarray格式不是必须步骤吧,转化之后是有什么性能上的提升吗?
    
    
  • 华
    2019-04-11
    老师FN应该是28414吧?
    
    
  • Lee
    2019-03-24
    好神奇,我之前也做过这个kaggle项目,这个是样本不平衡数据集,我当时没做处理的时候误判率好高,后来才有SMOTE处理之后才好点,但是看老师这个也没做处理,和我之前的差距好大,还要继续琢磨比对看看我之前错在哪了,当然也希望陈老师能指点一下
    
    
  • digitarts
    2019-03-24
    老师,我看到,在预测比特币走势的最后一张图表上,实际值与预测值尽管趋势类似,但是在发生的时间上,测试值比实际值晚了一段时间,请问有什么方法尽量缩短这个时间序列的间隙么?多谢🙏

    作者回复: 不太可能完全吻合

    
    
  • Destroy、
    2019-03-19
    model = svm.SVC()
    model.fit(train_x, train_y)
    predict_y = model.predict(test_x)
    cm = confusion_matrix(test_y, predict_y)
    show_metrics()

    精确率:0.953
    召回率:0.683
    F1值:0.796
    展开

    作者回复: Good Job

    
    
  • 白夜
    2019-03-15
    好奇问一下,老师你制作分析图的这个软件是什么?
     1
    
  • 一语中的
    2019-03-15
    不平衡数据:
    1.欺诈预测(欺诈的数量远远小于真实交易的数量)
    比如,本节内容的信用卡欺诈交易
    2.自然灾害预测(不好的事情远远小于好的事情)
    3.买彩票中奖(小概率)
    4.在图像分类中识别恶性肿瘤(训练样本中含有肿瘤的图像远比没有肿瘤的图像少)
    展开

    作者回复: 很好的分享,不过彩票这个很难预测

    
    
  • 王彬成
    2019-03-15
    不均衡数据集是指,数据集中每个类别下的样本数目相差很大。
    比如,在客户流失的数据集中,绝大部分的客户是会继续享受其服务的(非流失对象),只有极少数部分的客户不会再继续享受其服务(流失对象)
    又如,检查出厂冰箱的合格率,本来合格率就高达了96%。如果对样本进行检测,准确率也是很高的,那么将会无法判断次品。
    再如,检查邮件中的垃圾邮件,因为垃圾邮件占全部邮件极少的部分,所以也是属于不平衡数据集

    作者回复: 总结的不错

    
    
我们在线,来聊聊吧