AI项目也有生命周期,也需要监测其运行状态,也需要维护
所有的输入,输出,记录日志,并可以提取 分析日志 看一看线上真实的输入与原来的数据集差在哪里 结果有多大的差别
大概率会发生的事情:
- 训练用的数据集与真实的输入数据有很大的差别,跟预想的完全不一样
- 这时就要不断地分析用户的真实输入
规定规范,引导业务开发行为,以便生成更适合模型的输入
- 图像上画框,明确规定要要包括额头,耳朵
- 规范用户的输入
日志记录内容
数据输入,模型输入
模型输出
推理性能,响应时间
后继就是一边分析日志,一边找出容易优化的点,
优化,训练,再分析日志
|
已有一个可疑的样本向量,从其他数据或过往可疑样本中,寻找与该样本最相似的样本
import numpy as np
import pandas as pd
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics.pairwise import cosine_similarity
# 加载乳腺癌数据集
data = load_breast_cancer()
X = data.data
y = data.target
# 随机拆分为两份
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)
X_train类比当前数据 X_test类比相同模型下以往某个批次的数据,即同类型数据 # 标准化特征 scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test)
sample类比当前案件,这里随便取一个样本举例,比如第一个
# 从第一份中取出一个样本 sample_index = 0 # 你可以随机选择或指定索引 sample = X_train[sample_index].reshape(1, -1)
cosine_similarity(sample, X_test),
- 计算sample样本与X_test一批样本中每个样本之间的相似度
- 其中的最大值就是最相似的样本
# 遍历第二份中的样本,计算余弦相似度
similarities = cosine_similarity(sample, X_test)
similarities.shape # (1, 285) 返回的是2维数据,每个样本与另外一批的每个样本都有一个相似度
# 找到相似度最高的样本索引
most_similar_index = np.argmax(similarities)
most_similar_sample = X_test[most_similar_index]
most_similar_label = y_test[most_similar_index]
# 打印结果
print(f"选择的样本索引: {sample_index}")
print(f"相似度最高的样本索引: {most_similar_index}")
print(f"相似度最高的样本特征: {most_similar_sample}")
print(f"相似度最高的样本标签: {most_similar_label}")
print(f"最高相似度: {similarities[0, most_similar_index]}")
选择的样本索引: 0
相似度最高的样本索引: 177
相似度最高的样本特征: [ 0.16915303 -0.84923298 0.1491141 0.0100683 -0.92939218 0.08477422
-0.32941936 -0.32572933 0.25662039 -0.47823615 -0.58870204 -1.3292939
-0.294134 -0.41798423 -0.90113974 0.36383613 0.17244221 -0.09037304
-0.79518225 -0.2279226 -0.01585764 -1.01712787 0.16303099 -0.16499284
-0.81581744 0.75229458 0.33349632 0.33825268 0.10255576 0.0260603 ]
相似度最高的样本标签: 1
最高相似度: 0.735111515925659
|
|
|
|
|
|
|
|