1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

核心方法

  • 标准化:将 train 与 test 按行拼接后,用 StandardScaler 一次性 fit_transform,得到标准化矩阵 Z_all(避免因分别拟合造成的数据偏移)。
  • PCA降维与重构:在 Z_all 上用 PCA(n_components=1, svd_solver="full", random_state=42) 拟合,分别对 Z_all 做 transform → inverse_transform 得到重构矩阵 Z_hat_all。
  • 误差与阈值:

P3648.第2题-异常检测算法

    1000ms Tried: 20 Accepted: 13 Difficulty: 4 所属公司 : 阿里
    算法与标签>机器学习算法

题目内容

请在仅使用 numpy/pandas/scikit−learnnumpy/pandas/scikit-learnnumpy/pandas/scikit−learn 的前提下,实现一个基于 PCAPCAPCA 重构误差的异常检测算法,对测试样本判定“正常 (0)(0)(0) /异常 (1)(1)(1) ”。

1.读取数据

  • traintraintrain:二维列表,只含数值特征(无标签)

  • testtesttest:二维列表,与 traintraintrain 同维度

2.标准化

  • 使用 StandardScalerStandardScalerStandardScaler

  • 必须将 traintraintrain 和 testtesttest 拼接后一次性 fitfitfit_transformtransformtransform,以避免数据偏移

3.降维&重构

  • PCAPCAPCA 降维,你可能会用到的固定参数:nnn_components=1,components=1,components=1,svdsvdsvd _solver=“full”,randomsolver=“full”,randomsolver=“full”,random _state=42state=42state=42

  • 在拼接后的标准化数据上 fitfitfit 后,再分别 transform/inversetransform/inversetransform/inverse_transformtransformtransform 获得重构样本

4.重构误差与阀值

  • 对训练部分计算 ei=∑j(xij−x^ij)2e_i=\sum_j(x_{ij}-\hat{x}_{ij})^2ei​=∑j​(xij​−x^ij​)2

  • 阈值 TTT 取第 959595 百分位

  • 判别准则:

 label ={0,etest ≤T1,etest >T\text { label }=\left\{\begin{array}{ll}0, & e_{\text {test }} \leq T \\1, & e_{\text {test }}>T\end{array}\right. label ={0,1,​etest ​≤Tetest ​>T​

5.结果输出

  • 仅输出 testtesttest 部分的预测标签序列 (0/1)(0/1)(0/1)

  • 单行 JSONJSONJSON 数组,如 [0,1][0,1][0,1]

  • 顺序须与输入 testtesttest 保持一致

输入描述

标准输入仅一行 JSONJSONJSON ,示例

{
"train":[[0,0],[0.1,0],[0,-0.1],[0.05,0.05]],
"test":[[0.04,0.02],[3,3]]
}
  • 题目要求至少二维特征

  • 所有值为整数/浮点数,无空行

输出描述

仅输出一行:[0,1][0,1][0,1]

  • 长度等于测试样本数

  • 合法 JSONJSONJSON,逗号后带空格

补充说明

为确保通过测试用例,允许使用 numpy/pandas/scikit−learnnumpy/pandas/scikit-learnnumpy/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]

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 1, 44ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?