网站运营和维护都是干什么的,整合营销的四个层次,奉节做网站,大宗商品交易平台推荐看书标记——R语言 Chapter 1 模式的数据挖掘1.1 聚类分析1.1.1 k-means聚类用法示例 1.1.2 k-medoids聚类用法示例1.1.3 分层聚类用法示例 1.1.4 期望最大化#xff08;EM#xff09;用法示例 1.1.5 密度估计用法示例 1.2 异常检测1.2.1 显示异常值示例 1示例 2示例 3 1.2.2… 看书标记——R语言 Chapter 1 模式的数据挖掘1.1 聚类分析1.1.1 k-means聚类用法示例 1.1.2 k-medoids聚类用法示例1.1.3 分层聚类用法示例 1.1.4 期望最大化EM用法示例 1.1.5 密度估计用法示例 1.2 异常检测1.2.1 显示异常值示例 1示例 2示例 3 1.2.2 计算异常值示例 1用name函数创建异常示例 2DMwR中的lofactor函数 1.3 关联规则购物篮分析用法示例 【数据科学R语言实战 1】 Chapter 1 模式的数据挖掘
1.1 聚类分析
1.1.1 k-means聚类
步骤 1从数据中选取k随机行质心 2使用Lloyd’s算法确定集群 3与质心的距离对每个数据点进行分配 4将质心重新用与其相关的所有点的平均值代替 5对与质心距离最近的数据重新分配 6循坏3、4直到数据不再分配 第三步表示k-means无法与相当稀疏的数据或者有较多异常值的数据一起工作另外集群最好有线性形状。
用法
kmeans()
参数 x 待分析的数据矩阵 centers 集群数量 iter.max 最大迭代次数 nstart 随机集的使用次数 algorithm 算法Hartigan-Wong、Lloyd、Forgy、MacQueen. trace跟踪信息属性 cluster集群分配 centers集群中心 totss总平方和 withinss每个聚类平方和的向量 tot.withinss距离平方和总量 betweenss聚类组间平方和 size每个聚类的数据点数量 iter执行迭代的次数 ault专家诊断
示例
x - rbind(matrix(rnorm(100, sd 0.3), ncol 2),matrix(rnorm(100, mean 1, sd 0.3), ncol 2))
x
fit - kmeans(x,10)
fit
#碎石图选集群数
results -matrix(nrow14,ncol2,dimnameslist(2:15,c(clusters,sumsquares)))
for(1 in 2:15){fit-kmeans(x,i)results[i-1,1]-iresults[i-1,2]-fit$totss}plot(results)cluster means用于集群分配的平均值的分解 cluster vector将100个数分配的集群 cluster sum of squares总平方和94.6%是拟合度的表现。
1.1.2 k-medoids聚类
用法
pam()
参数 x 待分析的数据矩阵基于diss标记 k 集群数量 diss FALSEx是矩阵TRUEx是相异度矩阵 metric euclidean欧几里得、manhattan曼哈顿距离 medoids 如果分配到了NULL就需要开发一组medoids否则这是一组初步medoids. stand 使用x的度量标准化 cluster.only TRUE返回聚类 do.swap 0、1是否进行交换 keep.diss 0、1是否保存相异点在结果中 keep.data 0、1是否保留数据在结果中 trace.lev 跟踪级别0表示无跟踪信息
示例
medoids.csv数据
library(cluster)
x - read.table(“medoids.csv”, headerTRUE, sep,)
result - pam(x, 2, FALSE, euclidean) ##medoids函数
resultsummary(result)
plot(result$data, col result$clustering)medoids指定使用第3行和第6行 clustering vector聚集群 objective function展示构建阶段和交换阶段的函数值
1.1.3 分层聚类
聚合法和分裂法
用法
hclust()
参数 d 矩阵 method 附聚法“ward.D/ward.D2/single/complete/average/mcquitty/median/centroid”
示例
dat - matrix(rnorm(100), nrow10, ncol10) #以正态数据为例
dat
hc - hclust(dist(dat));hc
plot(hc)1.1.4 期望最大化EM
mclust函数包里的Mclust函数基于模型的聚类、分类、密度估计、贝叶斯正则化等通过EM算法拟合正态混合模型
用法
Mclust
参数 data 矩阵 G 使用的集群数量的向量用于BIC默认值为19 modelNames 使用的模型名称的向量。当Mclust函数试图决定哪个项目属于某一集群时函数就会使用模。单变量混合、多变量混合、单一分量数据集有不同的模型名称。E:等方差V:变量方差. prior 平均值的可选共轭先验 control EM 的控制参数列表默认为List
示例
install.packages(“mclust”)
library(mclust)
data - read.csv(http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data) ##iris数据
fit - Mclust(data) ##用EM计算最优匹配
fit
summary(fit)
plot(fit)log.likelihoodBIC数值的对数似然值 n数据量 df自由度 BIC最优贝叶斯信息准则 ICL集成完全数据似然值ICL与BIC相同即可对数据点进行分类 plot中有四类图
用于选择集群数量的BIC数值用不同的模型表现BIC的情况多变量实例中最不适合使用VEV模型。有关聚类的图选取提供数据最优聚类的分量x5.1和x1.4会产生距离最近的集群。有关分类不确定性的图不同选择对聚类迭代的影响。有关集群的轨道图每个集群的轨道图突出显示中心点可能会出现在哪个地方。
1.1.5 密度估计
density密度估计、DBSCAN确定固定点集群的聚类、OPTICS确定广泛分布集群的聚类函数
用法
density()
参数 x 矩阵 bw 使用的平滑带宽 adjust 倍增器用于调节带宽 kernel 平滑核心gaussian、rectangle、trianglar、epanechnikov、biweight、cosine、optcosine weights 与x长度一致的权向量 give.Rkern TRUE表示未预估参数 N 预估的密度点数 from,to 最左边点和最右边点 na.rm TRUE 表示移除缺失值 bw.nrd0(x)/bw.nrd(x)/bw.ucv(x)/bw.bcv(x)/bw.SJ(x)
示例
data - read.csv(http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data)
#计算X5.1的密度
d - density(data$X5.1)
d
plot(d)1.2 异常检测
统计测试基于深度、偏差、距离、密度的方法高维方法。
1.2.1 显示异常值
示例 1
identify(in boxplot) #identify函数便于标记散点图的点boxplot生成盒须图
---------------------------------------------------------------------
y - rnorm(100)
boxplot(y)
identify(rep(1, length(y)), y, labels seq_along(y))示例 2
boxplot函数会自动计算数据集的异常值
x - rnorm(100)
summary(x)
boxplot.stats(x)$out ##显示异常值
boxplot(x)
boxplot(mpg~cyl,datamtcars, xlabCylinders, ylabMPG) ##汽车的数据示例示例 3
二维的箱线图异常检测并集而非交集
x - rnorm(1000);y - rnorm(1000)
f - data.frame(x,y)
a - boxplot.stats(x)$out;b - boxplot.stats(y)$out
list - union(a,b)
plot(f)
px - f[f$x %in% a,];py - f[f$y %in% b,]
p - rbind(px,py)
par(newTRUE)
plot(p$x, p$y,cex2,col2)
#结果并不准确需结合实际1.2.2 计算异常值
示例 1用name函数创建异常
data - read.csv(http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data)
outliers - function(data, low, high) {
outs - subset(data, data$X5.1 low | data$X5.1 high)
return(outs)
}
outliers(data, 4.5, 7.5) ## 4.5,7.5为异常示例 2DMwR中的lofactor函数
install.packages(“DMwR”)
library(DMwR)
nospecies - data[,1:4] ##移除“种类”列
scores - lofactor(nospecies, k3) #确定异常值
plot(density(scores)) #画出异常值分布1.3 关联规则购物篮分析
apriori()
用法
参数 data 事务数据 parameter 默认支持度0.1、置信度0.8、最大长度10 appearance 用于限制规则中出现的项目 control 用于调整所用算法的性能
示例
install.packages(arules)
library(arules)
data - read.csv(http://www.salemmarafi.com/wp-ontent/uploads/2014/03/groceries.csv)
rules - apriori(data) ;rules #生成规则
##置信度默认为0.8三个项目中有15295个事务有五个规则
inspect(rules)
rules - apriori(data, parameter list(supp 0.001, conf 0.8)) #当参数修改后生成500多个规则但是置信度为0.001