Skip to content
Snippets Groups Projects
Commit 37e62478 authored by vkarve2's avatar vkarve2
Browse files

Change to rank = 50, Beta = 5000. All scripts and notebooks not reflect this change.

parent d228d3da
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
%% Cell type:markdown id: tags:
# Run cSNMF on Trips data using multiplicative update rules
**Constraint:** L1 norm of columns of W should be 1
Get a copy of the data matrices in your local machine from the following links:
- https://uofi.box.com/s/yo60oe084d68obohgraek4weuaqtpgsp
%% Cell type:code id: tags:
``` python
from __init__ import *
import numpy as np
import pandas as pd
import config
import cSNMF
import matplotlib.pyplot as plt
%matplotlib inline
```
%% Cell type:code id: tags:
``` python
## Read Full-Link data and prep for running NMF.
D = np.loadtxt('D_trips.txt')
logger.info('Full_link data has been read')
if config.SEEDED == 1:
seed_W = 0; seed_H = 1
elif config.SEEDED == 0:
seed_W = None; seed_H = None
else:
logger.critical('Seed value invalid. Needs to be 0 or 1. Check config.py!')
quit()
```
%% Output
Full_link data has been read
%% Cell type:code id: tags:
``` python
W, H, results = cSNMF.factorize(D,
beta = None,
beta = 5000,
rank = config.RANK,
max_iter = 600,
seed_W = seed_W,
seed_H = seed_H,
debug = False,
debug = True,
axing = True)
```
%% Output
Rank= 70, Threshold= 0.5
Initializing W and H...
W, H chosen
Iteration= 0, Error= 47.3875924723, Sparsity= 0.146271556855
Iteration= 1, Error= 47.2446147568, Sparsity= 0.145755854093
Iteration= 2, Error= 47.2216748296, Sparsity= 0.145327766185
Iteration= 3, Error= 47.1982590051, Sparsity= 0.144989264137
Iteration= 4, Error= 47.1729461812, Sparsity= 0.144749348246
Iteration= 5, Error= 47.1442221156, Sparsity= 0.144625164867
Iteration= 6, Error= 47.1102399808, Sparsity= 0.144644190899
Iteration= 7, Error= 47.0686199218, Sparsity= 0.144847605488
Iteration= 8, Error= 47.0162066055, Sparsity= 0.145295042657
Iteration= 9, Error= 46.9487699551, Sparsity= 0.146070852721
Iteration= 10, Error= 46.8606488749, Sparsity= 0.147291669723
Iteration= 11, Error= 46.7443701994, Sparsity= 0.149114230866
Iteration= 12, Error= 46.5903433122, Sparsity= 0.151740658138
Iteration= 13, Error= 46.3868567481, Sparsity= 0.155415570842
Iteration= 14, Error= 46.1207929711, Sparsity= 0.160406212065
Iteration= 15, Error= 45.7796586046, Sparsity= 0.166956459996
Iteration= 16, Error= 45.3554227385, Sparsity= 0.175214064913
Iteration= 17, Error= 44.8497233311, Sparsity= 0.185151068452
Iteration= 18, Error= 44.2779549955, Sparsity= 0.19652041792
Iteration= 19, Error= 43.6681058612, Sparsity= 0.208890982411
Iteration= 20, Error= 43.0525317571, Sparsity= 0.221758552259
Iteration= 21, Error= 42.4572183956, Sparsity= 0.234672811284
Iteration= 22, Error= 41.8958589093, Sparsity= 0.247314596262
Iteration= 23, Error= 41.3709583203, Sparsity= 0.25950685122
Iteration= 24, Error= 40.8784360568, Sparsity= 0.271184854731
Iteration= 25, Error= 40.4118601173, Sparsity= 0.282356079443
Iteration= 26, Error= 39.9649220045, Sparsity= 0.29306599656
Iteration= 27, Error= 39.5324396445, Sparsity= 0.303374101143
Iteration= 28, Error= 39.1105676865, Sparsity= 0.313339197057
Iteration= 29, Error= 38.6967365085, Sparsity= 0.323011810246
Iteration= 30, Error= 38.2895633985, Sparsity= 0.332431735558
Iteration= 31, Error= 37.8887286251, Sparsity= 0.341628847672
Iteration= 32, Error= 37.49471312, Sparsity= 0.350625230548
Iteration= 33, Error= 37.1083960462, Sparsity= 0.359436957026
Iteration= 34, Error= 36.7306536457, Sparsity= 0.368074833674
Iteration= 35, Error= 36.3621032365, Sparsity= 0.376544542635
Iteration= 36, Error= 36.0030214833, Sparsity= 0.384847059123
Iteration= 37, Error= 35.6533778381, Sparsity= 0.39297989306
Iteration= 38, Error= 35.3129172124, Sparsity= 0.40093904038
Iteration= 39, Error= 34.9812555659, Sparsity= 0.40872100568
Iteration= 40, Error= 34.657972941, Sparsity= 0.416323918084
Iteration= 41, Error= 34.3426935619, Sparsity= 0.423746256962
Iteration= 42, Error= 34.0351416922, Sparsity= 0.430982836274
Iteration= 43, Error= 33.7351616395, Sparsity= 0.438023198541
Iteration= 44, Error= 33.442698009, Sparsity= 0.444856839347
Iteration= 45, Error= 33.1577528257, Sparsity= 0.451478682967
Iteration= 46, Error= 32.8803484571, Sparsity= 0.457889472625
Iteration= 47, Error= 32.6105102543, Sparsity= 0.464093667832
Iteration= 48, Error= 32.3482627075, Sparsity= 0.470097574132
Iteration= 49, Error= 32.0936282939, Sparsity= 0.475908247466
Iteration= 50, Error= 31.8466230804, Sparsity= 0.481532990925
Iteration= 51, Error= 31.6072484956, Sparsity= 0.486979242904
Iteration= 52, Error= 31.3754817208, Sparsity= 0.49225466101
Iteration= 53, Error= 31.1512681244, Sparsity= 0.497367180378
Iteration= 54, Error= 30.9345185673, Sparsity= 0.502324923668
Iteration= 55, Error= 30.725112209, Sparsity= 0.50713600665
Iteration= 56, Error= 30.5229026617, Sparsity= 0.511808346394
Iteration= 57, Error= 30.327724159, Sparsity= 0.516349529256
Iteration= 58, Error= 30.139395657, Sparsity= 0.520766732364
Iteration= 59, Error= 29.9577228964, Sparsity= 0.525066669882
Iteration= 60, Error= 29.7824996276, Sparsity= 0.529255546768
Iteration= 61, Error= 29.6135091045, Sparsity= 0.533339022964
Iteration= 62, Error= 29.4505263073, Sparsity= 0.537322202638
Iteration= 63, Error= 29.2933207776, Sparsity= 0.541209660367
Iteration= 64, Error= 29.1416596782, Sparsity= 0.545005501575
Iteration= 65, Error= 28.9953107095, Sparsity= 0.548713438844
Iteration= 66, Error= 28.8540446364, Sparsity= 0.552336861902
Iteration= 67, Error= 28.71763729, Sparsity= 0.555878889094
Iteration= 68, Error= 28.585870981, Sparsity= 0.559342401272
Iteration= 69, Error= 28.4585353336, Sparsity= 0.562730065688
Iteration= 70, Error= 28.3354276028, Sparsity= 0.566044356797
Iteration= 71, Error= 28.2163525914, Sparsity= 0.569287577086
Iteration= 72, Error= 28.1011223648, Sparsity= 0.572461877679
Iteration= 73, Error= 27.9895560308, Sparsity= 0.575569276936
Iteration= 74, Error= 27.8814798245, Sparsity= 0.578611675185
Iteration= 75, Error= 27.7767276005, Sparsity= 0.581590864438
Iteration= 76, Error= 27.6751416498, Sparsity= 0.584508532898
Iteration= 77, Error= 27.5765736184, Sparsity= 0.587366265202
Iteration= 78, Error= 27.4808852735, Sparsity= 0.590165540569
Iteration= 79, Error= 27.3879489221, Sparsity= 0.592907732242
Iteration= 80, Error= 27.2976474004, Sparsity= 0.595594111958
Iteration= 81, Error= 27.2098736662, Sparsity= 0.598225862006
Iteration= 82, Error= 27.1245301044, Sparsity= 0.600804094728
Iteration= 83, Error= 27.0415276877, Sparsity= 0.60332987634
Iteration= 84, Error= 26.9607851142, Sparsity= 0.605804250346
Iteration= 85, Error= 26.8822279845, Sparsity= 0.608228256272
Iteration= 86, Error= 26.8057880284, Sparsity= 0.610602941431
Iteration= 87, Error= 26.7314023534, Sparsity= 0.612929365741
Iteration= 88, Error= 26.6590127059, Sparsity= 0.615208601155
Iteration= 89, Error= 26.588564749, Sparsity= 0.617441727834
Iteration= 90, Error= 26.5200073812, Sparsity= 0.619629828981
Iteration= 91, Error= 26.4532921077, Sparsity= 0.621773985739
Iteration= 92, Error= 26.3883724733, Sparsity= 0.623875272953
Iteration= 93, Error= 26.3252035558, Sparsity= 0.625934756114
Iteration= 94, Error= 26.2637415258, Sparsity= 0.627953489446
Iteration= 95, Error= 26.2039432814, Sparsity= 0.629932514876
Iteration= 96, Error= 26.1457661704, Sparsity= 0.63187286156
Iteration= 97, Error= 26.0891678078, Sparsity= 0.63377554563
Iteration= 98, Error= 26.0341059831, Sparsity= 0.635641569925
Iteration= 99, Error= 25.9805386392, Sparsity= 0.637471923576
Iteration= 100, Error= 25.9284238959, Sparsity= 0.639267581404
Iteration= 101, Error= 25.8777201012, Sparsity= 0.641029503149
Iteration= 102, Error= 25.8283859074, Sparsity= 0.642758632558
Iteration= 103, Error= 25.7803803713, Sparsity= 0.644455896345
Iteration= 104, Error= 25.7336630721, Sparsity= 0.646122203022
Iteration= 105, Error= 25.6881942326, Sparsity= 0.64775844156
Iteration= 106, Error= 25.6439348327, Sparsity= 0.649365479874
Iteration= 107, Error= 25.6008467148, Sparsity= 0.650944163108
Iteration= 108, Error= 25.5588926869, Sparsity= 0.652495311758
Iteration= 109, Error= 25.5180366141, Sparsity= 0.654019719743
Iteration= 110, Error= 25.478243484, Sparsity= 0.655518152628
Iteration= 111, Error= 25.4394794196, Sparsity= 0.656991346272
Iteration= 112, Error= 25.4017116286, Sparsity= 0.658440006208
Iteration= 113, Error= 25.3649082875, Sparsity= 0.659864807989
Iteration= 114, Error= 25.3290383777, Sparsity= 0.66126639859
Iteration= 115, Error= 25.294071504, Sparsity= 0.662645398731
Iteration= 116, Error= 25.2599777477, Sparsity= 0.664002405738
Iteration= 117, Error= 25.2267276154, Sparsity= 0.665337996363
Iteration= 118, Error= 25.1942921094, Sparsity= 0.666652729032
Iteration= 119, Error= 25.162642888, Sparsity= 0.667947145192
Iteration= 120, Error= 25.1317524435, Sparsity= 0.669221769777
Iteration= 121, Error= 25.1015942289, Sparsity= 0.670477111064
Iteration= 122, Error= 25.0721427072, Sparsity= 0.671713660264
Iteration= 123, Error= 25.0433733327, Sparsity= 0.672931891149
Iteration= 124, Error= 25.0152624924, Sparsity= 0.674132259928
Iteration= 125, Error= 24.9877874347, Sparsity= 0.675315205439
Iteration= 126, Error= 24.9609262089, Sparsity= 0.676481149669
Iteration= 127, Error= 24.9346576295, Sparsity= 0.677630498521
Iteration= 128, Error= 24.9089612761, Sparsity= 0.678763642736
Iteration= 129, Error= 24.8838175342, Sparsity= 0.679880958843
Iteration= 130, Error= 24.8592076665, Sparsity= 0.680982810026
Iteration= 131, Error= 24.8351138707, Sparsity= 0.68206954683
Iteration= 132, Error= 24.8115192589, Sparsity= 0.683141507732
Iteration= 133, Error= 24.7884077486, Sparsity= 0.684199019656
Iteration= 134, Error= 24.7657639644, Sparsity= 0.685242398524
Iteration= 135, Error= 24.7435732256, Sparsity= 0.6862719498
Iteration= 136, Error= 24.7218215637, Sparsity= 0.687287968969
Iteration= 137, Error= 24.7004957006, Sparsity= 0.688290741887
Iteration= 138, Error= 24.6795829881, Sparsity= 0.689280545028
Iteration= 139, Error= 24.6590713471, Sparsity= 0.690257645652
Iteration= 140, Error= 24.6389492255, Sparsity= 0.691222301936
Iteration= 141, Error= 24.6192055731, Sparsity= 0.692174763089
Iteration= 142, Error= 24.5998298229, Sparsity= 0.693115269481
Iteration= 143, Error= 24.5808118703, Sparsity= 0.694044052799
Iteration= 144, Error= 24.5621420469, Sparsity= 0.694961336258
Iteration= 145, Error= 24.5438110902, Sparsity= 0.69586733486
Iteration= 146, Error= 24.5258101149, Sparsity= 0.696762255692
Iteration= 147, Error= 24.5081305887, Sparsity= 0.697646298249
Iteration= 148, Error= 24.4907643144, Sparsity= 0.698519654758
Iteration= 149, Error= 24.4737034124, Sparsity= 0.699382510493
Iteration= 150, Error= 24.4569402996, Sparsity= 0.700235044072
Iteration= 151, Error= 24.4404676607, Sparsity= 0.701077427763
Iteration= 152, Error= 24.4242784108, Sparsity= 0.701909827781
Iteration= 153, Error= 24.4083656515, Sparsity= 0.702732404614
Iteration= 154, Error= 24.3927226292, Sparsity= 0.703545313341
Iteration= 155, Error= 24.3773427006, Sparsity= 0.704348703977
Iteration= 156, Error= 24.3622193158, Sparsity= 0.7051427218
Iteration= 157, Error= 24.3473460199, Sparsity= 0.70592750767
Iteration= 158, Error= 24.3327164708, Sparsity= 0.706703198331
Iteration= 159, Error= 24.3183244657, Sparsity= 0.707469926658
Iteration= 160, Error= 24.3041639664, Sparsity= 0.708227821885
Iteration= 161, Error= 24.2902291182, Sparsity= 0.708977009772
Iteration= 162, Error= 24.2765142571, Sparsity= 0.709717612765
Iteration= 163, Error= 24.2630139061, Sparsity= 0.710449750121
Iteration= 164, Error= 24.2497227626, Sparsity= 0.711173538053
Iteration= 165, Error= 24.2366356796, Sparsity= 0.711889089883
Iteration= 166, Error= 24.2237476464, Sparsity= 0.712596516221
Iteration= 167, Error= 24.2110537742, Sparsity= 0.71329592519
Iteration= 168, Error= 24.1985492896, Sparsity= 0.713987422692
Iteration= 169, Error= 24.186229532, Sparsity= 0.714671112745
Iteration= 170, Error= 24.1740899532, Sparsity= 0.715347097878
Iteration= 171, Error= 24.162126115, Sparsity= 0.716015479606
Iteration= 172, Error= 24.1503336875, Sparsity= 0.716676358933
Iteration= 173, Error= 24.1387084549, Sparsity= 0.717329836876
Iteration= 174, Error= 24.1272463325, Sparsity= 0.717976014934
Iteration= 175, Error= 24.1159433993, Sparsity= 0.718614995512
Iteration= 176, Error= 24.1047959376, Sparsity= 0.719246882326
Iteration= 177, Error= 24.093800473, Sparsity= 0.719871780902
Iteration= 178, Error= 24.0829538039, Sparsity= 0.720489799273
Iteration= 179, Error= 24.0722530059, Sparsity= 0.72110104888
Iteration= 180, Error= 24.0616954014, Sparsity= 0.721705645469
Iteration= 181, Error= 24.0512784855, Sparsity= 0.722303709518
Iteration= 182, Error= 24.0409998207, Sparsity= 0.72289536566
Iteration= 183, Error= 24.0308569248, Sparsity= 0.723480740715
Iteration= 184, Error= 24.0208471876, Sparsity= 0.724059960518
Iteration= 185, Error= 24.0109678402, Sparsity= 0.724633146294
Iteration= 186, Error= 24.0012159784, Sparsity= 0.725200411669
Iteration= 187, Error= 23.9915886216, Sparsity= 0.725761861211
Iteration= 188, Error= 23.9820827837, Sparsity= 0.72631759082
Iteration= 189, Error= 23.9726955339, Sparsity= 0.726867689608
Iteration= 190, Error= 23.9634240376, Sparsity= 0.727412242524
Iteration= 191, Error= 23.954265575, Sparsity= 0.727951332998
Iteration= 192, Error= 23.9452175412, Sparsity= 0.728485045061
Iteration= 193, Error= 23.9362774359, Sparsity= 0.729013464729
Iteration= 194, Error= 23.9274428548, Sparsity= 0.729536680648
Iteration= 195, Error= 23.9187114873, Sparsity= 0.73005478415
Iteration= 196, Error= 23.9100811253, Sparsity= 0.730567868885
Error= 23.9100811253, Sparsity= 0.734062463311
%% Cell type:code id: tags:
``` python
results
```
%% Output
Empty DataFrame
Columns: [error, sparsity, diff_W, diff_H, W_minmax, H_0th, H_25th, H_50th, H_75th, H_100th]
Index: []
%% Cell type:code id: tags:
``` python
np.savetxt('W_trips.txt', W)
np.savetxt('H_trips.txt', H)
np.savetxt('W_(seed_W = 10,seed_H = 21).txt', W)
np.savetxt('H_(seed_W = 10,seed_H = 21).txt', H)
```
%% Cell type:code id: tags:
``` python
print(sum(sum(H==0))/H.size)
```
%% Output
0.0
......
......@@ -41,7 +41,7 @@ def generate_filenames(path, path_for_data=None):
'''Global variables'''
RANK = 70 # Rank for Matrix Factorization in Phase1.py
RANK = 50 # Rank for Matrix Factorization in Phase1.py
TRIPS = 1 # Boolean variable: 0 reads travel_speeds data, 1 reads number_of_trips data.
HOURS_IN_YEAR = 8760 # 24*365
SEEDED = 1 # Boolean variable: 1 or 0 means Phase1.py is seeded or not respectively.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment