PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA 的主要思想是将 n 维特征映射到 k 维上,这 k 维是全新的正交特征也被称为主成分,是在原有 n 维特征的基础上重新构造出来的 k 维特征。PCA 的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。
其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第 1, 2 个轴正交的平面中方差最大的。依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面 k 个坐标轴中,后面的坐标轴所含的方差几乎为 0。于是,我们可以忽略余下的坐标轴,只保留前面 k 个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为 0 的特征维度,实现对数据特征的降维处理。
from pyod.models.pca import PCA from pyod.utils.data import generate_data from pyod.utils.data import evaluate_print from pyod.utils.example import visualize
from pyod.models.mcd import MCD from pyod.utils.data import generate_data from pyod.utils.data import evaluate_print from pyod.utils.example import visualize
from pyod.models.ocsvm import OCSVM from pyod.utils.data import generate_data from pyod.utils.data import evaluate_print from pyod.utils.example import visualize
from pyod.models.lof import LOF from pyod.utils.data import generate_data from pyod.utils.data import evaluate_print from pyod.utils.example import visualize
from pyod.models.knn import KNN from pyod.utils.data import generate_data from pyod.utils.data import evaluate_print from pyod.utils.example import visualize
# evaluate and print the results print("\nOn Training Data:") evaluate_print(clf_name, y_train, y_train_scores) print("\nOn Test Data:") evaluate_print(clf_name, y_test, y_test_scores)
from pyod.models.hbos import HBOS from pyod.utils.data import generate_data from pyod.utils.data import evaluate_print from pyod.utils.example import visualize
# evaluate and print the results print("\nOn Training Data:") evaluate_print(clf_name, y_train, y_train_scores) print("\nOn Test Data:") evaluate_print(clf_name, y_test, y_test_scores)
from pyod.models.abod import ABOD from pyod.utils.data import generate_data from pyod.utils.data import evaluate_print from pyod.utils.example import visualize
# evaluate and print the results print("\nOn Training Data:") evaluate_print(clf_name, y_train, y_train_scores) print("\nOn Test Data:") evaluate_print(clf_name, y_test, y_test_scores)
from pyod.models.iforest import IForest from pyod.utils.data import generate_data from pyod.utils.data import evaluate_print from pyod.utils.example import visualize
# evaluate and print the results print("\nOn Training Data:") evaluate_print(clf_name, y_train, y_train_scores) print("\nOn Test Data:") evaluate_print(clf_name, y_test, y_test_scores)
from pyod.models.feature_bagging import FeatureBagging from pyod.utils.data import generate_data from pyod.utils.data import evaluate_print from pyod.utils.example import visualize
# evaluate and print the results print("\nOn Training Data:") evaluate_print(clf_name, y_train, y_train_scores) print("\nOn Test Data:") evaluate_print(clf_name, y_test, y_test_scores)