🧄R和Python主成分分析(PCA)线性判别分析(LDA)及其K-最近邻分类器和病理预测
R | Python | 主成分分析(PCA) | 线性判别分析(LDA) | K-最近邻算法 | 分类器 | 病理 | NumPy | scikit-learn | Matplotlib | Pandas
R主成分分析(PCA)和线性判别分析(LDA)
R主成分分析(PCA)
在此,我们将使用此机器学习存储库中的数据集作为我们的数据。如下,加载:
wdbc <- read.csv("wdbc.csv", header = F)
features <- c("radius", "texture", "perimeter", "area", "smoothness", "compactness", "concavity", "concave_points", "symmetry", "fractal_dimension")
names(wdbc) <- c("id", "diagnosis", paste0(features,"_mean"), paste0(features,"_se"), paste0(features,"_worst"))上面的代码将简单地加载数据并命名所有 32 个变量。 ID、诊断和十个不同 (30) 特征。
现在我们已经加载了我们的数据并发现自己有 30 个变量(不包括我们的响应“诊断”和不相关的 ID 变量)。
当我们尝试使用 PCA 的线性组合来描述数据中的差异时,我们发现“良性”和“恶性”病理之间存在一些非常明显的聚类和分离! 这为基于我们的特征开发分类模型提供了一个很好的案例!PCA 的另一个主要“功能”,是它实际上可以直接提高模型的性能。
PCA工作原理
PCA 的主要目的不是删除! 事实上,它可以降低维度,但不会减少数据中的特征/变量的数量。 这意味着您可能会发现仅使用 3 个主成分就可以解释 1000 个特征数据集中 99% 的方差,但您仍然需要这 1000 个特征来构建这 3 个主成分,这也意味着对于未来的数据的预测,您仍然需要在新观察中使用相同的 1000 个特征来构建相应的主成分。
简而言之,其特点是:
标准化数据(中心和比例)
从协方差矩阵或相关矩阵计算特征向量和特征值(也可以使用奇异向量分解)。
按降序对特征值进行排序,并选择 K 个最大的特征向量(其中 K 是新特征子空间 k ≤ d 的所需维数)。
从选定的 K 个特征向量构造投影矩阵 W。
通过W对原始数据集X进行变换,得到一个K维特征子空间Y。
R编程PCA
绘图
R线性判别分析(LDA)
项目:病理预测
源代码
Python主成分分析(PCA)和线性判别分析(LDA)
主成分分析(PCA)
线性判别分析(LDA)
使用 LDA 进行降维:
绘制数据集:
项目:K-最邻近分类器
源代码
Last updated
Was this helpful?