From dd46ed939e56a4e56c3dcec60cce1b93c8786a4a Mon Sep 17 00:00:00 2001 From: andreas128 Date: Sun, 10 Sep 2017 19:28:45 +0200 Subject: Use ridge regression --- dpd/main.py | 2 +- dpd/src/Model.py | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/dpd/main.py b/dpd/main.py index 03520f5..5e67c90 100755 --- a/dpd/main.py +++ b/dpd/main.py @@ -64,7 +64,7 @@ parser.add_argument('--samplerate', default='8192000', parser.add_argument('--coefs', default='poly.coef', help='File with DPD coefficients, which will be read by ODR-DabMod', required=False) -parser.add_argument('--txgain', default=74, +parser.add_argument('--txgain', default=71, help='TX Gain', required=False, type=int) diff --git a/dpd/src/Model.py b/dpd/src/Model.py index 4ccf0be..827027a 100644 --- a/dpd/src/Model.py +++ b/dpd/src/Model.py @@ -13,7 +13,7 @@ logging_path = os.path.dirname(logging.getLoggerClass().root.handlers[0].baseFil import numpy as np import matplotlib.pyplot as plt - +from sklearn import linear_model class Model: """Calculates new coefficients using the measurement and the old @@ -25,8 +25,8 @@ class Model: MER, coefs_am, coefs_pm, - learning_rate_am=0.1, - learning_rate_pm=0.1, + learning_rate_am=1., + learning_rate_pm=1., plot=False): self.c = c self.SA = SA @@ -124,7 +124,9 @@ class Model: self.mses_am.append(mse) self.errs_am.append(np.mean(err**2)) - a_delta = np.linalg.lstsq(rx_A, err)[0] + reg = linear_model.Ridge(alpha=0.00001) + reg.fit(rx_A, err) + a_delta = reg.coef_ new_coefs_am = self.coefs_am - self.learning_rate_am * a_delta new_coefs_am = new_coefs_am * (self.coefs_am[0] / new_coefs_am[0]) return new_coefs_am @@ -143,7 +145,9 @@ class Model: err_phase = phase_diff_est - phase_diff_choice self.errs_pm.append(np.mean(np.abs(err_phase ** 2))) - p_delta = np.linalg.lstsq(phase_A, err_phase)[0] + reg = linear_model.Ridge(alpha=0.00001) + reg.fit(phase_A, err_phase) + p_delta = reg.coef_ new_coefs_pm = self.coefs_pm - self.learning_rate_pm * p_delta return new_coefs_pm, phase_diff_choice -- cgit v1.2.3