Как найти смещение и коэффициент масштабирования, используя Python - PullRequest
0 голосов
/ 08 июля 2020

У меня есть набор данных, созданный датчиком, который показывает давление в течение определенного периода времени в определенном c месте. Датчик, который я использую, недорогой и не предназначен для исследований. У меня есть доступ к набору данных от исследовательского датчика, и есть корреляция между моим набором данных и оцененным по результатам исследования. Однако есть также большое смещение и масштабирование. Я хотел бы знать, можно ли использовать Python, чтобы подогнать мой набор данных к набору данных, оцененных по результатам исследований, путем определения смещения и коэффициента масштабирования, потому что два набора данных имеют одинаковую форму, единственная разница - смещение и коэффициент.

Спасибо

1 Ответ

0 голосов
/ 01 сентября 2020

Предполагая, что вы ищете простой коэффициент масштабирования,

def getScalingFactor(data1,data2,order=2):
    return np.linalg.norm(data1,order) / np.linalg.norm(data2,order) 

# For example, if your data is 
def f(x):
   return x**2;
x = np.arange(-5,6)

# y1 is your sensor data
y1 = f(x)       

# y2 is your 'research-graded' sensor data having a simple scale with respect to y1
y2 = f(x) * 2.  # 2.0 is your example scale

# You would expect `getScalingFactor` to return 2.0 
out_scale = getScalingFactor(y2,y1,order=2)

Как вы явно упомянули об использовании Python, я использовал numpy .linalg.norm для рассчитать нормы.

...