过拟合

初始决策树及sklearn实现

孤街浪徒 提交于 2020-08-10 13:27:14
1、决策树简介 决策树多被使用处理分类问题,也是最经常使用的数据挖掘算法。决策树的主要任务是发掘数据中所蕴含的知识信息,并从中给出一系列的分类规则对数据进行分类,其预测结果往往可以匹敌具有几十年专家经验所得出的预测规则。比较常用的决策树有ID3,C4.5和CART(Classification And Regression Tree),CART的分类效果一般优于其他决策树,所以,scikit-learn使用的为CART算法的优化版本。下面简单介绍下决策树的优缺点和使用技巧。 优点:计算复杂度低,从而计算速度较快;不需要领域知识和参数假设;输出结果易于理解,分类规则准确性较高 缺点:容易产生过拟合;忽略各属性之间的相关性 使用技巧:适用的数据类型有数值型和标称型;可以采用剪枝来避免过拟合问题;需要考虑对输入数据进行预处理(比如降维等) 2、决策树实例 (1)数据来源:Iris数据集,具体介绍参见 https:// zhuanlan.zhihu.com/p/14 5542994 中的数据来源部分。sklearn包中自带了Iri数据集和数据处理方法,可以直接将第五列类别信息转换为数字。 from sklearn.datasets import load_iris #数据集 from sklearn.tree import DecisionTreeClassifier #训练器 from

白葡萄酒质量评分预测分析

﹥>﹥吖頭↗ 提交于 2020-08-10 05:36:00
持续优化中~~~ 研究背景: 中国制酒历史源远流长,品种繁多,名酒荟萃,享誉中外。其中,黄酒跟白酒是两种主要的酒类。它们渗透于中华民族的源远流长的文明史中,对文学创作、文化娱乐、饮食文化的影响更是起到一个重要作用。但是,随着全球化的脚步,我们的生活中渐渐出现了红葡萄酒、白葡萄酒。喝葡萄酒渐渐成为一种时尚。百度了一下葡萄酒的功能,有如下: 1)葡萄酒中含有抗氧化成分和丰富的酚类化合物,可防止动脉硬化和血小板凝结,保护并维持心脑血管系统的正常生理机能,起到保护心脏、防止中风的作用; 2) 饮用葡萄酒对女性有很好的美容养颜的功效,可养气活血,使皮肤富有弹性。 好像还很不错的样子。在 UCI数据库中,发现一个关于葡萄酒质量评分的数据集,于是决定来探讨一下影响葡萄酒口感的因素是什么。 目的: 从UCI下载数据集:Wine Quality Data Set ,里面包含红葡萄酒和白葡萄酒的2个样本数据集。里面均包含葡萄酒的11个物理化学方面的因素,还有1个对葡萄酒质量的测评平均分数(0-10分)。现采用其白葡萄酒数据,对该数据集进行一定的数据分析: (1)建立回归模型,研究这些性质是怎样影响白葡萄酒的质量评价 (2)找出影响较大的前三因素 (3)这些物理化学性质之间是否存在一定的关系 目录: 一.数据探索分析&数据预处理 二.建模分析 三.总结与建议 一.数据探索分析&数据预处理 import

医学影像预训练模型Med3D(附网盘下载)

纵然是瞬间 提交于 2020-08-09 18:47:52
介绍 两天前腾讯开源了他们的预训练模型Med3D的代码和预训练模型文件: Tencent/MedicalNet ​ github.com 模型的训练方法在论文 Med3D: Transfer Learning for 3D Medical Image Analysis 中进行了详细描述,主要包含以下几点贡献: (1)将多个医学比赛中的数据进行了整合,创建了3DSeg-8数据集,数据中包含不同的模态、不同目标器官和不同的病理情况。 (2)设计了一个3D网络(Med3D),共同训练多种训练数据,产生了3D-ResNet系列预训练模型,可作为backbone用于分割、检测和分类任务。 (3)使用训练好的预训练模型,对多个分割任务进行了测试,通过使用该预训练模型进行迁移学习,相比于从头训练,精度提升范围在3%-20%。 网络训练方法 数据选择 8个分割数据集,来源于不同的模态(MRI和CT),不同的扫描区域(脑、心脏、胰腺、脾脏等),3D中不同的分辨率、不同的像素灰度范围。 数据预处理 :空间和灰度分布归一化。 1)空间归一化:spacing归一化。为防止过插值,对面每一个体素的插值,目标spacing选为该体素对应的区域内的所有体素的中值spacing,以保证体素内目标不会应为过插值而丢失其本身的特征。 2)灰度归一化:不同图像模态灰度范围是不相同的。需要对灰度做归一化。同时

