# ai-tester **Repository Path**: chenchenpp/ai-tester ## Basic Information - **Project Name**: ai-tester - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-05-20 - **Last Updated**: 2025-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 题库 900 题 1. 算法鲁棒性测试: 指的是系统性地评估和验证一个 AI 算法在面对各种异常、扰动、未知或恶劣环境时,仍能保持性能稳定或安全可控的能力。 测试方法: 1. 随机扰动测试:随机添加噪声,观察算法是否仍然保持性能稳定或安全可控。 2. 对抗攻击测试 3. 边界值测试 4. 数据分布偏移测试 5. 遮挡/缺失信息测试 6. 样本删除或打乱测试 2. K 折交叉验证(K-Fold Cross Validation): 是一种常用的机器学习模型评估方法,用于更稳健地评估模型在未见数据上的表现能力,尤其在样本数量有限的场景下效果尤为明显。取只通常为 5!!! 核心思想: 1. 将原始数据集平均地划分成 K 个子集(folds),然后: 2. 每次用其中 1 个子集作为验证集。 3. 用剩下的 K-1 个子集作为训练集。 4. 重复 K 次,每个子集都作为验证集一次。 最终结果取 K 次评估结果的平均值,作为模型的最终性能指标。 3. 差分: 对于非平稳时间序列数据,通过减去先前观察值来消除趋势和季节性的过程 4. 分词: 对文本拆解,主要为了将文本切成单词或者短语 5. “去停用词”是自然语言处理(NLP)中的一种文本预处理操作,指的是从文本中删除无实际含义或对建模帮助不大的常见词语,如:“的”、“了”、“是”、“and”、“the”、“in”等。 6. 中心性指标: 是网络分析(如社会网络、通信网络、生物网络)中的核心概念,用于衡量图中每个节点在整体网络中的重要程度或影响力。不同的中心性指标有不同的衡量角度,适用于不同类型的问题。 | 名称 | 英文 | 描述 | 应用场景 | | ------------------------ | ---------------------- | ------------------------------------------ | ----------------------------- | | **度中心性** | Degree Centrality | 节点直接连接的边数(即邻居数) | 流行用户、活跃节点 | | **接近中心性** | Closeness Centrality | 节点到其他所有节点的平均距离的倒数 | 信息传递速度 | | **中介中心性** | Betweenness Centrality | 节点出现在其他节点最短路径中的频率 | 控制信息传播、关键中介 | | **特征向量中心性** | Eigenvector Centrality | 不仅看连接数,还考虑连接的节点本身有多重要 | 影响力强的节点(如 PageRank) | | **K 核中心性(核心性)** | K-Core Centrality | 节点所在的最大 k 核子图中的 k 值 | 网络核心分布结构 | | **负载中心性** | Load Centrality | 类似中介中心性,但考虑路径负载 | 网络流量瓶颈分析 | | **PageRank 中心性** | PageRank Centrality | 一种特殊的特征向量中心性,考虑跳转概率 | 网页排名、社交网络影响力 | 6.压缩图像数据:在尽量保持图像质量的前提下,减少图像所占用的存储空间或传输带宽。 7.特征构造(Feature Construction) 是将原始数据转换为更能帮助机器学习模型理解、学习的特征的过程,是提升模型性能的关键环节之一。 8.贝叶斯网络:是一种有向无环图(DAG)结构的概率图模型,用于表示变量之间的概率依赖关系。它结合了图论与概率论,广泛应用于机器学习、因果推断、决策支持等领域。 贝叶斯的链式法则(Bayesian Chain Rule),也叫概率链式法则(Chain Rule of Probability),是将联合概率分解为一系列条件概率的乘积的方法,是构建贝叶斯网络和进行概率推理的基础。 9.随机森林(Random Forest) 是一种集成学习算法,主要用于分类和回归任务。它通过构建多个决策树并将它们的结果进行集成,从而提升模型的准确性与鲁棒性。 流程: - 数据采样(Bootstrap Sampling)从训练集随机有放回地采样若干个子集,分别用于训练每棵树。 - 特征子集选择(Feature Subset)每次节点分裂时,不使用全部特征,而是随机选取部分特征用于划分。 - 构建多棵决策树:每棵树都是完全独立训练,不会剪枝。 - 集成预测 分类任务:多数投票(majority vote) 回归任务:平均值(mean) 10.决策树: 是一种基本且常用的机器学习算法,用于`分类`和`回归`任务。它的结构类似一棵“树”,每个内部节点表示对一个特征的判断,每个分支表示一个判断结果,每个叶子节点表示最终的预测结果。 11.过拟合(Overfitting) 是机器学习中常见的问题,指的是模型在训练数据上表现很好,但在新数据(测试集或实际应用)上表现差,即泛化能力差。 12.循环神经网络(RNN, Recurrent Neural Network) 是一种特别适用于序列数据(如文本、时间序列、语音等)的神经网络架构。与传统前馈神经网络不同,RNN 具有“记忆”能力,能处理当前输入与之前输入之间的时间依赖关系。 核心思想:门控机制(循环神经网络(如 LSTM 和 GRU)中引入的一种控制信息流动的方法,用来解决标准 RNN 存在的梯度消失和长期依赖难以学习的问题。) 13.卷积神经网络(CNN, Convolutional Neural Network) 是一种用于处理图像数据的神经网络,它利用卷积层和池化层来识别图像中的特征,并生成特征图。 14.朴素贝叶斯算法(Naive Bayes) 是一种基于贝叶斯定理的监督学习算法,常用于分类任务。它的“朴素”之处在于:假设特征之间相互独立(这在实际中通常并不成立,但效果仍然不错)。 15.早停法:是一种在机器学习和深度学习中广泛使用的正则化技术,通过在训练过程中监控验证集性能,当性能不再提升时停止训练以防止模型过拟合‌. 16.生成对抗网络(GAN, Generative Adversarial Network)是一种由两个神经网络相互对抗组成的深度学习模型,由Ian Goodfellow等人于2014年提出。由生成器和判别器组成,它的核心思想是通过“对抗训练”生成逼真的数据(如图像、音频、文本等)。 17.数据标准化:核心过程包括‌Min-max标准化‌、‌Z-score标准化‌等方法,其核心作用在于‌消除数据量纲差异‌、‌提升算法性能‌和‌增强模型泛化能力‌。‌‌ 数据标准化方法: - ‌Min-max标准化‌(归一化)。 - ‌Z-score标准化‌(标准差标准化)。 - ‌小数定标标准化‌。 作用: - ‌消除量纲影响‌。 - ‌优化算法性能‌。 - ‌加速模型收敛‌。 - ‌增强模型泛化能力‌。 - ‌提升可解释性‌。 18. 因果分析法(Causal Analysis)是一种用于识别和理解某种结果或现象的根本原因的方法,广泛应用于数据分析、人工智能、社会科学、医学研究、商业决策等领域。 19. 数据白化(Data Whitening),又称为白化变换(Whitening Transformation),是一种常用于数据预处理的技术,目的是将原始数据转换成**均值为0、协方差为单位矩阵(即变量之间无相关性,且方差为1)**的形式。 20. 协同过滤(Collaborative Filtering,简称 CF) 是推荐系统中最常用的技术之一,核心思想是:利用用户之间或物品之间的相似性,进行个性化推荐。对购买记录或者评分历史来预测可能喜欢的商品。 21. 特征选择方法主要分三类: - 过滤法(Filter):基于统计指标筛选,如:方差选择,相关系数,卡方检验,互信息 - 包裹法(Wrapper):用模型效果评估特征子集,如递归特征消除(RFE) - 嵌入法(Embedded):嵌入在模型训练过程中,如:SVM, L1正则化,决策树/随机森林的特征重要性等 ## 涉及的库 1. pandas: https://pandas.pydata.org/docs/index.html 2. numpy: https://numpy.org/doc/stable/index.html 3. matplotlib: https://matplotlib.org/stable/contents.html 4. onnxruntime:https://onnxruntime.ai/ ## pandas 语法 1. read_csv:读取 csv 文件 2. value_counts:根据某个字段统计不同值的数量 3. len: 获取长度 4. data['RiskLevel']: 获取列/读取列 5. cut(val, bins, labels): - 根据某值在某个区间中创建分类,返回 label - val: 待分类值 - bins: 区间,命中哪个区间 - labels: 分类标签,和区间进行对应 6. groupby(keyName):也可以接受数组,分组, 根据 keyname 进行分类 7. apply:对列进行操作 8. agg(['count', 'mean']): 聚合,统计成一个表格;比如 count:统计,mean:平均 9. isin: 筛选字段 10. mean: 计算平均值 11. unstack: 展开 12. sum: 求和, True: 1, False: 0,所以相加就是 True 的数量 13. interpolate(method='ffill', inplace=True):使用前向填充和后向填充的方法填补缺失值 14. drop: 删除行或者列 15. to_csv: 将数据保存为 csv 文件 16. isnull/isna: 判断是否为空(缺失值), isna 是 isnull 的别名 18. duplicate: 判断是否有重复值 19. between:判断是否在区间内, 返回 bool 20. all(axis=1): 查每行的所有合理性检查是否都为 True 21. describe: 统计所有检查结果的描述性统计信息 - count:数据条数 - unique:不重复值的数量 - top:列中出现次数最多的值 - freq:top 值出现的次数 21. 缺失值处理:fillna() 或 dropna() 方法;subset 参数指定只检查特定列的缺失值 ```swift # 方法 1:删除包含缺失值的行 data = data.dropna() # 或者方法 2:用合适的值填充缺失值 data = data.fillna({ 'Age': data['Age'].mean(), # 用平均年龄填充 'PurchaseAmount': data['PurchaseAmount'].median(), # 用中位数填充购买金额 'ReviewScore': data['ReviewScore'].mode()[0] # 用众数填充评分 }) ``` 22. astype: 类型转换 23. to_numeric: 转换数值类型;errors='coerce':将无法转换的值设置为 NaN 24. std(): 标准差 25. 标准化计算公式:(x - x.mean) / x.std (x 值减去 x 均值,再除以标准差) 26. sort_index: 排序 ## numpy 语法 1. where:条件筛选 ## onnxruntime 加载模型的库 ## 考试注意事项 1. 多选题,只选自己确定的选项也是得分的。 ### 编程题 1. 找到对应的题目路径下,在路径栏中输入cmd, 输入jupyter notebook 2. 完成后,运行结果后生成 html 和截图代码运行结果。 - 生成 html 方式:jupyter notebook上面的 File -> download as -> html - 使用电脑自带的截图工具,搜索截图工具, 只把结果截下来即可 - 命名要保持和目录名保持一致(ps:3.2.3-1)