• 分类模型构建


    分类模型构建

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

    模块 函数 算法名称
    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()
    

      下课。

    一个佛系的博客更新者,随手写写,看心情吧 (っ•̀ω•́)っ✎⁾⁾
  • 相关阅读:
    Android AHandle AMessage
    android java 与C 通过 JNI双向通信
    android 系统给应用的jar
    UE4 unreliable 同步问题
    UE4 difference between servertravel and openlevel(多人游戏的关卡切换)
    UE4 Run On owing Client解析(RPC测试)
    UE4 TSubclassOf VS Native Pointer
    UE4 内容示例网络同步Learn
    UE4 多人FPS VR游戏制作笔记
    UE4 分层材质 Layerd Materials
  • 原文地址:https://www.cnblogs.com/WoLykos/p/9566485.html
Copyright © 2020-2023  润新知