@@ -187,6 +187,9 @@ def __init__(
187187 ):
188188
189189 self .X = X
190+
191+ if X .shape [0 ] != y .shape [0 ]:
192+ raise ValueError ("X and y have different lengths." )
190193
191194 setting = approx_setting (
192195 parent = self ,
@@ -384,7 +387,7 @@ def _autoapproximate(
384387 B ,
385388 maxiter ,
386389 solver ,
387- verbose ,
390+ verbosity ,
388391 solver_max_iter ,
389392 solver_weights ,
390393 solver_verbose ,
@@ -398,8 +401,16 @@ def _autoapproximate(
398401
399402 D = dict ([(u , tuple ([1.0 ] * len (u ))) for u in setting .U ])
400403 t = dict ([(u , tuple ([1.0 ] * len (u ))) for u in setting .U ])
404+
405+ if verbosity > 3 :
406+ if not os .path .exists ("log" ):
407+ os .mkdir ("log" )
408+ with open ('log/log.csv' , 'w' , newline = '' ) as csvfile :
409+ csv .writer (csvfile , delimiter = ',' ).writerow (["it" ] + setting .U )
401410
402411 for idx in range (maxiter ):
412+ if verbosity > 0 :
413+ print ("===== Iteration " , str (idx + 1 ), " =====" )
403414 bw = compute_bandwidth (B , D , t )
404415 if setting .N is not None :
405416 self .addSetting (setting )
@@ -409,9 +420,14 @@ def _autoapproximate(
409420 setting .N = [bw [i ] for i in setting .U ]
410421 self .addTrafo ()
411422
412- if verbose :
413- print ("bw in iteration" , str (idx + 1 ), "are" , str (bw ))
414-
423+ if verbosity > 0 :
424+ for i in setting .U :
425+ print ("bw in" , str (i ), ":" , bw [i ])
426+ #print("bw in iteration", str(idx + 1), "are", str(bw))
427+ print ()
428+ if verbosity > 3 :
429+ with open ('log/log.csv' , 'a' , newline = '' ) as csvfile :
430+ csv .writer (csvfile , delimiter = ',' ).writerow (["bw in it" + str (idx + 1 )] + [str (bw [i ]) for i in setting .U ])
415431 self .approximate (
416432 lam = lam ,
417433 solver = solver ,
@@ -421,16 +437,25 @@ def _autoapproximate(
421437 tol = solver_tol ,
422438 )
423439
424- D , t = self .estimate_rates (lam = lam , verbose = verbose )
425- if verbose :
426- print (
427- "estimated rates in iteration" ,
428- str (idx + 1 ),
429- "are D =" ,
430- str (D ),
431- "and t =" ,
432- str (t ),
433- )
440+ D , t = self .estimate_rates (lam = lam , verbosity = verbosity )
441+ if verbosity > 1 :
442+ for i in setting .U :
443+ print ("estimated rates for" , str (i ), ": D = " , str (D [i ]), "and t = " , str (t [i ]) )
444+ print ()
445+
446+ #print(
447+ # "estimated rates in iteration",
448+ # str(idx + 1),
449+ # "are D =",
450+ # str(D),
451+ # "and t =",
452+ # str(t),
453+ #)
454+ if verbosity > 3 :
455+ with open ('log/log.csv' , 'a' , newline = '' ) as csvfile :
456+ wr = csv .writer (csvfile , delimiter = ',' )
457+ wr .writerow (["D in it" + str (idx + 1 )] + [str (D [i ]) for i in setting .U ])
458+ wr .writerow (["t in it" + str (idx + 1 )] + [str (t [i ]) for i in setting .U ])
434459 return D , t
435460
436461 def autoapproximate (
@@ -440,7 +465,7 @@ def autoapproximate(
440465 B = None ,
441466 maxiter = 2 ,
442467 solver = "lsqr" ,
443- verbose = False ,
468+ verbosity = 0 ,
444469 solver_max_iter = 50 ,
445470 solver_weights = None ,
446471 solver_verbose = False ,
@@ -462,7 +487,7 @@ def autoapproximate(
462487 B = B ,
463488 maxiter = maxiter ,
464489 solver = solver ,
465- verbose = verbose ,
490+ verbosity = verbosity ,
466491 solver_max_iter = solver_max_iter ,
467492 solver_weights = solver_weights ,
468493 solver_verbose = solver_verbose ,
@@ -476,7 +501,7 @@ def autoapproximate(
476501 B = B ,
477502 maxiter = maxiter ,
478503 solver = solver ,
479- verbose = verbose ,
504+ verbosity = verbosity ,
480505 solver_max_iter = solver_max_iter ,
481506 solver_weights = solver_weights ,
482507 solver_verbose = solver_verbose ,
0 commit comments