由于没有具体的数据格式和缺失值插补方法,以下仅给出距离判别、Bayes判别和Fisher判别的模型和误判率计算方法,以及Fisher判别函数的推导过程。

距离判别模型: 将每个样本x的各个特征分别看作空间中的一个坐标,样本x在n维空间中对应一个点,距离判别模型将未知目标变量的分类看作是在n维空间中寻找离该点最近的已知类别中的点所对应的类别。具体而言,对于一个未知样本x,计算它和每个已知类别中心点c的距离d(x,c),将x归为距离最小的类别。距离可以用欧氏距离、曼哈顿距离等计算。

Bayes判别模型: Bayes判别模型基于贝叶斯定理,将未知目标变量的分类看作是在各个类别中寻找后验概率最大的类别。具体而言,对于一个未知样本x,计算它属于每个已知类别的概率P(Ci|x),将x归为概率最大的类别。这里需要对数据进行概率密度估计,可以使用参数估计法或非参数估计法。

Fisher判别模型: Fisher判别模型将样本投影到一条直线上,使得同类样本的投影点尽可能接近,异类样本的投影点尽可能远离,然后根据投影点的位置将未知目标变量的分类。具体而言,首先计算各个类别的均值向量m1、m2、...、mk,将它们看作n维空间中的点。然后计算类内离散度矩阵Sw和类间离散度矩阵Sb,其中Sw是各个类别内部样本的协方差矩阵之和,Sb是各个类别均值向量的协方差矩阵。接着计算投影向量w,使得w的转置乘以Sw的逆乘以w的长度最大,且w的转置乘以Sb乘以w的长度最小。最后将所有样本x乘以w得到它们在投影向量上的坐标,将坐标分别归为各个类别,将未知样本x在投影向量上的坐标与已知样本的坐标进行比较,将x归为距离最近的类别。Fisher判别函数为:

g(x)=wT*x+b

其中w为投影向量,b为偏置项。

误判率计算: 假设有m个未知样本,用模型对它们进行分类,得到的分类结果与真实结果对比,计算误判率。误判率表示被错误分类的样本数与总样本数之比。

具体实现过程可以参考以下代码:

读取数据

data <- read.csv("data.csv")

分离自变量和因变量

x <- data[,1:16] y <- data[,17]

距离判别

library(class) pred_dist <- knn(train = x, test = x, cl = y, k = 1) err_dist <- mean(pred_dist != y)

Bayes判别

library(e1071) model_bayes <- naiveBayes(x, y) pred_bayes <- predict(model_bayes, x) err_bayes <- mean(pred_bayes != y)

Fisher判别

library(mda) model_fisher <- lda(x, y) w <- model_fisher$scaling b <- model_fisher$intercept coord <- x %% w coord1 <- coord[y==1,] coord2 <- coord[y==2,] m1 <- colMeans(coord1) m2 <- colMeans(coord2) Sw <- cov(coord1) + cov(coord2) Sb <- (m1-m2) %% t(m1-m2) w_fisher <- solve(Sw) %% (m1-m2) coord_fisher <- x %% w_fisher pred_fisher <- ifelse(coord_fisher > mean(coord_fisher[y==1 & y==2])/2, 1, 2) err_fisher <- mean(pred_fisher != y)

打印误判率和Fisher判别函数

cat("距离判别误判率:", err_dist, "\n") cat("Bayes判别误判率:", err_bayes, "\n") cat("Fisher判别误判率:", err_fisher, "\n") cat("Fisher判别函数:", "g(x)=", paste(w_fisher, "*x+", b)

数据下载: httpwwwcrupcomcnBookTextDetaildoi=51b4c2b4-7229-4f4a-a5fc-71542f4e87d9·该数据有10992个观测值和17个变量已经进行了缺失值的插补变量V17为有10个水平的因变量对应于0-9这10个阿拉伯数字·要求:根据变量V1-V16及因变量V17的观测值分别建立距离判别、Bayes判别和Fisher判别分析模型以用于未知目标变

原文地址: https://www.cveoy.top/t/topic/fEjS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录