m0_73979903 2023-10-02 21:09 采纳率: 40%
浏览 4

为什么我的命中率显示是NaN啊,前面还可以,后面就不行了

请大家帮我看下吧,改了好多遍了,还是不行……,也不知道是哪里有问题,数据也处理过了,没有空值重复值

img

  • 写回答

2条回答 默认 最新

  • m0_73979903 2023-10-02 21:23
    关注

    #以下是我用到的所有代码

    import numpy as np
    import pandas as pd
    
    df = pd.read_csv(r'D:/data/睡眠统计.csv',engine='python')
    
    df = df.replace({'性别':{'女性':0, '男性':1}})
    df = df.replace({'职业':{'工程师':101, '护士':102, '会计师':103, '科学家':104, '老师':105, '律师':106, 
                           '软件工程师':'107', '销售代表':108, '医生':109, '营业员':1010, '主管':1011}})
    df = df.replace({'BMI':{'正常':0, '肥胖':1, '超重':2}})
    df = df.replace({'睡眠障碍':{'无':3, '有':4}})
    
    df.isnull().sum()
    df = df.fillna(method='bfill')
    
    X = df.drop(columns=['睡眠障碍'])
    y = df['睡眠障碍']
    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.4,random_state=123,shuffle = True)  
    #print(X_train)    #划分的训练集数据
    #print(X_test)    #划分的测试级数据
    #print(y_train)
    #print(y_test)
    
    from sklearn.tree import DecisionTreeClassifier
    model = DecisionTreeClassifier(max_depth=3,random_state=123)
    model.fit(X_train,y_train)
    
    y_pred = model.predict(X_test)
    y_pred[:100]
    
    a = pd.DataFrame()
    a['预测值'] = list(y_pred)
    a['实际值'] = list(y_test)
    a.head(5)   #查看前十行
    
    from sklearn.metrics import confusion_matrix
    m = confusion_matrix(y_test, y_pred)  # 传入预测值和真实值
    print(m)
    
    a = pd.DataFrame(m, index=['0(无睡眠障碍概率)', '1(有睡眠障碍概率)'], columns=['0(无睡眠障碍概率)', '1(有睡眠障碍概率)'])
    
    #计算命中率
    from sklearn.metrics import classification_report
    print(classification_report(y_test, y_pred))
    
    from sklearn.metrics import roc_curve
    fpr,tpr,thres = roc_curve(y_test,y_pred_proba[:,1],pos_label=2)
    
    a = pd.DataFrame()
    a["阀值"] = list(thres)
    a["假报警率"] = list(fpr)
    a["命中率"] = list(tpr)
    a
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 请提交代码 10月2日
  • 创建了问题 10月2日

悬赏问题

  • ¥20 求帮,直连能连上oracle12,但是thinkphp6就是报错
  • ¥15 paddleocr运行报错
  • ¥15 怎么用 matlab 设计滞后-超前串联校正网络
  • ¥15 MFC引用C#生成的dll,将dll放置到非exe程序目录,如何操作
  • ¥15 C#创建webservice接口,三方通过多次跳转访问本方服务,获取wsdl文档,wsdl中ip地址为局域网内本机地址而非三方直接访问的地址。
  • ¥15 关于#wireshark#的问题:需要安卓app流量数据集要安卓流量做包序列长度的实验,比如某些流量是在看视频还是在发评论
  • ¥15 Smail语句如何使用判断语句跳过验证卡密界面
  • ¥15 关于#wireshark#的问题:并且能够给数据做标注,如这个流量是在看视频或者是在转账
  • ¥15 运筹优化,gurobi,python
  • ¥20 springmvc重定向和返回json