import sys #sys.path.append("RRA") from importlib import reload import gen_data,plot_tool import RRclustering3 reload(RRclustering3) reload(gen_data) reload(plot_tool) from RRclustering3 import RRalg, save_result,load_result from plot_tool import plot_result,plot_thr_result_files import numpy as np #%% #%% Scurve data_name = 'Scurve' X,_=gen_data.Scurve(50,True) gen_data.plotpt(X,ticks=False,savename='result_plots\M2R2\\'+data_name) n = X.shape[0] #%% parms={'beta':0.8,'lambda':80,\ 'list_NumPt4Instance':[2],\ 'dist_adj':True,'initial_method':'Local_Best',\ 'ini_seed':3} #%% for lam in [10,20,110,120]: parms['lambda']=lam a=RRalg(X,parms) a.run() name = 'result_rra\M2R2\\'+data_name+'_n%d_b%1.1f_l%d' \ %(n,parms['beta'],parms['lambda']) save_result(a,name) #%%
import RRclustering3 reload(RRclustering3) from RRclustering3 import RRalg, save_result,load_result import plot_tool #%% lib_parms={'ls_line_parm': [[0.,0.,5.,-4.],[0.,0.,1.,.5]]} lib_parms['ls_range_x'] = [[-2,2],[-2,2]] lib_parms['ls_var_yz'] = [.001,.001] lib_parms['n_outlier'] = 40 lib_parms['outlier_range_x']=[-2.5,1.5] lib_parms['outlier_range_y']=[-2.5,1.5] n=100 X = gen_data.lines2D(n,lib_parms) gen_data.plotpt(X,ticks=False,savename='result_plots\EM\EM_compare_original_points') #%% #%% parms = {'n_clusters':2} parms['beta_ini'] = np.array([[0.,0.,5.,-4.],[0.,0.,1.,.5]]) a = EM_classify.EM_line_model(X,parms) a.run(tol=1e-3) #%% a.plot_result2D(MarkerSize=10,savename='EM_2lines_40outlier_n100') fig.tight_layout() #%% parms = {'beta':0.8,'lambda':30,'list_NumPt4Instance':[2],'dist_adj':True} b=RRclustering3.RRalg(X,parms) b.run() #%% plot_tool.plot_result(b,b.list_xid_found,savename='result_plots\EM\Xshape_easy_RRa')
reload(gen_data) reload(plot_tool) from RRclustering3 import RRalg, save_result, load_result from plot_tool import plot_result, plot_thr_result_files import numpy as np #%% data_name = 'lines3D' lib_parms={'ls_line_parm': [[0.,0.,3.,5.,-4.,1.],\ [1.,2.,5.,-2.,3.,4.],\ [1.,1.,1.,1.,10.,3.]]} lib_parms['ls_range_x'] = [[-3, 5], [-1, 4], [0, 4]] lib_parms['ls_var_yz'] = [.3, .3, .3] n = 60 X = gen_data.lines3D(n, lib_parms) name = 'result_plots\M2R3\\' + data_name + 'wo_ticks' gen_data.plotpt(X, ticks=False, savename=name) #%% gen_data.plotpt(X, ticks=False, savename=name, elev=24, azim=5) ##%% #%% n = X.shape[0] parms={'beta':0.8,'lambda':100,\ 'list_NumPt4Instance':[2],\ 'dist_adj':True,'initial_method':'Local_Best',} a = RRalg(X, parms) #%% a.run() #%% name = 'result_plots\M2R3\\' + data_name + '_n%d_b0.8_l%d_2' % ( n, parms['lambda'])
#lib_parms={'ls_pts':[[-1,1],[0,1.7],[1,1]],\ # 'var':[0.05]*3} #X=gen_data.points(200,lib_parms) # #gen_data.plotpt(X,savename='result_plots\M1R2\\'+data_name) #%% data_name = 'Stars' ss = [[i / 2, 0] for i in np.arange(0, 3)] ss = ss + [[i / 2, 1 / 2] for i in np.arange(0, 3)] ss = ss + [[i / 2, 1] for i in np.arange(0, 3)] lib_parms={'ls_pts':ss,\ 'var':[0.015]*9,\ 'distr':'Gaussian'} X = gen_data.points(200, lib_parms) #X = gen_data.add_outlier(100,X) gen_data.plotpt(X, savename='result_plots\M1R2\\' + data_name) #%% data_name = 'Mouse' lib_parms={'ls_pts':[[-.4,.4],[0,0],[.4,.4]],\ 'var':[0.02,0.2,0.02],\ 'ls_n':[2,8,2],\ 'distr':'Uniform'} X = gen_data.points(200, lib_parms) #X = gen_data.add_outlier(100,X) gen_data.plotpt(X, savename='result_plots\M1R2\\' + data_name) #%% k-means kmeans = KMeans(n_clusters=9, random_state=0).fit(X) cc = kmeans.labels_ colorname = list(colors.cnames.keys()) colorname.pop(2) colorname = ['r', 'g', 'b', 'c', 'm', 'y', 'k'] + colorname
import gen_data,plot_tool import RRclustering3 reload(RRclustering3) reload(gen_data) reload(plot_tool) from RRclustering3 import RRalg, save_result,load_result from plot_tool import plot_result,plot_thr_result_files import numpy as np #%% data_name = 'plane 3D' lib_parms={'ls_plane_parm':[[0,0,1,0],[0,1,1,0]]} lib_parms['ls_range_xy']=[[0,5,-5,5],[0,5,-5,5]] lib_parms['ls_var_z']=[.2,.2,.2] X = gen_data.planes3D(50,lib_parms) name = 'result_plots\M3R3\\'+data_name+'_wo_tick_0' gen_data.plotpt(X,ticks=False,savename=name,azim=18,elev=13) name = 'result_plots\M3R3\\'+data_name+'_wo_tick_1' gen_data.plotpt(X,ticks=False,savename=name,azim=-177,elev=0) #%% n = X.shape[0] parms={'beta':0.8,'lambda':40,\ 'list_NumPt4Instance':[3],\ 'dist_adj':True,'initial_method':'Local_Best',} a=RRalg(X,parms) #%% a.run() #%% name = 'result_plots\M3R3\\'+data_name+'_n%d_b%1.1f_l%d_0' \ %(n,parms['beta'],parms['lambda']) plot_result(a,a.list_xid_found,savename=name,elev=18,azim=13) name = 'result_plots\M3R3\\'+data_name+'_n%d_b%1.1f_l%d_1' \
reload(MSVolume) reload(RRclustering3) reload(plot_tool) reload(gen_data) reload(minSumVol) #%% Example 1.0: clean percent sign in 2D %%%%%%%%%%%%%%%%% data_name = 'pct clean' lib_parms = {'ls_pts': [[-2, 4], [2, -2]], 'var': [[0.1], [0.1]]} X0 = gen_data.points(50, lib_parms) lib_parms = {'ls_line_parm': [[0., 0., 1., 1.]]} lib_parms['ls_range_x'] = [[-3, 5]] lib_parms['ls_var_yz'] = [0.05] X1 = gen_data.lines2D(40, lib_parms) X = np.vstack((X0, X1)) gen_data.plotpt(X) #%% #%% Example 1.1: corruted percent sign in 2D %%%%%%%%%%%%%%%%% data_name = 'pct' lib_parms = {'ls_pts': [[-2, 4], [2, -2]], 'var': [[0.1], [0.1]]} X0 = gen_data.points(50, lib_parms) lib_parms = {'ls_line_parm': [[0., 0., 1., 1.]]} lib_parms['ls_range_x'] = [[-3, 5]] lib_parms['ls_var_yz'] = [0.05] X1 = gen_data.lines2D(40, lib_parms) X2 = np.vstack((X0, X1)) gen_data.plotpt(X2) X = gen_data.add_outlier(40, X2) #%%#%% Example 2.0: points3D data_name = '3Dmix_clean' lib_parms = {'ls_pts': [[4, 4, 5]], 'var': [[0.1]]}
fv_l, Zid = Aux_fcn.run_exactsol_with_C(a, m=3) # m=3: Zid = [ 601 1004 1223] #%% Aux_fcn.plot_result(a, Zid_exact=Zid, MarkerSize=50) ############################################################################################### #%% 3D line example: #%% line3D lib_parms = { 'ls_line_parm': [[0., 0., 0., 5., -4., 1.], [1., 2., 5., -2., 3., 4.], [1., 1., 1., 1., 10., 3.]] } lib_parms['ls_range_x'] = [[-3, 3], [-1, 4], [0, 5]] lib_parms['ls_var_yz'] = [.3, .3, .3] n = 50 X = gen_data.lines3D(n, lib_parms) gen_data.plotpt(X, title='Original data') parms = {'beta': 0.8, 'lambda': 50, 'Model_Type': 'line'} parms['initial_method'] = 'Random' # or 'Local_Best' #%% run the algorithm a = RRalg(X, parms) a.run() #%% the exact solution #lib_parms={'ls_line_parm': [[0.,0.,0.,5.,-4.,1.],[1.,2.,5.,-2.,3.,4.],[1.,1.,1.,1.,10.,3.]]} #lib_parms['ls_range_x'] = [[-3,3],[-1,4],[0,5]] #lib_parms['ls_var_yz'] = [.3,.3,.3] #n=50 #X = gen_data.lines3D(n,lib_parms) fv_l, Zid = Aux_fcn.run_exactsol_with_C(a, m=3) # m=1: h = 14.921015730101239, Zid = [1105]
X = gen_data.add_outlier(15, X1, random_seed=3) #%% 'Xshape_cor' data_name = 'XshapeCor' lib_parms = {'ls_line_parm': [[0., 0., 5., -4.], [0., 0., 1., .5]]} lib_parms['ls_range_x'] = [[-2, 2], [-4, 4]] lib_parms['ls_var_yz'] = [.01, .01] lib_parms['n_outlier'] = 40 lib_parms['outlier_range_x'] = [-2.5, 1.5] lib_parms['outlier_range_y'] = [-2.5, 1.5] n = 100 X = gen_data.lines2D(n, lib_parms) #X = gen_data.add_outlier(20,X1,random_seed=3) #%% name = 'result_plots\M2R2\\' + data_name gen_data.plotpt(X, ticks=False, savename=name, title=data_name) #%% n = X.shape[0] parms={'beta':0.8,'lambda':50,\ 'list_NumPt4Instance':[2],\ 'dist_adj':True,'initial_method':'Random',} a = RRalg(X, parms) a.run() name = 'result_plots\M2R2\\' + data_name + '_RRA_' + parms[ 'initial_method'] + 'b08' plot_result(a, a.list_xid_found, savename=name) #%% parms['initial_method'] = 'Local_Best' a = RRalg(X, parms) a.run()
reload(gen_data) import wrapper_fcns reload(wrapper_fcns) import itertools as it #%% #%% points and line lib_parms = {'ls_pts': [[-2, 4], [2, -2]], 'var': [[0.1], [0.1]]} X0 = gen_data.points(50, lib_parms) lib_parms = {'ls_line_parm': [[0., 0., 1., 1.]]} lib_parms['ls_range_x'] = [[-3, 5]] lib_parms['ls_var_yz'] = [0.05] X1 = gen_data.lines2D(40, lib_parms) X2 = np.vstack((X0, X1)) gen_data.plotpt(X2, savename='clean_percentile_data') #%% X = gen_data.add_outlier(40, X2) #gen_data.plotpt(X,savename='mix_model_results\percentile_data_cor_n130') gen_data.plotpt(X) #%% parms = {'beta':0.8,'lambda':70,'list_NumPt4Instance':[1,2],\ 'disp_info':True,'list_dist_mply':[1,1.5]} a = RRalg(X, parms) a.run() #%% save_name = 'mix_model_results\stgy1_percentile_data_n90_%d' % parms[ 'list_dist_mply'][1] plot_tool.plot_result(a,a.list_xid_found,title='show_weight',\ savename = save_name)