【机器学习与R语言】1-机器学习简介
1.基本概念
- 机器学习:发明算法将数据转化为智能行为
- 数据挖掘 VS 机器学习:前者侧重寻找有价值的信息,后者侧重执行已知的任务。后者是前者的先期准备
- 过程:数据——>抽象化——>一般化。或者:收集数据——推理数据——归纳数据——发现规律
抽象化: - 训练:用一个特定模型来拟合数据集的过程
- 用方程来拟合观测的数据:观测现象——数据呈现——模型建立。通过不同的格式来把信息概念化
一般化: - 一般化:将抽象化的知识转换成可用于行动的形式
- 采用启发式算法(利用相近原理和其他一些经验法则)来划分概念集合,但不能保证找到对数据建模的最优概念集,有时会导致错误结论
- 算法偏差:算法的结论是系统性的不准确。偏差是任何机器学习任务的抽象化和一般化这两个过程相联系的不可避免的谬误,一般化的最后一步就是在存在偏差的情况下判断模型的成功性。由于数据中的噪声或无法解释的波动导致模型不能完美的一般化
- 过拟合问题的基础:试图用模型拟合噪声(噪声无法解释,解释就会出错)
- 过拟合:一个模型训练时表现好,测试时很差。过度拟合了训练集,即不能很好地一般化
2.选择机器学习算法
- 机器学习步骤:
收集数据——探索和准备数据(80%时间)——训练模型——评价模型性能——改进模型性能 - 没有免费午餐定理:没有一种机器学习方法对所有环境都是最好的
- 输入数据:案例example,特征feature。一般行为案例,列为特征(与基因表达数据相反)
- 算法分类:监督学习算法(用于预测模型),非监督学习(用于描述模型)
- 有监督学习:监督不是人为干预,而是让目标值监督,告诉学习任务。分类变量可用于分类(类可能有多个水平),数值型数据可建立回归模型预测
- 无监督学习:没有一个明确的学习目标(属性无轻重之分),在数据挖掘中更常用。如购物商品之间联系的购物篮分析(捆绑销售)。描述性模型把数据同类型分组称之聚类。
- 常见有监督学习算法:
分类:K近邻,朴素贝叶斯,决策树,分类器
数值预测:线性回归,回归树,模型树
分类和数值预测:神经网络,支持向量机 - 常见无监督学习算法:
模式识别:关联规则
聚类:K均值聚类 - 模型的选择是带有随机性的。当预测准确性是主要考虑因素时,需要测试多个模型,然后选择一个最好的。
3.使用R进行机器学习
- CRAN收录的机器学习R包:https://cran.r-project.org/web/views/MachineLearning.html
- RWeka包:基于Java平台的R使用机器学习算法的函数集合
install.packages("RWeka")
library(RWeka)
- R管理数据
save(x,y,z,file='mydata.RData')
load('mydata.RData')
save.image() #立刻结束当前R绘画,写入.RData文件中
- 探索和理解数据
str(data)
summary()
mean()
median()
IQR() #四分位距,Q1与Q3之差,体现数据分散程度
quantile() #返回5数
quantile(data$price, probs=c(0.01,0.99)) #第1和第99百分位数
quantile(data$price, seq(from=0, to=1, by=0.2))
#可视化
boxplot()
hist()
- 均值比中位值对极端值(异常值)更敏感
- 偏度(skew):比如,右偏是右边比左边更为分散(不要理解反了)
- 均匀分布:所有值等可能发生。并非所有随机事件都服从均匀分布
- 衡量数据分散程度:方差var或标准差sd(方差平方根),var越大表在均值附近越分散,sd平均来看每个值和均值相差多少
var()
sd()
- 68-95-99.7规则(经验法则):正态分布中68%的值落在均值左右1个标准差的范围内,而95%和99.7%的值各自落在均值左右2个和3个标准差的范围内。数值落在均值的3个标准差以外是极端罕见事件。
- 分类变量探索:
table()
prop.table()
- 变量间关系探索
plot(x,y)
# 并非所有关联都成直线
二元指示变量(哑变量):如汽车有9种颜色分为2组,一组保守色,一组非保守色,指示变量可分别设为1和0
双向交叉表/列联表:
library(gmodels)
CrossTable(x,y) #chisq = TRUE获取卡方检验结果,概率值越小,说明两个变量相关越大
CrossTable的输出示例:
机器学习与R语言系列推文汇总:
【机器学习与R语言】1-机器学习简介
【机器学习与R语言】2-K近邻(kNN)
【机器学习与R语言】3-朴素贝叶斯(NB)
【机器学习与R语言】4-决策树
【机器学习与R语言】5-规则学习
【机器学习与R语言】6-线性回归
【机器学习与R语言】7-回归树和模型树
【机器学习与R语言】8-神经网络
【机器学习与R语言】9-支持向量机
【机器学习与R语言】10-关联规则
【机器学习与R语言】11-Kmeans聚类
【机器学习与R语言】12-如何评估模型的性能?
【机器学习与R语言】13-如何提高模型的性能?
【机器学习与R语言】1-机器学习简介的更多相关文章
- 【机器学习与R语言】13- 如何提高模型的性能?
目录 1.调整模型参数来提高性能 1.1 创建简单的调整模型 2.2 定制调整参数 2.使用元学习来提高性能 2.1 集成学习(元学习)概述 2.2 bagging 2.3 boosting 2.4 ...
- 【机器学习与R语言】12- 如何评估模型的性能?
目录 1.评估分类方法的性能 1.1 混淆矩阵 1.2 其他评价指标 1)Kappa统计量 2)灵敏度与特异性 3)精确度与回溯精确度 4)F度量 1.3 性能权衡可视化(ROC曲线) 2.评估未来的 ...
- 【机器学习与R语言】11- Kmeans聚类
目录 1.理解Kmeans聚类 1)基本概念 2)kmeans运作的基本原理 2.Kmeans聚类应用示例 1)收集数据 2)探索和准备数据 3)训练模型 4)评估性能 5)提高模型性能 1.理解Km ...
- 【机器学习与R语言】10- 关联规则
目录 1.理解关联规则 1)基本认识 2)Apriori算法 2.关联规则应用示例 1)收集数据 2)探索和准备数据 3)训练模型 4)评估性能 5)提高模型性能 1.理解关联规则 1)基本认识 购物 ...
- 【机器学习与R语言】9- 支持向量机
目录 1.理解支持向量机(SVM) 1)SVM特点 2)用超平面分类 3)对非线性空间使用核函数 2. 支持向量机应用示例 1)收集数据 2)探索和准备数据 3)训练数据 4)评估模型 5)提高性能 ...
- 【机器学习与R语言】8- 神经网络
目录 1.理解神经网络 1)基本概念 2)激活函数 3)网络拓扑 4)训练算法 2.神经网络应用示例 1)收集数据 2)探索和准备数据 3)训练数据 4)评估模型 5)提高性能 1.理解神经网络 1) ...
- 【机器学习与R语言】7-回归树和模型树
目录 1.理解回归树和模型树 2.回归树和模型树应用示例 1)收集数据 2)探索和准备数据 3)训练数据 4)评估模型 5)提高模型性能 1.理解回归树和模型树 决策树用于数值预测: 回归树:基于到达 ...
- 【机器学习与R语言】6-线性回归
目录 1.理解回归 1)简单线性回归 2)普通最小二乘估计 3)相关系数 4)多元线性回归 2.线性回归应用示例 1)收集数据 2)探索和准备数据 3)训练数据 4)评估模型 5)提高模型性能 1.理 ...
- 【机器学习与R语言】5-规则学习算法
目录 1.分类规则原理 1.1 1R单规则算法 1.2 RIPPER算法 2. 规则学习应用示例 1)收集数据 2)探索和准备数据 3)训练数据 4)评估性能 5)提高性能 6)选择决策树中的分类规则 ...
随机推荐
- spring、spring boot中配置多数据源
在项目开发的过程中,有时我们有这样的需求,需要去调用别的系统中的数据,那么这个时候系统中就存在多个数据源了,那么我们如何来解决程序在运行的过程中到底是使用的那个数据源呢? 假设我们系统中存在2个数据源 ...
- 2021.9.20考试总结[NOIP模拟57]
(换个编辑器代码就SB地不自动折叠了.. T1 2A 考察快读的写法. $code:$ T1 #include<bits/stdc++.h> #define scanf SCANF=sca ...
- Python爬虫之爬取淘女郎照片示例详解
这篇文章主要介绍了Python爬虫之爬取淘女郎照片示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本篇目标 抓取淘宝MM ...
- 要想玩转FPGA,按这4个步骤来
FPGA 作为一种高新技术,由于其结构的特殊性,可以重复编程,开发周期较短,越来越受到电子爱好者的青睐,其应用已经逐渐普及到了各行各业.因此,越来越多的学生或工程师都希望跨进FPGA的大门掌握这门技术 ...
- 求树的直径【两遍BFS】
两遍BFS.从任意一个点出发,第一遍可以找到直径的一端,从这端出发即可找到另外一端. 证明:从U点出发,到达V[画个图便清晰了] 1.如果U在直径上,则V一定是直径的一个端点. 2.如果U不在直径上. ...
- (一)FastDFS 高可用集群架构学习---简介
1.什么是FastDFS FastDFS 是余庆老师用c语言编写的一筐开源的分布式文件系统,充分考虑了冗余备份,负载均衡,线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS可以很容易搭建一 ...
- 通过silky框架在.net平台构建微服务应用
目录 必要前提 使用Web主机构建微服务应用 使用.NET通用主机构建微服务应用 构建具有websocket服务能力的微服务应用 构建Silky微服务网关 开源地址 在线文档 在线示例 必要前提 (必 ...
- PTA 列车调度 (25分)
PTA 列车调度 (25分) [程序实现] #include<bits/stdc++.h> using namespace std; int main(){ int num,n; cin& ...
- 2021 陇剑杯wp
前言 这比赛应该叫应急响应比赛,而且flag交三次就不能交了,就因为我交错一道题然后差一道进线下,气死了. Jwt 2.1 jwt 题目提示 2.2 搜索username得到 10087#admin ...
- 第三课 Dubbo设计中的设计模式
责任链模式 责任链模式在Dubbo中发挥的作用举足轻重,就像是Dubbo框架的骨架.Dubbo的调用链组织是用责任链模式串连起来的. 责任链中的每个节点实现Filter接口,然后由ProtocolF ...