python - 如何修改代码以查找测试数据集错误
问题描述
大家好,我有以下代码,我正在尝试查找测试集错误。我已经尝试了几种使用 score 函数的方法。但是,它一直给我否定的答案并且大于 1。我如何修改代码来计算它?
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import multivariate_normal as mvn
from sklearn.neighbors import KernelDensity as KD
from matplotlib.colors import ListedColormap
from sklearn.model_selection import train_test_split
# Fix random state for reproducibility
np.random.seed(1978081)
mm0 = np.array([2,2])
mm1= np.array([4,4])
Sig0 = 4*np.identity(2)
Sig1 = 4*np.identity(2)
N = 50 # number of points in each class
X0 = mvn.rvs(mm0,Sig0,N)
x0,y0 = np.split(X0,2,1)
X1 = mvn.rvs(mm1,Sig1,N)
x1,y1 = np.split(X1,2,1)
X = np.concatenate((X0,X1),axis=0)
y = np.concatenate((np.zeros(N),np.ones(N)))
# Generate Test data
M = 10
M0 = mvn.rvs(mm0, Sig0, M)
mx0, my0 = np.split(M0, 2, 1)
M1 = mvn.rvs(mm1, Sig1, M)
mx1, my1 = np.split(M1, 2, 1)
MX = np.concatenate((M0, M1), axis=0)
My = np.concatenate((np.zeros(M), np.ones(M)))
cmap_light = ListedColormap(['#ffe0c0','#b7faff'])
h = .01 # mesh step size
x_min,x_max = (-3,9)
y_min,y_max = (-3,9)
for b in [1]: #, 3, 5, 7, 9, 11]:
clf0 = KD(b)
clf0.fit(X0)
clf1 = KD(b)
clf1.fit(X1)
P0 = clf0.sample(M)
P1 = clf1.sample(M)
Error0=clf0.score_samples(P0)
Error1 = clf1.score_samples(P1)
Error = abs(Error0 + Error1) / 2 / M
print(Error0)
print(Error1)
print(Error)
解决方案
推荐阅读
- java - 在 Spring 的 Preauthorize 表达式中使用 Autowired bean
- github - 在拉取请求中比较哪个主节点?
- java - DeploymentException: WELD-001408: 不满足类型的依赖关系
在注入点 [BackedAnnotatedField] 带有限定符 @Default - r - 获取向量中唯一值的索引
- kubernetes - 使用 OIDC 的 Kubernetes 服务帐户角色
- jenkins - Jenkins 可以运行一些代码还是只调度外部程序?
- wix - WiX:如何显示功能元素的“描述”文本?
- android - 无法在以下项目变体之间进行选择:features:myDynamicFeatureModule:
- java - 触摸功能在 JDK1.8 的 Ubuntu 上不起作用
- python - 如何连接每个形状的两个元组
:(100,1) 到一个元组形状 :(100,2) 使用 python?