P3648.第2题-异常检测算法
题目内容
请在仅使用 numpy/pandas/scikit−learn 的前提下,实现一个基于 PCA 重构误差的异常检测算法,对测试样本判定“正常 (0) /异常 (1) ”。
1.读取数据
2.标准化
3.降维&重构
-
PCA 降维,你可能会用到的固定参数:n_components=1,svd _solver=“full”,random _state=42
-
在拼接后的标准化数据上 fit 后,再分别 transform/inverse_transform 获得重构样本
4.重构误差与阀值
label ={0,1,etest ≤Tetest >T
5.结果输出
-
仅输出 test 部分的预测标签序列 (0/1)
-
单行 JSON 数组,如 [0,1]
-
顺序须与输入 test 保持一致
输入描述
标准输入仅一行 JSON ,示例
{
"train":[[0,0],[0.1,0],[0,-0.1],[0.05,0.05]],
"test":[[0.04,0.02],[3,3]]
}
-
题目要求至少二维特征
-
所有值为整数/浮点数,无空行
输出描述
仅输出一行:[0,1]
-
长度等于测试样本数
-
合法 JSON,逗号后带空格
补充说明
为确保通过测试用例,允许使用 numpy/pandas/scikit−learn
样例1
输入
{"train":[[0,0],[0.1,0],[0,-0.1],[0.05,0.05],[0.2,0.1],[0.1,-0.1]],"test":[[0.05,0],[0.2,-0.6],[0.1,0.1],[0.2,0]]}
输出
[0, 0, 0, 0]