def generate_samples(m, k): X_normal = 2 * (np.random.rand(m, 1) - 0.5) y_normal = X_normal + np.random.normal(0, 0.1, (m,1)) X_outlier = 2 * (np.random.rand(k, 1) - 0.5) y_outlier = X_outlier + np.random.normal(3, 0.1, (k,1)) X = np.concatenate((X_normal, X_outlier), axis=0) y = np.concatenate((y_normal, y_outlier), axis=0) return X, ynp.random.seed(0) X, y = generate_samples(100, 5)
时间: 2023-06-18 14:06:24 浏览: 135
这段代码定义了一个名为`generate_samples()`的函数,该函数有两个参数:m和k。
函数的主要功能是生成包含异常值的数据集。具体来说,它生成了两个大小分别为m和k的数组X_normal和X_outlier,这些数组包含了在[-1, 1]之间均匀分布的随机数,并将它们乘以2,使它们的范围变为[-2, 2]。然后,它为每个X值生成一个相应的y值,该y值等于X值加上一个从均值为0,标准差为0.1的正态分布中随机抽取的值。这些值被存储在数组y_normal中。
接下来,函数生成了另外的X_outlier和y_outlier数组,以模拟异常值。这些值也是在[-1, 1]之间均匀分布的随机数,但是在计算相应的y值时,它们被加上了从均值为3,标准差为0.1的正态分布中随机抽取的值。这些值被存储在y_outlier数组中。
最后,函数将X_normal和X_outlier数组以及y_normal和y_outlier数组连接起来,生成完整的X和y数组,并将它们作为函数的返回值。
在这里,函数被调用,使用100和5作为参数来生成数据集,并将结果存储在X和y变量中。
阅读全文