R语言是进行数学分析非常好的工具,所以对R语言介绍前,首先对数据分析进行一些思路的梳理:

数据分析流程:

1. 定义研究问题

定义理想的数据集

确定能够获取什么数据

获取数据

清理数据

2. 探索性分析(数据可视化)

统计分析、建模(机器学习)等

3. 解释/交流结果(数据可视化)

挑战结果

书写报告

数据分析的根本在于数据,而探索性分析是我们当今研究的重点,其多涉及机器学习的理论部分。

就数据来说,数据变量类型分为两种:

数值(quantitative): 连续、离散 -> 运算

分类(qualitative): 无序、有序 -> 非运算

基于数据我们的分析过程多是基于数据间的关系(当然也会有像序列分析这样貌似没关系的),根据数据类型划分,一般会根据实际分析场景,看是两个数值变量、或两个分类变量、或一数值变量一分类变量间的关系来选取分析方法。

数据可视化在分析过程中起着非常重要的作用,它让数据更直观地展示出来,从而引导研究者的猜测和实验过程。

1.数值变量的特征和可视化

数据集中趋势的测量

均值(mean)、中位数(median)、众数(mode)

数据分散趋势的测量

值域(range:max-min)、方差(variance)、标准差(standard variance)、四位分距(interquartile range)

稳健统计量(robust statistics)受极端值影响小

是: 中位数、四分位差

否: 均值、标准差、值域

一个变量的可视化

柱状图(histogram)、点图(dot plot)、箱图(box plot)

两个变量的关系(可视化)

散点图(scatter plot)

2.分类变量的特征和可视化

一个变量的可视化

频率表(frequency table)、条形图(bar plot)

两个变量的关系(可视化)

关联表(contingency table)、相对频率表(relative frequencies)

分段条形图、相对频率分段条形图

马赛克图(mosaicplot)

3.另:

一个分类变量、一个数值变量的关系(可视化)

并排箱图(side-by-side box plot)

R语言是一个免费开源的用于统计计算和统计绘图的优秀工具。在windows环境下进行R语言的开发,RStudio是一个非常简约好用的工具。R语言对数据可视化的支持非常好,它有三大绘图系统:基本绘图系统,Lattice绘图系统,ggplot2绘图系统。

1.基本绘图系统

绘图函数(graphics包):plot/hist/boxplot/points/lines/text/title/axis

plot()

plot(x, y, ...)

重要参数:xlab/ylab/lmd/lty/pch/col

par()

用于设置全局参数(作用于R中所有plot绘图)

bg/mar/las/mfrow/mfcol

这些参数可以在每次plot之前进行修改

2.lattice绘图系统

绘图函数

lattice包:xyplot/bwplot/histogram/stripplot/dotplot/splom/levelplot/contourplot

xyplot(y~x|f*g, data)

panel函数,用于控制每个面板内的绘图

grid包

实现了独立于base的绘图系统

lattice包是基于grid创建的;很少直接从grid包调用函数

lattice与base的重要区别

base绘图函数直接在图形设备上绘图

lattice绘图函数返回trellis类对象,打印函数真正执行了设备上的绘图

3.ggplot2绘图系统

绘图函数

qplot()

ggplot() //核心

PAC理论:

机器学习理论中主要涉及的计算学习理论有两种:PAC理论和VC维,它们的目的是为了分析学系任务的困难本质,为学习算法提供理论保证,并根据分析结果知道算法设计的。

这里面VC维较PAC理论的来说深度更深,且涉及数学基础要特别好,之后有机会我会进行一篇文章的介绍。

PAC理论指“概率近似正确”学习理论,Probably Approximately Correct。

定义“概念”为样本空间X到标记空间Y的映射(可以理解为一个函数关系)。如果概念c对于任何样本(x, y)都满足了c(x) = y,那么c就是一个“目标概念”。我们希望学到的目标概念的集合,称为“概念类”。

而对于给定的学习算法,它的输入除了数据外,还要给其设定“假设空间”,“假设空间”指的是学习算法会考虑的所有概念的集合。而学习算法的目的或行为,就是从假设空间中提取出近似概念类的集合。

为什么说是“近似”呢?当然是机器学习就是有其自身的限制,哪怕是单单给定训练集的大小不同,训练结果都可能差距很大。那么PAC理论所提及的就是“希望有比较大的把握可以学到比较好的模型”,也可以说在满足了能接受的误差的基础上,学到好的模型的概率达到一定程度。

PAC辨识:对于给定的误差上限a和置信概率b,有P(假设类的泛化误差<=a)>=1-b

PAC可学习:对于给定的误差上限a和置信概率b,数据本身的福在读size(x),目标概念的复杂度size(c),给定的训练集样本数量m要大于poly(1/a,1/b,size(x),size(c))

PAC学习算法指满足PAC可学习的基础上,学习算法运行时间也满足poly(1/a,1/b,size(x),size(c))同阶

一般来说,size(x)越大,学习越准,size(c)越大,学习越慢,二者又同时与学习计算时间相关,PAC理论给我们的启示在于,如何能再设计算法时恰好的到“恰PAC可学习”,这是一门非常大的学问,以至于计算过程不需要完全依赖于机器。

之后希望有一篇文章能写好VC维的理论,它直接从数学角度分析了学习过程的复杂程度等问题,希望对大家有用。

1.《[r语言如何计算运行时间]r语言如何运行代码?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《[r语言如何计算运行时间]r语言如何运行代码?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3301312.html