预测模型

时间序列分析和预测 (转载)

霸气de小男生 提交于 2019-12-05 12:41:48
一、时间序列及其分解 时间序列(time series)是同一现象在不同时间上的相继观察值排列而成的序列。根据观察时间的不同,时间序列中的时间可以是可以是年份、季度、月份或其他任何时间形式。 时间序列: (1)平稳序列(stationary series) 是基本上不存在趋势的序列,序列中的各观察值基本上在某个固定的水平上波动,在不同时间段波动程度不同,但不存在某种规律,随机波动 (2)非平稳序列(non-stationary series) 是包含趋势、季节性或周期性的序列,只含有其中一种成分,也可能是几种成分的组合。可分为:有趋势序列、有趋势和季节性序列、几种成分混合而成的复合型序列。 趋势(trend):时间序列在长时期内呈现出来的某种持续上升或持续下降的变动,也称长期趋势。时间序列中的趋势可以是线性和非线性。 季节性(seasonality):季节变动(seasonal fluctuation),是时间序列在一年内重复出现的周期波动。销售旺季,销售淡季,旅游旺季、旅游淡季,因季节不同而发生变化。季节,不仅指一年中的四季,其实是指任何一种周期性的变化。含有季节成分的序列可能含有趋势,也可能不含有趋势。 周期性(cyclicity):循环波动(cyclical fluctuation),是时间序列中呈现出来的围绕长期趋势的一种波浪形或振荡式波动。周期性是由商业和经济活动引起的

高移动毫米波系统的深度学习协调波束成形

柔情痞子 提交于 2019-12-05 09:15:34
高移动毫米波系统的深度学习协调波束成形 摘要:支持高移动性的毫米波(mmWave)系统,可实现广泛的重要应用,如车载通信和无线虚拟/增强现实。但是,在实践中意识到这一点需要克服一些挑战。首先, 窄波束的使用和mmWave信号对阻塞的敏感性 极大地影响了高移动链路的 覆盖范围和可靠性 。其次,密集mmWave部署中的高移动用户需要频繁地在基站(BS)之间进行 切换 ,这与关键控制和延迟开销相关。此外,在大型天线阵列mmWave系统中 识别最佳波束成形向量 需要相当大的训练开销,以上都显著影响了这些移动系统的效率。在本文中,开发了一种新颖的集成机器学习和协调波束成形的解决方案,以克服这些挑战并实现高移动性mmWave应用。在所提出的解决方案中,许多分布式协调BSs同时为一个移动用户服务。该用户理想地需要仅使用 全向或准全向波束模式 来发送将在协调BSs处联合接收的一个 上行链路训练导频序列 。这些接收的信号不仅为用户位置绘制了定义签名,而且还为其与周围环境的交互绘制了定义签名。然后,开发的解决方案利用深度学习模型来学习如何使用这些签名来预测BSs处的波束成形向量。这提供了一个全面的解决方案,支持具有可靠覆盖,低延迟并且可忽略的训练开销的高移动mmWave应用程序。基于精确射线追踪的广泛仿真结果表明

机器学习算法介绍

不打扰是莪最后的温柔 提交于 2019-12-05 05:16:35
转载:https://blog.csdn.net/xiaochendefendoushi/article/details/81905111 在机器学习领域,有种说法叫做“世上没有免费的午餐”,简而言之,它是指没有任何一种算法能在每个问题上都能有最好的效果,这个理论在监督学习方面体现得尤为重要。 举个例子来说,你不能说神经网络永远比决策树好,反之亦然。模型运行被许多因素左右,例如数据集的大小和结构。 因此,你应该根据你的问题尝试许多不同的算法,同时使用数据测试集来评估性能并选出最优项。 当然,你尝试的算法必须和你的问题相切合,其中的门道便是机器学习的主要任务。打个比方,如果你想打扫房子,你可能会用到吸尘器、扫帚或者拖把,但你肯定不会拿把铲子开始挖坑吧。 对于渴望了解机器学习基础知识的机器学习新人来说,这儿有份数据科学家使用的十大机器学习算法,为你介绍这十大算法的特性,便于大家更好地理解和应用,快来看看吧。 1. 线性回归 线性回归可能是统计学和机器学习中最知名和最易理解的算法之一。 由于预测建模主要关注最小化模型的误差,或者以可解释性为代价来做出最准确的预测。 我们会从许多不同领域借用、重用和盗用算法,其中涉及一些统计学知识。 线性回归用一个等式表示,通过找到输入变量的特定权重(B),来描述输入变量(x)与输出变量(y)之间的线性关系。 Linear Regression 举例:y

