ITPub博客

首页 > 大数据 > 数据分析 > sklearn建模及评估(分类)

sklearn建模及评估(分类)

原创 数据分析 作者:kuqlan 时间:2019-09-04 10:56:21 0 删除 编辑

      分类是指构造一个分类模型,输入样本的特征值,输入出对应的类别,将每个样本映射到预先定义好的类别。Sklearn中分类算法很多,用于不同场景,常用的有 linear_model 、 svm 、 neighbors 、 naïve _ bayes 、 tree 、 ensemble ( R andomForestClassifier )、 ensemble (GradientBoosting C lassifier) 等。

以 breast_cancer 为例,使用 sklearn 估计器构建支持向量机 SVM 模型,代码如下:

## 加载所需的函数,

import numpy as np

from sklearn.datasets import load_breast_cancer

from sklearn.svm import SVC

from sklearn.model_selection import train_test_split

from sklearn.preprocessing import StandardScaler

cancer = load_breast_cancer()

cancer_data = cancer['data']

cancer_target = cancer['target']

cancer_names = cancer['feature_names']

## 将数据划分为训练集测试集

cancer_data_train,cancer_data_test, \

cancer_target_train,cancer_target_test = \

train_test_split(cancer_data,cancer_target,

      test_size = 0.2,random_state = 22)

## 数据标准化

stdScaler = StandardScaler().fit(cancer_data_train)

cancer_trainStd = stdScaler.transform(cancer_data_train)

cancer_testStd = stdScaler.transform(cancer_data_test)

## 建立SVM模型

svm = SVC().fit(cancer_trainStd,cancer_target_train)

print('建立的SVM模型为:\n',svm)

 

 

## 预测训练集结果

cancer_target_pred = svm.predict(cancer_testStd)

print('预测前20个结果为:\n',cancer_target_pred[:20])

print('预测前20个结果为:\n',cancer_target_pred[:])

 

 

## 求出预测和真实一样的数目

true = np.sum(cancer_target_pred == cancer_target_test )

print('预测对的结果数目为:', true)

print('预测错的的结果数目为:', cancer_target_test.shape[0])

print('预测错的的结果数目为:', cancer_target_test.shape[0]-true)

print('预测结果准确率为:', true/cancer_target_test.shape[0])

 

 

 

# 分类模型常用的评价方法

from sklearn.metrics import accuracy_score,precision_score, \

recall_score,f1_score,cohen_kappa_score

print('使用SVM预测breast_cancer数据的准确率为:',

      accuracy_score(cancer_target_test,cancer_target_pred))

print('使用SVM预测breast_cancer数据的精确率为:',

      precision_score(cancer_target_test,cancer_target_pred))

print('使用SVM预测breast_cancer数据的召回率为:',

      recall_score(cancer_target_test,cancer_target_pred))

print('使用SVM预测breast_cancer数据的F1值为:',

      f1_score(cancer_target_test,cancer_target_pred))

print('使用SVM预测breast_cancer数据的Cohen’s Kappa系数为:',

      cohen_kappa_score(cancer_target_test,cancer_target_pred))

 

 

 

# 分类模型评价报告

from sklearn.metrics import classification_report

print('使用SVM预测iris数据的分类报告为:','\n',

      classification_report(cancer_target_test,

            cancer_target_pred))


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18841027/viewspace-2655938/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle技术爱好者,Oracle10g OCM,网名 KUQLAN ,具有7的年Oracle数据库管理实践,曾经参加过BOSS、ERP、云计算(OpenStack+kvm)等项目的一线工作。以前写博客是为了自己,而现在是为了自己和别人。因为领会了帮助别人和分享、沉淀和积累会创造快乐和价值...

注册时间:2009-01-26

  • 博文量
    183
  • 访问量
    1681000