社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
目录
def msc(sdata):
n = sdata.shape[0] # 样本数量
k = np.zeros(sdata.shape[0])
b = np.zeros(sdata.shape[0])
M = np.mean(sdata, axis=0)
from sklearn.linear_model import LinearRegression
for i in range(n):
y = sdata[i, :]
y = y.reshape(-1, 1)
M = M.reshape(-1, 1)
model = LinearRegression()
model.fit(M, y)
k[i] = model.coef_
b[i] = model.intercept_
spec_msc = np.zeros_like(sdata)
for i in range(n):
bb = np.repeat(b[i], sdata.shape[1])
kk = np.repeat(k[i], sdata.shape[1])
temp = (sdata[i, :] - bb)/kk
spec_msc[i, :] = temp
return spec_msc
x = msc(x)
pp = PlotSpectrum(x)
pp.show()
def snv(sdata):
"""
标准正态变量变换
"""
temp1 = np.mean(sdata, axis=1)
temp2 = np.tile(temp1, sdata.shape[1]).reshape((sdata.shape[0], sdata.shape[1]))
temp3 = np.std(sdata, axis=1)
temp4 = np.tile(temp3, sdata.shape[1]).reshape((sdata.shape[0], sdata.shape[1]))
return (sdata - temp2)/temp4
x = snv(x)
pp = PlotSpectrum(x)
pp.show()
def D1(sdata):
"""
一阶差分
"""
temp1 = pd.DataFrame(sdata)
temp2 = temp1.diff(axis=1)
temp3 = temp2.values
return np.delete(temp3, 0, axis=1)
x = D1(x)
pp = PlotSpectrum(x)
pp.show()
def D2(sdata):
"""
二阶差分
"""
temp2 = (pd.DataFrame(sdata)).diff(axis=1)
temp3 = np.delete(temp2.values, 0, axis=1)
temp4 = (pd.DataFrame(temp3)).diff(axis=1)
spec_D2 = np.delete(temp4.values, 0, axis=1)
return spec_D2
x = D2(x)
pp = PlotSpectrum(x)
pp.show()
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!