zoukankan      html  css  js  c++  java
  • 分类模型构建

    分类模型构建

      分类是指构造一个分类模型,输入样本的特征值,输出对应的类别,将每个样本映射到预先定义好的类别中。分类模型若建立在已有类标记的数据集上,则属于有监督学习。在实际应用场景中,分类算法被用于行为分析,物品识别,图像检测等。

    模块 函数 算法名称
    linear_model LogisticRegression 逻辑斯蒂回归
    svm SVC 支持向量机
    neighbors KNeighborsClassifier K最近邻分类
    naive_bayes GaussianNB 高斯朴素贝叶斯
    tree DecisionTreeClassifier 分类决策树
    ensemble RandomForestClassifier 随机森林分类
    ensemble GradientBoostingClassifier 梯度提升分类树
    from sklearn.datasets import load_breast_cancer  # 乳腺癌
    from sklearn.model_selection import train_test_split
    # 数据导出
    data = load_breast_cancer()
    X = data['data']
    y = data['target']
    names = data['feature_names']
    # 划分数据集
    X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=1234)
    # 标准化
    from sklearn.preprocessing import StandardScaler
    Standard = StandardScaler().fit(X_train)  # 训练产生标准化的规则
    Xtrain = Standard.transform(X_train)  # 将规则应用于训练集
    Xtest = Standard.transform(X_test)  # 将规则应用于测试集
    # 模型构建
    from sklearn.neighbors import KNeighborsClassifier
    knn = KNeighborsClassifier().fit(Xtrain,y_train)
    y_pred = knn.predict(Xtest)
    

    分类算法评价函数

    方法名称 最佳值 sklearn函数
    Precision(精确率) 1.0 metrics.precision_score
    Recall(召回率) 1.0 metrics.recall_score
    F1值 1.0 metrics.f1_score
    Cohen’s Kappa系数 1.0 metrics.cohen_kappa_score
    ROC曲线 最靠近y轴 metrics. roc_curve
    from sklearn import metrics
    precision_score(y_test, y_pred)
    

    0.9066666666666666

    recall_score(y_test,y_pred)
    

    0.9855072463768116

    f1_score(y_test,y_pred)
    

    0.9444444444444444

    cohen_kappa_score(y_test,y_pred)
    

    0.8496538081107814

    roc_curve(y_test,y_pred)
    

    (array([0. , 0.15555556, 1. ]),
    array([0. , 0.98550725, 1. ]),
    array([2, 1, 0]))

      当然,我们还可以偶尔开一下挂,一应俱全啊,美滋滋。

    from sklearn.metrics import classification_report
    print(classification_report(y_test, y_pred))
    
                 	precision    recall  f1-score   support
    
              0       	0.97      0.84      0.90        45
              1      	0.91      0.99      0.94        69
    
    avg / total          0.93      0.93      0.93       114
    

     
      最后,再送你们一段画”ROC曲线“的代码,可直接copy的呦~~~

    from sklearn.metrics import roc_curve
    import matplotlib.pyplot as plt
    plt.rcParams['font.sans-serif'] = 'SimHei'  ## 改字体
    ## 求出ROC曲线的x轴和Y轴
    fpr, tpr, thresholds = roc_curve(y_test,y_pred)
    plt.figure(figsize=(10,6))
    plt.xlim(0,1) ##设定x轴的范围
    plt.ylim(0.0,1.1) ## 设定y轴的范围
    plt.xlabel('假正率')
    plt.ylabel('真正率')
    plt.plot(fpr,tpr,linewidth=2, linestyle="-",color='red')
    plt.show()
    

      下课。

    一个佛系的博客更新者,随手写写,看心情吧 (っ•̀ω•́)っ✎⁾⁾
  • 相关阅读:
    锐捷交换机密码恢复
    adobe cs3系列产品官方帮助网页(中文)
    网页设计视频教程
    锐捷交换机、路由器配置手册
    WINPE下如何直接删除联想隐藏分区?
    IWMS实现频道页面的方法
    SATA、SCSI、SAS区别与特点
    自定义系统必备
    自己写的Web服务器
    尝试MVP模式
  • 原文地址:https://www.cnblogs.com/WoLykos/p/9566485.html
Copyright © 2011-2022 走看看