Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
dynamicslab
GitHub Repository: dynamicslab/databook_python
Path: blob/master/CH06/CH06_SEC01_1_NN.ipynb
597 views
Kernel: Python 3
import numpy as np import matplotlib.pyplot as plt from matplotlib import rcParams from scipy import io import os from sklearn import linear_model rcParams.update({'font.size': 18}) plt.rcParams['figure.figsize'] = [12, 12]
# dogs vs. cats dogdata_w_mat = io.loadmat(os.path.join('..','DATA','dogData_w.mat')) catdata_w_mat = io.loadmat(os.path.join('..','DATA','catData_w.mat')) dog_wave = dogdata_w_mat['dog_wave'] cat_wave = catdata_w_mat['cat_wave'] CD = np.concatenate((dog_wave,cat_wave),axis=1) train = np.concatenate((dog_wave[:,:60],cat_wave[:,:60]),axis=1) test = np.concatenate((dog_wave[:,60:80],cat_wave[:,60:80]),axis=1) label = np.repeat(np.array([1,-1]),60) A = label @ np.linalg.pinv(train) test_labels = np.sign(A@test)
lasso = linear_model.Lasso().fit(train.T,label) A_lasso = lasso.coef_ test_labels_lasso = np.sign(A_lasso@test)
fig,axs = plt.subplots(4,1) axs[0].bar(range(len(test_labels)),test_labels) axs[1].bar(range(len(A)),A) axs[2].bar(range(len(test_labels_lasso)),test_labels_lasso) axs[3].bar(range(len(A_lasso)),A_lasso) plt.show()
Image in a Jupyter notebook
fig,axs = plt.subplots(2,2) axs = axs.reshape(-1) A2 = np.flipud(np.reshape(A,(32,32))) A2_lasso = np.flipud(np.reshape(A_lasso,(32,32))) axs[0].pcolor(np.rot90(A2),cmap='gray') axs[1].pcolor(np.rot90(A2_lasso),cmap='gray') plt.show()
Image in a Jupyter notebook
## To be implemented: Python version of Matlab's patternnet()