描述
hasattr() 函数用于判断对象是否包含对应的属性。
语法

hasattr(object, name)

参数

  • object – 对象。
  • name – 字符串,属性名。

如果对象有该属性返回 True,否则返回 False。

案例

import numpy as np
import pandas as pd
import matplotlib as mpl
import warnings
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import label_binarize
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegressionCV
from sklearn.svm import SVC
from itertools import cycle
from sklearn.metrics import roc_curve, roc_auc_score# 获取数据
def loaddata():data = pd.read_csv('data/iris.data', header=None)# 将类别数据转换为数值数据iris_types = data[4].unique()for i, iris_type in enumerate(iris_types):data._set_value(data[4] == iris_type, 4, i)data = data.valuesX = data[:, :2]y = data[:, -1].astype(np.int)return X, yif __name__ == '__main__':#  消除警告warnings.filterwarnings(action='ignore')# 设置样式格式# 不用科学计数法,使用小数np.set_printoptions(suppress=True)# 设置显示宽度pd.set_option('display.width', 400)# 获取数据X, y = loaddata()# 获取类别个数c = np.unique(y).size# 数据分割X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.7, random_state=0)# 标签二值化—one-hot编码y_one_hot = label_binarize(y_test, classes=np.arange(c))# 逻辑回归Calpha = np.logspace(-2, 2, 20)# 模型models = [['Knn', KNeighborsClassifier(n_neighbors=7)],['lgc', LogisticRegressionCV(Cs=alpha, fit_intercept=False, cv=5)],['SVM(linear)', GridSearchCV(SVC(kernel='linear', decision_function_shape='ovr'), param_grid={'C': alpha})],['SVM(RBF)',GridSearchCV(SVC(kernel='rbf', decision_function_shape='ovr'), param_grid={'C': alpha, 'gamma': alpha})]]# 颜色迭代器colors = cycle('gmcr')# 画每个图的ROC曲线mpl.rcParams['font.sans-serif'] = ['simHei']mpl.rcParams['axes.unicode_minus'] = Falsefig = plt.figure(facecolor='w', figsize=(7, 6))for (name, model), color in zip(models, colors):model.fit(X_train, y_train)if hasattr(model, 'C_'):print(model.C_)if hasattr(model, 'best_params_'):print(model.best_params_)if hasattr(model, 'predict_proba'):  # 概率y_score = model.predict_proba(X_test)else:y_score = model.decision_function(X_test)  # 决策函数(GridSearchCV中)fpr, tpr, threshold = roc_curve(y_one_hot.ravel(), y_score.ravel())auc = roc_auc_score(y_one_hot.ravel(), y_score.ravel())plt.plot(fpr, tpr, c=color, lw=2, alpha=0.7, label='%s,AUC=%.3f' % (name, auc))plt.plot((0, 1), (1, 0), c='#808080', lw=2, ls='--', alpha=0.7)# 设置坐标范围plt.xlim((-0.01, 1.02))plt.ylim((-0.01, 1.02))# 设置坐标精度plt.xticks(np.arange(0, 1.1, 0.1))plt.yticks(np.arange(0, 1.1, 0.1))# 设置坐标标签plt.xlabel('FPR', fontsize=13)plt.ylabel('TPR', fontsize=13)plt.grid(b=True, ls=':')# 图例plt.legend(loc='lower right', fontsize=12)# 标题plt.title('鸢尾花数据不同分类器的ROC与AUC', fontsize=17)plt.show()
0.904814814814815  # KNeighborsClassifier直接打印auc
[3.35981829 3.35981829 3.35981829]   # LogisticRegressionCV有C_属性
0.8824691358024691   # LogisticRegressionCV打印auc
{'C': 0.18329807108324356}
0.9276543209876543
{'C': 0.29763514416313175, 'gamma': 0.29763514416313175}
0.9288888888888889

