|
a |
|
b/GP/run_ridge.py |
|
|
1 |
from sklearn.linear_model import RidgeCV |
|
|
2 |
from scipy.stats.stats import pearsonr |
|
|
3 |
import os |
|
|
4 |
from matplotlib import pyplot as plt |
|
|
5 |
|
|
|
6 |
|
|
|
7 |
def run_ridge_main(X_tr, y_tr, X_vl, y_val, output, main): |
|
|
8 |
|
|
|
9 |
os.chdir(output) |
|
|
10 |
|
|
|
11 |
if not os.path.exists("ridge"): |
|
|
12 |
os.makedirs("ridge") |
|
|
13 |
dir = output + "ridge/" |
|
|
14 |
|
|
|
15 |
os.chdir(os.path.join(output, 'ridge/')) |
|
|
16 |
|
|
|
17 |
|
|
|
18 |
if not os.path.exists("figures"): |
|
|
19 |
os.makedirs("figures") |
|
|
20 |
dir = output + "ridge/figures/" |
|
|
21 |
|
|
|
22 |
os.chdir(os.path.join(output, 'ridge/figures/')) |
|
|
23 |
|
|
|
24 |
for i in range(0, y_tr.shape[1]): |
|
|
25 |
|
|
|
26 |
ridge = RidgeCV(alphas=[1e-3, 1e-2, 1e-1, 1]).fit(X_tr, y_tr[:,i]) |
|
|
27 |
ridge.score(X_tr, y_tr[:, i]) |
|
|
28 |
y_hat = ridge.predict(X_vl) |
|
|
29 |
|
|
|
30 |
|
|
|
31 |
# correlation btw predicted and observed |
|
|
32 |
corr = pearsonr(y_hat, y_val[:,i]) |
|
|
33 |
fig = plt.figure() |
|
|
34 |
# plot observed vs. predicted targets |
|
|
35 |
plt.title('Ridge: Observed vs Predicted Y_trait_' + str(i) + 'cor:' + str(corr[0])) |
|
|
36 |
plt.ylabel('Predicted') |
|
|
37 |
plt.xlabel('Observed') |
|
|
38 |
plt.scatter(y_val[:,i], y_hat, marker='o') |
|
|
39 |
fig.savefig("Ridge_Out" + str(i) + '.png', dpi=300) |
|
|
40 |
plt.close(fig) |
|
|
41 |
|
|
|
42 |
|