Sklearn K均值聚类

时光怂恿深爱的人放手 提交于 2019-12-04 23:16:34
## 版权所有,转帖注明出处 章节 SciKit-Learn 加载数据集 SciKit-Learn 数据集基本信息 SciKit-Learn 使用matplotlib可视化数据 SciKit-Learn 可视化数据:主成分分析(PCA) SciKit-Learn 预处理数据 SciKit-Learn K均值聚类 SciKit-Learn 支持向量机 SciKit-Learn 速查 到目前为止,我们已经非常深入地了解了数据集,并且把它分成了训练子集与测试子集。 接下来,我们将使用聚类方法训练一个模型,然后使用该模型来预测测试子集的标签,最后评估该模型的性能。 聚类(clustering)是在一组未标记的数据中,将相似的数据(点)归到同一个类别中的方法。聚类与分类的最大不同在于分类的目标事先已知,而聚类则不知道。K均值聚类是聚类中的常用方法,它是基于点与点的距离来计算最佳类别归属,即靠得比较近的一组点(数据)被归为一类,每个聚类都有一个中心点。 我们首先创建聚类模型,对训练子集进行聚类处理,得到聚类中心点。然后使用模型预测测试子集的标签,预测时根据测试子集中的点(数据)到中心点的距离来进行分类。 创建模型 示例 创建聚类模型。 import numpy as np from sklearn import datasets # 加载 `digits` 数据集 digits =

集成学习

徘徊边缘 提交于 2019-12-04 15:17:45
集成学习 集成学习通过构建并结合多个学习器来完成学习任务。 集成学习的思路是通过合并多个模型来提升机器学习性能,这种方法相较于当个单个模型通常能够获得更好的预测结果。这也是集成学习在众多高水平的比赛如奈飞比赛,KDD和Kaggle,被首先推荐使用的原因。 分类 用于减少方差的bagging 用于减少偏差的boosting 用于提升预测结果的stacking 集成学习方法也可以归为如下两大类: 1 串行集成方法,这种方法串行地生成基础模型(如AdaBoost)。串行集成的基本动机是利用基础模型之间的依赖。通过给错分样本一个较大的权重来提升性能。 2 并行集成方法,这种方法并行地生成基础模型(如Random Forest)。并行集成的基本动机是利用基础模型的独立性,因为通过平均能够较大地降低误差。 Bagging和Boosting的区别? 样本选择: Bagging: 训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。 Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。 样例权重: Bagging: 使用均匀取样,每个样例的权重相等。 Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。 预测函数: Bagging: 所有预测函数的权重相等。 Boosting

使用ML.NET进行自定义机器学习

天大地大妈咪最大 提交于 2019-12-04 12:12:29
ML.NET 是Microsoft最近发布的用于机器学习的开源,跨平台,代码优先的框架。 尽管对我们来说是一个新的框架,但该框架的根源是Microsoft Research,并且在过去十年中已被许多内部团队使用,包括那些您几乎肯定听说过的产品的开发人员-Microsoft Windows,Office和Bing,仅举几例。 ML.NET使.NET开发人员可以轻松地将机器学习集成到其应用程序中,无论是控制台,桌面还是Web。 它涵盖了机器学习活动的整个生命周期,从模型的训练和评估到使用和部署。 支持许多典型的有监督和无监督机器学习任务,包括 分类 , 回归 , 推荐 和 聚类 。 该框架还与 TensorFlow 集成 ,使.NET开发人员能够从熟悉的环境调用深度学习模型(适用于诸如对象检测或语音分析之类的任务)。 为什么选择ML.NET? 如今,在为我们的应用程序添加机器学习或AI功能的选项方面,我们总是无所适从。 借助NuGet包和仅几行代码,我们就可以利用Azure认知服务的强大功能以高度的准确性和性能执行情感分析,对象检测和OCR等复杂任务。 微软确实做了令人难以置信的工作,使各种经验的开发人员都可以使用这些工具。 ML.NET如何适合? 您可以使用ML.NET来执行许多与Azure一样的机器学习任务。 但是,作为一个高度可配置的基于代码的框架,它肯定会花费多行代码。

模型评价指标:AUC