XGBoost类库使用小结

半腔热情 提交于 2020-08-09 13:59:49
    在 XGBoost算法原理小结 中,我们讨论了XGBoost的算法原理,这一片我们讨论如何使用XGBoost的Python类库,以及一些重要参数的意义和调参思路。     本文主要参考了 XGBoost的Python文档 和 XGBoost的参数文档 。 1. XGBoost类库概述     XGBoost除了支持Python外,也支持R,Java等语言。本文关注于Python的XGBoost类库,安装使用"pip install xgboost"即可,目前使用的是XGBoost的0.90版本。XGBoost类库除了支持决策树作为弱学习器外,还支持线性分类器,以及带DropOut的决策树DART,不过通常情况下,我们使用默认的决策树弱学习器即可,本文也只会讨论使用默认决策树弱学习器的XGBoost。     XGBoost有2种Python接口风格。一种是XGBoost自带的原生Python API接口,另一种是sklearn风格的API接口,两者的实现是基本一样的,仅仅有细微的API使用的不同,主要体现在参数命名上,以及数据集的初始化上面。 2. XGBoost类库的基本使用方式     完整示例参见我的 Github代码 。 2.1 使用原生Python API接口     XGBoost的类库的2种接口风格,我们先来看看原生Python API接口如何使用。    

【深度学习】卷积神经网络

为君一笑 提交于 2020-08-09 12:37:35
本文为深度学习的学习总结,讲解卷积神经网络。欢迎交流 计算机视觉 如果我们想要输入的图片像素为 1000×1000×3,则此时神经网络特征维度为 3 百万, W [ 1 ] W^{[1]} W [ 1 ] 采用全连接时,维度更夸张。我们使用卷积运算来解决这个问题。 边缘检测 I 卷积运算是卷积神经网络最基本的组成部分。我们使用 边缘检测 作为入门样例。 为了让电脑搞清楚下面这张图片的内容,我们可能需要先检测图片中的垂直边缘,右上角的图为垂直 边缘检测器 的输出,右下角为水平边缘检测器的输出: 接下来我们讲解如何检测出这些边缘。下图中,左边为一个 6×6 的灰度图像,即 6×6×1 的矩阵,没有 RGB 三通道。我们可以构造图中中间的 3×3 矩阵,成为 过滤器 (或核), ∗ * ∗ 运算符为 卷积运算 。而矩阵运算的结果是一个 4×4 的矩阵,因为过滤器在图中左边的矩阵中有 4×4 个可能的位置,可将其看作 4×4 的图像: 我们计算右边矩阵中的第一个元素的值。将 3×3 的过滤器覆盖在输入图像的蓝色区域,并在每个元素上标记过滤器的值,将对应元素相乘后求和 1 × 3 + 0 × 0 + . . . + 2 × − 1 = − 5 1\times3+0\times0+...+2\times-1=-5 1 × 3 + 0 × 0 + . . . + 2 × − 1 = − 5

Improving DNNs Hyperparameter tuning-Regularization and Optimization(week2)Regularization

只谈情不闲聊 提交于 2020-08-09 05:56:00
Regularization Deep Learning models have so much flexibility and capacity that overfitting can be a serious problem ,if the training dataset is not big enough. Sure it does well on the training set, but the learned network doesn't generalize to new examples that it has never seen!(它在训练集上工作很好,但是不能用于 它从未见过的新样例) You will learn to: Use regularization in your deep learning models. Let's first import the packages you are going to use. # import packages import numpy as np import matplotlib.pyplot as plt from reg_utils import sigmoid, relu, plot_decision_boundary, initialize_parameters, load_2D

Science:有调查有真相!某些AI领域多年无实际进展

霸气de小男生 提交于 2020-08-09 02:47:44
     作者 | 蒋宝尚   编辑 | 丛末   5月29日,Science刊登了一篇标题为“人工智能某些领域的核心进展一直停滞不前”的文章,在文章里,作者Matthew Hutson提到:一些多年之前的“老算法”如果经过微调,其性能足以匹敌当前的SOTA。      另外,作者在文章中还列举了一些论文,这些论文对当前关键的AI建模技术进行了分析,所有的分析结果主要有两种: 1、研究员声称的核心创新只是对原算法的微改进;2、新技术与多年前的旧算法在性能上相差不大。   具体到技术层面,论文对比分析的AI建模方法包括:神经网络剪枝、神经网络推荐算法、深度度量学习、对抗性训练、语言模型。   科研有风险,入坑需谨慎。 下面,AI科技评论简要介绍这几篇论文,为大家提供避坑指南。    1    神经网络剪枝:评价指标模糊      论文地址:   https://proceedings.mlsys.org/static/paper_files/mlsys/2020/73-Paper.pdf   对神经网络剪枝技术进行对比分析的论文是“What is the State of Neural Network Pruning?” ,论文一作是来自麻省理工的研究员Davis Blalock。   他们通过对比81相关篇论文,并在对照条件下对数百个模型进行修剪后

