代码拉取完成,页面将自动刷新
import statsmodels.api as sm
import numpy as np
def generate_noise(path, noise_prop, seed):
data = np.load(path)
x, y = data["x"], data["y"]
datamatrix = np.concatenate((x[:, np.newaxis], y[:, np.newaxis]), axis=1)
datasize = len(x)
datasize_noise = datasize * noise_prop
noise_xrange_left, noise_xrange_right = np.min(x), np.max(x)
noise_yrange_low, noise_yrange_up = np.min(y), np.max(y)
np.random.seed(seed)
noisematrix = np.concatenate(( \
np.random.uniform(noise_xrange_left, noise_xrange_right,
(datasize_noise, 1), ),
np.random.uniform(noise_yrange_low, noise_yrange_up,
(datasize_noise, 1), ),), axis=1)
datamatrix = np.concatenate((datamatrix, noisematrix), axis=0)
return datamatrix[:, 0], datamatrix[:, 1]
def fit_by_raw_lowess(x, y,frac=0.1):
lowess = sm.nonparametric.lowess
y_lowess = lowess(y, x, frac)
x_fit, y_fit = zip(*y_lowess)
x_fit, y_fit = np.array(x_fit), np.array(y_fit)
return x_fit, y_fit
class Normalization(object):
def __init__(self,x,y) -> None:
self.x_bt = (np.min(x),np.max(x))
self.y_bt = (np.min(y),np.max(y))
self.x_normal = (x-self.x_bt[0])/(self.x_bt[1] - self.x_bt[0])
self.y_normal = (y-self.y_bt[0])/(self.y_bt[1] - self.y_bt[0])
def get_normalized_data(self):
return self.x_normal,self.y_normal
def denormalize_data(self,x_normal,y_normal):
x = (self.x_bt[1]-self.x_bt[0])*x_normal+self.x_bt[0]
y = (self.y_bt[1]-self.y_bt[0])*y_normal+self.y_bt[0]
return x,y
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。