R语言学习笔记(1)——安装与示例演示

hxy    2019-06-13 11:08

        首先声明,这是一篇随机游走式的学习笔记,不定期更新,欢迎各位小伙伴及时指正,别走得太跑偏
安装记录        
        R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。简单介绍一下安装过程,首先去下载安装包,清华大学的镜像地址:https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/base/R-3.6.3-win.exe
下载之后,右键以管理员方式打开。

然后选择安装语言,

直接下一步。

选择安装位置,建议不要选C盘,要不然安装扩展包可能有权限问题。

默认安装就行,我的电脑是64位的,所以就取消了安装32位环境。

剩下的接受默认安装就行了。

至此,R语言环境就安装好了。
===============================================
        学习R语言,开始于搜索了一个forecast包,然后看了看介绍:

The R package forecast provides methods and tools for displaying and analysing univariate time series forecasts including exponential smoothing via state space models and automatic ARIMA modelling. You can install the stable version from CRAN

install.packages('forecast', dependencies = TRUE)

打开Rstudio, 输入上面的安装命令,就可以安装forecast包了。可能需要选择镜像,选一个距离比较近的就好了,


以下命令可以略过,如果想要安装最新的开发版环境,可以从Github直接安装。

You can install the development version from Github

# install.packages("devtools")
devtools::install_github("robjhyndman/forecast")

使用方法

先看一个示例:
library(forecast)
library(ggplot2)

# ETS forecasts
USAccDeaths %>%
  ets() %>%
  forecast() %>%
  autoplot()
Fig.1 Foreast from EST

这段代码就是一个库里也有的数据进行预测的结果,前两行代表分别引用 forecast 库和 ggplot2 库,ggplot2 用于画图,效果比较优雅,安装过程同上,顺便提一句:只要遇到没有安装过的包,都可以通过 install.packages("库名称") 就可以了。个别时候,可能会报错,基本上是由于网络原因导致的,多换一换比较新的镜像就可以了。
=================================
而后,系统地学习了一些模型。

预测分析是一个广泛应用在各个领域的科学方法,小到垃圾邮件、搜索引擎的单词自动补全,大到社会经济增长人口规模预测,社会老龄化问题分析等等。广义上来讲,预测的模型可以写作如下的式子:

 \[\hat{Y} = \hat{f}(X_1, X_2, ..., X_n)\] 其中 \(\hat{Y}\) 是预测函数的输出,\(\hat{f}\) 表示预测函数,\(X_1, X_2, ..., X_n\) 表示观测数据。建模的过程就是创建一个函数来预测数量值,并使它产生的相对目标函数的误差最小化。

  • kNN模型:如果要对之前没有见过的数据点进行预测,就要在原始训练集中找出 \(k\) 个和新数据集最相似的观测数据,然后可以针对已知的这 kk 个邻居的目标函数值,利用某种求平均值的技术来计算一个预测值。例如,给定待预测的鸢尾花的特征数据,然后在已知样本中找出特征距离最近的 kk 个数据,然后把票数最多的种类作为最终预测的结果。KNN经常被称为一种惰性学习方法(lazy learner), 因为,实际上只是记住了训练数据,并在预测过程中直接使用。

模型的分类:

  • 有监督:训练集中包含所有观测数据的输出变量值。
  • 无监督:训练集中的输出变量不明确。
  • 半监督:利用一部分(通常很少)包含输出变量值而其他部分完全无标签的数据进行训练。
  • 强化学习模型:无法直接获得输出变量,但提供了其他和输出变量直接关联的信息。

特征变换:

1. Z评分归一化

 \[x_{z-score} = \frac{x-E(x)}{\sqrt{Var(x)}}\] E(x)E(x)是的期望或均值,标准差 Var(x)Var(x) 是的方差的平方根,这种变换的结果是新的特征将以0为中心,方差为1。

2. 按比例缩放的归一化

 \[x_{unit-interval} = \frac{x-min(x)}{max(x)-min(x)}\] 

3. Box-Cox Transformation (博克斯 – 考克斯变换) [1]:

 \[x_{box-cox} = \frac{x^\lambda - 1}{\lambda}\] 

因为 λ\(\lambda\) 是在分母里,所以不能为0。实际上,\(\lambda\)趋近于零的结果是 \(ln(x)\)

————————@version 2019-6-18 00:01:50————————

线性回归:输出变量是通过输入特征的一个线性加权组合来预测的,示例:

 \[\hat{y} = \beta_1x + \beta_0\] 其中,\(\beta\) 表示的项是模型的参数,被称为回归系数(regression coefficient)。\(\beta_0\) 被称为截距(intercept)。我们通常把一个特征(因而两个回归系数)的情况称为简单线性回归,两个或多个特征的情况称为多元线性回归

————————@version 2019-6-20 22:10:57————————
如果遇到有问题的特征,可以使用R语言里的cor()函数计算每一对特征的相关系数,caret组件提供了findCorrelation()函数,它把相关系数矩阵作为输入,还可以指定特征配对的相关四叔的绝对值指定一个阈值的crtoff 参数,返回值是一个向量(长度可能为0),该向量会显示由于相关性而需要从该数据里删除的列。cutoff的默认设置是0.9.

消除相关性的另一种方法是对整个特征空间进行完全的变换,例如很多降维方法里的主成分分析(Principal Component Analysis, PCA)和奇异值分解(SingularValueDecomposition, SVD)。类似的, 还会需要删除互相为线性组合的特征。

  • PCA:创建一个输入特征的新集合,它被称为主成分,这个集合中全部都是输入特征的线性组合。对于第一个主成分,要选取线性组合的权值,以便能够获取数据中的最大的变异。如果把第一个主成分看作原始特征空间的一条直线,它应该是上面的数据变异最大的一条直线,还恰好是最接近原始特征空间上所有点的一条先,后续的每个主成分选择要尽可能获取最大变异的一条直线,但需满足新的主成分和之前的主成分不相关。
=====
参考资料:
  1. Box G E P, Cox D R. An Analysis of Transformations[J]. Journal of the Royal Statistical Society, 1964, 26(2):211-252.
  2. https://cran.r-project.org/web/packages/forecast/forecast.pdf
  3. https://www.rdocumentation.org/packages/forecast/versions/8.7

 

 

Last Modified: 2020-04-17 21:20
Views: 2.3K

[[total]] comments

Post your comment
  1. [[item.time]]
    [[item.user.username]] [[item.floor]]Floor
  2. Click to load more...
  3. Post your comment