一笑奈何 提交于 2019-12-04 10:57:46
参考链接: https://www.iteye.com/blog/lps-683-2387643 问题: AUC是什么 AUC能拿来干什么 AUC如何求解(深入理解AUC) AUC是什么 混淆矩阵(Confusion matrix) 混淆矩阵是理解大多数评价指标的基础,毫无疑问也是理解AUC的基础。丰富的资料介绍着混淆矩阵的概念,这里用一个经典图来解释混淆矩阵是什么。 显然,混淆矩阵包含四部分的信息: 1. True negative(TN),称为真阴率,表明实际是负样本预测成负样本的样本数 2. False positive(FP),称为假阳率,表明实际是负样本预测成正样本的样本数 3. False negative(FN),称为假阴率,表明实际是正样本预测成负样本的样本数 4. True positive(TP),称为真阳率,表明实际是正样本预测成正样本的样本数 对照着混淆矩阵,很容易就能把关系、概念理清楚,但是久而久之,也很容易忘记概念。不妨我们按照位置前后分为两部分记忆,前面的部分是True/False表示真假,即代表着预测的正确性,后面的部分是positive/negative表示正负样本,即代表着预测的结果,所以,混淆矩阵即可表示为 正确性-预测结果 的集合。现在我们再来看上述四个部分的概念(均代表样本数,下述省略): 1. TN,预测是负样本,预测对了 2. FP

L0、L1、L2范数正则化

无人久伴 提交于 2019-12-04 10:46:46
参考资料(要是对于本文的理解不够透彻,必须将以下博客认知阅读,方可全面了解LR): (1). https://zhuanlan.zhihu.com/p/74874291 (2). 逻辑回归与交叉熵 (3). https://www.cnblogs.com/pinard/p/6029432.html (4). https://zhuanlan.zhihu.com/p/76563562 (5). https://www.cnblogs.com/ModifyRong/p/7739955.html 一、逻辑回归介绍   逻辑回归(Logistic Regression)是一种广义线性回归。线性回归解决的是回归问题,预测值是实数范围,逻辑回归则相反,解决的是分类问题,预测值是[0,1]范围。所以逻辑回归名为回归,实为分类。接下来让我们用一句话来概括逻辑回归(LR): 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。 这句话包含了五点,接下来一一介绍: 逻辑回归的假设 逻辑回归的损失函数 逻辑回归的求解方法 逻辑回归的目的 逻辑回归如何分类 二、逻辑回归的假设 任何的模型都是有自己的假设,在这个假设下模型才是适用的。 逻辑回归的第一个基本假设是假设数据服从伯努利分布。 伯努利分布:是一个离散型概率分布,若成功,则随机变量取值1;若失败

K-近邻算法(KNN)

a 夏天 提交于 2019-12-04 08:13:05
K-近邻算法 K-K个 N-nearest-最近 N-Neighbor 来源:KNN算法最早是由Cover和Hart提出的一种分类算法 定义 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。 距离公式 两个样本的距离可以通过如下公式计算,又叫欧式距离 KNN算法流程总结 根据K个邻居判定你的类别 1.计算当前样本与所有样本距离 2.距离从小到大排序 3.取前K个邻居 4.K个邻居投票,统计投票结果(A,B) 5.根据投票结果值出现频率高类别作为最终类别 K近邻算法api初步使用 机器学习流程 1.获取数据 2.数据基本处理 3.特征工程 4.建立模型   1.KNN算法 5.模型评估 Scikit-learn工具介绍 Python语言的机器学习工具 Scikit-learn包括许多知名的机器学习算法的实现 Scikit-learn文档完善,容易上手,丰富的API 目前稳定版本0.19.1-?? 安装: pip3 install scikit-learn==0.19.1注:安装scikit-learn需要Numpy, Scipy等库 Scikit-learn 包含的内容 分类、聚类、回归 特征工程 模型选择、调优 K-近邻算法API sklearn.neighbors.KNeighborsClassifier(n

朴素贝叶斯进行新闻分类

拈花ヽ惹草 提交于 2019-12-04 06:52:35
数据来源 通过爬虫,爬取腾讯新闻三个分类每个分类大约1000条左右数据,存入excel 以上是大体的数据,三列分别为title、content、class;由于这里讲的的不是爬虫,爬虫部分省略 项目最终结构 其中主要逻辑在native_bayes.py文件中实现,utils.py为部分工具函数,tr_model.m为tf_idf模型,train_model为我们用朴素贝叶斯训练出来的分类模型。110.txt为预测时的文章内容 使用 通过run方法,来训练一个模型,predict方法去预测输入新闻的类别,代码的大部分解释都在注释里 代码实现 native_bayes.py 1 import os 2 import pandas as pd 3 from sklearn.feature_extraction.text import TfidfVectorizer 4 from sklearn.model_selection import train_test_split 5 from sklearn.naive_bayes import MultinomialNB 6 from sklearn.externals import joblib 7 8 from two_naive_bayes.utils import cut_word, rep_invalid_char 9 10 11