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-如何提高模型的性能?