集成学习之Adaboost算法原理小结

ぐ巨炮叔叔 提交于 2020-08-08 18:03:39
    在 集成学习原理小结 中,我们讲到了集成学习按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,另一类是个体学习器之间不存在强依赖关系。前者的代表算法就是是boosting系列算法。在boosting系列算法中, Adaboost是最著名的算法之一。Adaboost既可以用作分类,也可以用作回归。本文就对Adaboost算法做一个总结。 1. 回顾boosting算法的基本原理     在 集成学习原理小结 中,我们已经讲到了boosting算法系列的基本思想,如下图:     从图中可以看出,Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。       不过有几个具体的问题Boosting算法没有详细说明。     1)如何计算学习误差率e?     2) 如何得到弱学习器权重系数$\alpha$?     3)如何更新样本权重D?     4) 使用何种结合策略?    

大白话5分钟带你走进人工智能-第40节神经网络之调优神经网络的超参数

时光毁灭记忆、已成空白 提交于 2020-08-08 15:57:23
神经网络有着灵活性,同时也是算法的主要缺点:需要有许多超参数需要去调节。 比如隐藏层及神经元个数,轮次,每一轮次给多少数据,学习率,对于神经网来说,有很多超参数可以调节。 层数,每层的神经元数,在每层使用的激活函数,初始化权重的逻辑,等等 你怎么知道哪种组合最适合你的任务? 站在机器学习角度来说,可以去使用grid search,cross validation就是交叉熵验证加上栅格搜索,但是它在深度学习里用的并不多,它特别的费时间,它要跑很多遍。 在深度学习里就是奔着过拟合去调,调过了只是说明结果已经出现过了,就是再把它存一下就可以了。 隐藏层数的调节会带来什么样的优点和缺点? 对于许多问题,你可以一开始只设置一个隐藏层,就可以获得不错的效果, 比如咱们DNN里面只设置两个隐藏层,就已经获得了不错的效果。 对于复杂的问题,我们可以在隐藏层上使用足够的神经元就行了。在很长一段时间内人们满足了,而且并没有去探索更深层次的神经网络。 其实就是一开始人们就用一个隐藏层,再隐藏层上加神经元,就已经可以来解决许许多的问题了。 但是深度这些网络有更高效的参数效率,神经元个数可以指数倍减少,并且训练起来更快。 比如前面mnist里面有784个输入,经过h1一个隐藏层400个神经元,最后输出有10个神经元, input到h1之间,它的w矩阵是784*400, 313600,h1到output

机器学习 --基础入门介绍 他来啦!!!

只愿长相守 提交于 2020-08-08 12:15:49
行业热词解释 机器学习基本术语 假如我们有一组天气数据,是来自全世界不同国家和地区的每日天气,内容包括最高温度、最低温度、平均湿度、风速之类的相关数据,例如数据的一部分是这样的: 城市 最高温度 最低温度 相对湿度 某时刻风速 A市 36℃ 28℃ 58% 16.7km/h B市 28℃ 17℃ 86% / C市 34℃ 29℃ 39% 20.4km/h 在这组数据中,我们将称A市、B市、C市等市以及其情况的总和称为 数据集 (data set)。表格中的每一行,也就是某城市和它的情况被称为一个 样例 (sample/instance)。表格中的每一列(不包括城市),例如最高温度、最低温度,被称为 特征 (feature/attribute),而每一列中的具体数值,例如36℃ 、28℃,被称为 属性值 (attribute value)。数据中也可能会有 缺失数据 (missing data),例如B市的某时刻风速,我们会将它视作缺失数据。 如果我们想预测城市的天气,例如是晴朗还是阴雨天,这些数据是不够的,除了特征以外,我们还需要每个城市的具体天气情况,也就是通常语境下的结果。在机器学习中,它会被称为 标签 (label),用于标记数据。值得注意的是,数据集中不一定包含标签信息,而这种区别会引起方法上的差别。我们可以给上述示例加上一组标签: 城市 天气 A市 晴朗 B市 阴雨 C市