python—内置函数hasattr()相关推荐

  1. python 内置函数

    python 内置函数 Python内置(built-in)函数随着python解释器的运行而创建.在Python的程序中,你 可以随时调用这些函数,不需要定义. abs()     # 求一个数的绝 ...

  2. python内置函数表_python学习系列--python内置函数(一)

    先列出所有的python内置函数,可以看到还是挺多的. abs()        求给定数的绝对值. all()          传入一个列表,只有当列表中所有元素都是真时,该函数返回真. any( ...

  3. 匿名函数python_基于python内置函数与匿名函数详解

    内置函数 Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() d ...

  4. 【Python】Python3.7.3 - Python内置函数

    文章目录 系统参数 Python内置函数 abs() all() any() ascii() repr() eval() 空值为假,非空为真 系统参数 [tony@tony-controller bi ...

  5. Python内置函数、匿名函数

    内置函数 我们一起来看看python里的内置函数.什么是内置函数?就是Python给你提供的,拿来直接用的函数,比如print,input等等.截止到python版本3.6.2,现在python一共为 ...

  6. 【Python知识点梳理】5.Python内置函数

    5.Python内置函数 文章目录 1.内置函数简介 2.数据运算 3.类型转换 4.序列操作 5.Set集合 7.其他内置函数 6.综合练习 总结 1.内置函数简介   任何一门编程语言的核心操作都 ...

  7. python内置函数boolsum_Python - 内置函数

    Python - 内置函数 filter filter(处理逻辑, 可遍历对象)遍历序列中的每个元素,判断每个元素的布尔值为True则保留元素. 用法:返回执行结果为TRUE的入参(入参是列表字符元组 ...

  8. Python内置函数详解——总结篇

      引 言 国庆期间下定决心打算学习Python,于是下载安装了开发环境.然后问题就来了,怎么开始呢?纠结一番,还是从官方帮助文档开始吧.可是全是英文啊,英语渣怎么破?那就边翻译边看边实践着做吧(顺便 ...

  9. Python内置函数汇总

    如有错误,恳请指出. 一直以来都是现查现学Python的相关内置函数,想看看全部的汇总版本,最近还真发现有大佬早已把相关的内置函数全部汇总完毕了. 博主 十月狐狸 将Python 3.5版本中的68个 ...

最新文章

  1. Python 字典(Dictionary) copy()方法
  2. 用mysqldump远程备份mysql数据库
  3. 软件材料填写中的行数统计和代码文本合并
  4. 测序发展史:150年的风雨历程
  5. 【简讯】微软拟发布开源VB6
  6. C语言函数多个返回值
  7. Gephi绘制网络图初步探索
  8. 120个常用货源网站,赶紧收藏!
  9. JAVA教程下载-JAVA学习视频教程网盘分享
  10. JS 常见的 6 种继承方式
  11. android 自动阅读新闻,Android 用Groovy实现扇贝阅读APP的自动阅读功能
  12. SAP Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃。
  13. 泛泛而谈的菜鸟学习记录(二)—— unity静态和动态批处理
  14. 路由器购买指南,和网络不稳定、断网说拜拜
  15. APP用户生命周期价值分析与测量
  16. Python并发编程之进程池
  17. [GBase 8s 教程]GBase 8s 分页语法
  18. iPad mini7:库克终于舍得堆料了?
  19. Debian10 Centos7 ProxmoxVE 虚拟硬盘格式转换
  20. 2019年第十六届中国研究生数学建模竞赛E题 全球变暖?【分享交流】

热门文章

  1. 对象池 GenericObjectPool 通用对象池
  2. 2D游戏——2021年4月14日
  3. python数据分析应用(代码版)
  4. 航海王热血航线显示服务器,航海王热血航线游戏登录排队进不去解决方法
  5. 移远BC95手动接入网络操作步骤
  6. 浏览器的 代理服务拒绝访问 问题
  7. 302PHP状态码,HTTP 302 状态码
  8. 高达坐骑机器人_自带特效的坐骑!新机器人坐骑圆谷迷机师梦!
  9. 一个优秀程序员的所必须了解的
  10. 2006-TOG - Removing camera shake from a single photograph