预测模型

读周志华《机器学习》个人读书笔记

匿名 (未验证) 提交于 2019-12-02 22:56:40
机器学习所研究的内容:是关于在计算机上通过数据产生“模型”的算法,即为“学习算法”(learning algorithm)。 “模型”指的就是学习所得的结果。 从数据中学得模型的过程称为“学习”或“训练”。 预测的若为离散值,此类学习任务称为“分类”(classification)若为连续值,此类学习任务称之为“回归”(regression)。涉及到两个类别的“二分类”(binary classification)任务,其中一个为“正类”(posive class),另一个为“反类”(negative class)。 根据训练数据是否拥有标记信息,学习任务分为:“监督学习”(supervise learning)和“无监督学习”(unsupervised learning)。分类回归是前者的代表,聚类(clustering)是后者的代表。 学得的模型适用于新样本的能力,称为“泛化”(generalization)能力。 归纳(induction)和演绎(deduction)。 归纳是从特殊到一般的泛化过程,即为从具体的事实中总结出一般的规律。演绎是从一般到特殊的“特化”(specialization)过程,即从基础原理推演出具体状况。 归纳学习有广义和狭义之分,广义的归纳学习相当于从样例中学习,而狭义的归纳学习则要求从训练数据中学得概念,又称为“概念学习”或“概念形成”。

XGBoost参数设置中文版及PXGBoost的Python模块解释

匿名 (未验证) 提交于 2019-12-02 22:56:40
本文来源于XGBoost官方文档 , 原文链接 。 XGBoost参数官方文档: XGBoost Parameters (official guide) 。 XGBoost的Python模块介绍官方文档: Python Package Introduction 命令行参数取决于xgboost的CLI版本 XGBoost参数设置 General Parameters booster 决定使用哪个booster,可以是gbtree,gblinear或者dart。 gbtree和dart使用基于树的模型,而gblinear 使用线性函数. silent 设置为0打印运行信息;设置为1静默模式,不打印 nthread 下面的两个参数不需要设置,使用默认的就好了 num_pbuffer 预测结果缓存大小,通常设置为训练实例的个数。该缓存用于保存最后boosting操作的预测结果。 num_feature 在boosting中使用特征的维度,设置为特征的最大维度 Parameters for Tree Booster eta 范围: [0,1] gamma 在节点分裂时,只有分裂后损失函数的值下降了,才会分裂这个节点。Gamma指定了节点分裂所需的最小损失函数下降值。 这个参数的值越大,算法越保守。这个参数的值和损失函数息息相关,所以是需要调整的。 (设置此参数应该属于预剪枝操作

python逻辑回归

匿名 (未验证) 提交于 2019-12-02 22:54:36
逻辑回归的概念 Python 2016 2017 2016 python , 20161490 图2.2016 #-*- coding: utf-8 -*- import pandas as pd import matplotlib.pyplot as plt data = pd.read_excel("c:/2018/2016myjb.xlsx") print (data) x = data.iloc[:,:8].as_matrix() #行全选,列选下标0-7 print ("x: \n", x) y = data.iloc[:,8].as_matrix()#行全选,列选下标8 print ("y: \n", y) from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR #建立随机逻辑回归模型,筛选变量,特征筛选用了默认阈值0.25 rlr = RLR(selection_threshold=0.25) #训练模型 rlr.fit(x, y) #获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数 rlr.get_support() print(u

BERT是怎样炼成的--词向量发展史

情到浓时终转凉″ 提交于 2019-12-02 21:57:38
基本原理和特性 词向量 预训练词向量对于很多计算机语言模型至关重要。如何得到优质的词向量是非常热门的研究主题。 什么是好的词向量? 反映出语义和语法的复杂特征 适应不同上下文进行变换 历史回顾-如何用向量表示词语? one hot vector 有序词典V,包括n个单词。 每一个单词用长度为n的向量表示。这个向量仅于单词在V词典中索引序号位置为1,其余位置为0。这是一种非常稀疏的向量。 缺点: 1.维度非常高。 2.这种向量无法表示词与词之间的关系,无法衡量相似度。 word2vec 用低维度密集向量表示单词,通常维数为100-300。 在训练过程中,要求计算机学习根据当前单词预测其周围单词。或根据周围单词预测当前单词。 模型收敛后,得到单词与向量映射表。 优点: 1.相比one hot维度变低,利于计算。 2.词向量可以表达词语关系:相同上下文环境的词,会具有相似的向量值。 3.无需人工标注,可以利用丰富的语料库自动抽取特征。 缺点: 1.无法区分近义词与反义词,它们会具有相似的向量。 2.单词和向量是一一对应关系,而实际上单词在不同文本环境下,会具有不同的含义,向量无法适应上下文而变换。如下两句,词朝阳会被用相同的向量表达。 我在朝阳上班。 这是个朝阳行业。 ELMo 论文点我 动态词向量技术,词向量不再用固定的映射表来表达。 ELMo训练出一个神经网络模型,它接受输入一个句子

词向量经典模型:从word2vec、glove、ELMo到BERT

两盒软妹~` 提交于 2019-12-02 21:45:48
前言 词向量技术将自然语言中的词转化为稠密的向量,相似的词会有相似的向量表示,这样的转化方便挖掘文字中词语和句子之间的特征。生成词向量的方法从一开始基于统计学的方法(共现矩阵、SVD分解)到基于不同结构的神经网络的语言模型方法。这里总结一下比较经典的语言模型方法:word2vec、glove、ELMo、BERT。 其中BERT是最新Google发表的模型,在11个经典的NLP任务中全面超越最佳模型,并且为下游任务设计了简单至极的接口,改变了之前花销的Attention、Stack等盖楼似的堆叠结构的玩法,应该属于NLP领域里程碑式的贡献。 word2vec word2vec来源于2013年的论文《Efficient Estimation of Word Representation in Vector Space》,它的核心思想是通过词的上下文得到词的向量化表示,有两种方法:CBOW(通过附近词预测中心词)、Skip-gram(通过中心词预测附近的词): CBOW : 通过目标词的上下文的词预测目标词,图中就是取大小为2的窗口,通过目标词前后两个词预测目标词。具体的做法是,设定词向量的维度d,对所有的词随机初始化为一个d维的向量,然后要对上下文所有的词向量编码得到一个隐藏层的向量,通过这个隐藏层的向量预测目标词,CBOW中的做法是简单的相加,然后做一个softmax的分类

python爬虫---散点图和KNN预测

若如初见. 提交于 2019-12-02 19:04:06
散点图和KNN预测 一丶案例引入 # 城市气候与海洋的关系研究 # 导包 import numpy as np import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplot as plt %matplotlib inline # 使用画图模块时,jupyter工具需要声明 from pylab import mpl # mpl 提供画图的包 mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体 mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题 # 导入数据 ferrara1 = pd.read_csv('./ferrara_150715.csv') ferrara2 = pd.read_csv('./ferrara_250715.csv') ferrara3 = pd.read_csv('./ferrara_270615.csv') # 拼接数据,忽略索引 ferrara=pd.concat([ferrara1,ferrara2,ferrara3],ignore_index=True) # 去除没用的列 faenza.head() city

【转载】【收藏】机器学习与深度学习核心知识点总结

耗尽温柔 提交于 2019-12-02 19:02:56
原文地址: https://cloud.tencent.com/developer/article/1526902 数学 1.列举常用的最优化方法 梯度下降法 牛顿法 拟牛顿法 坐标下降法 梯度下降法的改进型如AdaDelta,AdaGrad,Adam,NAG等。 2.梯度下降法的关键点 梯度下降法沿着梯度的反方向进行搜索,利用了函数的一阶导数信息。梯度下降法的迭代公式为: 根据函数的一阶泰勒展开,在负梯度方向,函数值是下降的。只要学习率设置的足够小,并且没有到达梯度为0的点处,每次迭代时函数值一定会下降。需要设置学习率为一个非常小的正数的原因是要保证迭代之后的x k +1位于迭代之前的值x k 的邻域内,从而可以忽略泰勒展开中的高次项,保证迭代时函数值下降。 梯度下降法只能保证找到梯度为0的点,不能保证找到极小值点。迭代终止的判定依据是梯度值充分接近于0,或者达到最大指定迭代次数。 梯度下降法在机器学习中应用广泛,尤其是在深度学习中。AdaDelta,AdaGrad,Adam,NAG等改进的梯度下降法都是用梯度构造更新项,区别在于更新项的构造方式不同。对梯度下降法更全面的介绍可以阅读SIGAI之前的文章“ 理解梯度下降法 ”。 3.牛顿法的关键点 牛顿法利用了函数的一阶和二阶导数信息,直接寻找梯度为0的点。牛顿法的迭代公式为: 其中H为Hessian矩阵,g为梯度向量

挖掘建模

非 Y 不嫁゛ 提交于 2019-12-02 16:39:33
挖掘建模 经过数据探索于数据预处理,得到了可以直接建模的数据..根据挖掘目标和数据形式可以建立分类与预测,聚类分析,关联规则,时序模式和偏差检测等模型.帮助企业提取数据汇总蕴含得商业价值,提高企业得竞争力. 分类和预测问题得两种主要类型,分类主要是预测分类标号(离散属性),而预测主要是建立连续值函数模型,预测给定自变量对应得因变量得值 实现过程: 分类: 分类是构造一个分类模型,输入样本得属性值,输出对应得类别,将每个样本映射到预先定义好 得类别. 分类模型建立再已有类标记得数据集上,模型再已有样本上得准确率可以方便得计算,所以分类属于有监督得学习. 预测 预测是指建立两种或两种以上变量相互依赖得函数模型(线性回归...),然后进行预测或控制 实现过程: 分类和预测得实行过程类似, 分类算法有两步过程:第一步是学习步,通过归纳分析训练样本集来建立分类规则;第二步是分类步,先用已知得测试样本集评估分类规则得准确率,如果准确率是可以接受的,则使用该模型对未知类标号的待测样本集进行预测. 预测模型的实现也有两步,第一步是通过训练集建立预测属性(数值型)的函数模型,第二步再模型通过检验后进行预测或控制 常用的分类与预测算法 算法名称 算法描述 回归分析 回归分析是确定预测属性(数值型)与其他变量之间相互依赖的定量关系最常用的统计学方法,包括线性回归,非线性回归,Logistic回归,岭回归

集成模型:Stacking

戏子无情 提交于 2019-12-02 16:37:15
0 - 思路   Stacking是许多集成方法的综合。其主要思路如下图所示,通过训练数据训练多个base learners(the first-level learners),这些learners的输出作为下一阶段meta-learners(the second-level learners)的输入,最终预测由meta-learners预测结果得到。 1 - 算法   具体地算法如下图所示(图片引自 博客 )。在第一阶段,采用$K$折交叉验证,首先将训练数据$X_{n\times m}$和对应标签$y_{n}$分成$K$份,训练$K$个base-learners,对于第$i$($i=1,\cdots,K$)个base-learner,将第$i$份数据作为验证集,其余$(K-1)$份数据作为训练集进行训练。而后,将第$i$个base-learners对于各自验证集的预测结果$y_{n_i}^{(i)}$(如图中"Predict"橘红色所示)组合起来,即得到和训练数据规模一样的预测结果$y_{n}^{stage1}$(如图中"Predictions"橘红色所示)。将这个第一阶段的预测结果$y_{n}^{stage1}$以及对应的标签$y_{n}$作为第二阶段的meta-learners的训练数据进行训练即可。   在测试过程中,假设对于测试数据$X_{n\times m}^{test

时间序列方法

懵懂的女人 提交于 2019-12-02 15:52:50
1、时间序列基本规则法-周期因子法 提取时间序列的周期性特征进行预测,参考: 时间序列规则法快速入门 计算周期因子factors 计算base 预测=base*factors 观察序列,当序列存在周期性时,可以用周期因子法做为baseline 在天池竞赛- 资金流入流出预测-挑战Baseline-天池大赛-阿里云天池 ,周期因子可以取得110分+的成绩,排名进500妥妥的。 2、线性回归-利用时间特征做线性回归 提取时间的周期性特点做为特征,此时训练集每条样本为"时间特征->目标值",时间序列的依赖关系被剔除,不需要严格依赖滑窗截取训练样本。常见是将时间用0-1哑变量表达,有以下若干种特征: 将星期转化为了0-1变量,从周一至周天,独热编码共7个变量 将节假日转化为0-1变量,视具体节假日数目,可简单分为两类,"有假日"-"无假日",独热编码共2个变量;或赋予不同编码值,如区分国庆、春节、劳动节等使用1、2、3表示 将月初转化为0-1变量,简单分两类表示为"是月初"-"非月初",共2个特征 类似的月中、月初可以转化为0-1变量 控制时间粒度,区分是weekday or weekend 观察序列,当序列存在周期性时,线性回归也可做为baseline 在天池竞赛- 资金流入流出预测-挑战Baseline-天池大赛-阿里云天池 ,线性回归可以取得100分+的成绩,应该还没到500