Using SageMaker PCA with tdapiclient | API Integration - Using SageMaker PCA with tdapiclient - Teradata Vantage

Teradata Vantageā„¢ - API Integration Guide for Cloud Machine Learning

Deployment
VantageCloud
VantageCore
Edition
Enterprise
IntelliFlex
VMware
Product
Teradata Vantage
Release Number
1.4
Published
September 2023
Language
English (United States)
Last Update
2023-09-28
dita:mapPath
mgu1643999543506.ditamap
dita:ditavalPath
ayr1485454803741.ditaval
dita:id
mgu1643999543506

This use case shows the steps to use SageMaker PCA with tdapiclient.

You can download the aws-usecases.zip file in the attachment as a reference. The pca folder in the zip file includes a Jupyter notebook file (ipynb) and a CSV file containing the dataset required to run this use case.

  1. Import necessary libraries.
    import getpass
    from tdapiclient import create_tdapi_context, TDApiClient
    from teradataml import create_context, DataFrame, copy_to_sql,load_example_data, configure, LabelEncoder, valib,Retain
    import pandas as pd
    from teradatasqlalchemy.types import *
  2. Create the connection.
    host = input("Host: ")
    username = input("Username: ")
    password = getpass.getpass("Password: ")
    td_context = create_context(host=host, username=username, password=password)
  3. Create TDAPI context and TDApiClient object.
    s3_bucket = input("S3 Bucket(Please provide just the bucket name, for example: test-bucket): ")
    access_id = input("Access ID:")
    access_key = getpass.getpass("Acess Key: ")
    region = input("AWS Region: ")
    os.environ["AWS_ACCESS_KEY_ID"] = access_id
    os.environ["AWS_SECRET_ACCESS_KEY"] = access_key
    os.environ["AWS_REGION"] = region
    tdapi_context = create_tdapi_context("aws", bucket_name=s3_bucket)
    td_apiclient = TDApiClient(tdapi_context)
  4. Set up data.
    1. Read the breast cancer dataset.
      data = pd.read_csv ("cancer_data.csv")
    2. Drop unnecessary columns.
      data=data.drop(['Unnamed: 32'], axis=1)
    3. Rename columns for creating teradataml DataFrame.
      data.rename(columns={'concave points_mean':'concave_points_mean',
                                 "concave points_se":"concave_points_se",
                                 "concave points_worst":"concave_points_worst"},                   inplace=True)
    4. Insert the dataframe in the tables.
      data_table = "cancer_data"
      column_types = {
          "id":INTEGER,
          "diagnosis": CHAR(1),
          "radius_mean": FLOAT,
          "texture_mean": FLOAT,
          "perimeter_mean": FLOAT,        
          "area_mean": FLOAT,                
          "smoothness_mean": FLOAT ,         
          "compactness_mean": FLOAT ,        
          "concavity_mean": FLOAT    ,       
          "concave_points_mean": FLOAT,   
          "symmetry_mean": FLOAT        ,    
          "fractal_dimension_mean": FLOAT,   
          "radius_se": FLOAT              ,  
          "texture_se": FLOAT              , 
          "perimeter_se": FLOAT             ,
          "area_se": FLOAT                 ,
          "smoothness_se": FLOAT           ,
          "compactness_se": FLOAT           ,
          "concavity_se": FLOAT             ,
          "concave_points_se": FLOAT       ,
          "symmetry_se": FLOAT              ,
          "fractal_dimension_se": FLOAT     ,
          "radius_worst": FLOAT             ,
          "texture_worst": FLOAT           ,
          "perimeter_worst": FLOAT          ,
          "area_worst": FLOAT               ,
          "smoothness_worst": FLOAT         ,
          "compactness_worst": FLOAT        ,
          "concavity_worst": FLOAT          ,
          "concave_points_worst": FLOAT   ,
          "symmetry_worst": FLOAT          , 
          "fractal_dimension_worst": FLOAT 
                     }
      copy_to_sql(df=data, table_name=data_table, if_exists="replace", types=column_types)
    5. Create a teradataml DataFrame using the table.
      df = DataFrame(table_name=data_table)
  5. Prepare dataset.
    1. Encode the target column using label encoder.
      from teradataml import LabelEncoder 
      rc = LabelEncoder(values=("M", 1), columns=["diagnosis"], default=0)
      feature_columns_names= Retain(columns=["radius_mean",
         "texture_mean",
         "perimeter_mean",        
         "area_mean",                
         "smoothness_mean" ,         
         "compactness_mean" ,        
         "concavity_mean"  ,       
         "concave_points_mean",   
         "symmetry_mean"       ,    
         "fractal_dimension_mean",   
         "radius_se"              ,  
         "texture_se"           , 
         "perimeter_se"           ,
         "area_se"             ,
         "smoothness_se"          ,
         "compactness_se"           ,
         "concavity_se"         ,
         "concave_points_se"      ,
         "symmetry_se"             ,
         "fractal_dimension_se"   ,
         "radius_worst"           ,
         "texture_worst"          ,
         "perimeter_worst"         ,
         "area_worst"               ,
         "smoothness_worst"        ,
         "compactness_worst"       ,
         "concavity_worst"        ,
         "concave_points_worst"  ,
         "symmetry_worst"        , 
         "fractal_dimension_worst" ])
      configure.val_install_location = "alice"
      data = valib.Transform(data=df, label_encode=rc,index_columns="id",unique_index=True,retain=feature_columns_names)
      df=data.result
    2. Drop unnecessary columns.
      df=df.drop(["id","diagnosis"],axis=1)
    3. Create two samples of input data: sample 1 has 80% of total rows and sample 2 has 20% of total rows.
      cancer_sample = df.sample(frac=[0.8, 0.2])
    4. Create train dataset from sample 1 by filtering on "sampleid" and drop "sampleid" column as it is not required for training model.
      train = cancer_sample[cancer_sample.sampleid == "1"].drop("sampleid", axis = 1)
      train
      The output:
      radius_mean	texture_mean	perimeter_mean	area_mean	smoothness_mean	compactness_mean	concavity_mean	concave_points_mean	symmetry_mean	fractal_dimension_mean	radius_se	texture_se	perimeter_se	area_se	smoothness_se	compactness_se	concavity_se	concave_points_se	symmetry_se	fractal_dimension_se	radius_worst	texture_worst	perimeter_worst	area_worst	smoothness_worst	compactness_worst	concavity_worst	concave_points_worst	symmetry_worst	fractal_dimension_worst
      18.08	21.84	117.4	1024.0	0.07371	0.08642	0.1103	0.05778	0.177	0.0534	0.6362	1.305	4.312	76.36	0.00553	0.05296	0.0611	0.01444	0.0214	0.005036	19.76	24.7	129.1	1228.0	0.08822	0.1963	0.2535	0.09181	0.2369	0.06558
      18.05	16.15	120.2	1006.0	0.1065	0.2146	0.1684	0.108	0.2152	0.06673	0.9806	0.5505	6.311	134.8	0.00794	0.05839	0.04658	0.0207	0.02591	0.007054	22.39	18.91	150.1	1610.0	0.1478	0.5634	0.3786	0.2102	0.3751	0.1108
      19.07	24.81	128.3	1104.0	0.09081	0.219	0.2107	0.09961	0.231	0.06343	0.9811	1.666	8.83	104.9	0.006548	0.1006	0.09723	0.02638	0.05333	0.007646	24.09	33.17	177.4	1651.0	0.1247	0.7444	0.7242	0.2493	0.467	0.1038
      16.17	16.07	106.3	788.5	0.0988	0.1438	0.06651	0.05397	0.199	0.06572	0.1745	0.489	1.349	14.91	0.00451	0.01812	0.01951	0.01196	0.01934	0.003696	16.97	19.14	113.1	861.5	0.1235	0.255	0.2114	0.1251	0.3153	0.0896
      15.3	25.27	102.4	732.4	0.1082	0.1697	0.1683	0.08751	0.1926	0.0654	0.439	1.012	3.498	43.5	0.005233	0.03057	0.03576	0.01083	0.01768	0.002967	20.27	36.71	149.3	1269.0	0.1641	0.611	0.6335	0.2024	0.4027	0.09876
      14.5	10.89	94.28	640.7	0.1101	0.1099	0.08842	0.05778	0.1856	0.06402	0.2929	0.857	1.928	24.19	0.003818	0.01276	0.02882	0.012	0.0191	0.002808	15.7	15.98	102.8	745.5	0.1313	0.1788	0.256	0.1221	0.2889	0.08006
      15.04	16.74	98.73	689.4	0.09883	0.1364	0.07721	0.06142	0.1668	0.06869	0.372	0.8423	2.304	34.84	0.004123	0.01819	0.01996	0.01004	0.01055	0.003237	16.76	20.43	109.7	856.9	0.1135	0.2176	0.1856	0.1018	0.2177	0.08549
      8.196	16.84	51.71	201.9	0.086	0.05943	0.01588	0.005917	0.1769	0.06503	0.1563	0.9567	1.094	8.205	0.008968	0.01646	0.01588	0.005917	0.02574	0.002582	8.964	21.96	57.26	242.2	0.1297	0.1357	0.0688	0.02564	0.3105	0.07409
      16.26	21.88	107.5	826.8	0.1165	0.1283	0.1799	0.07981	0.1869	0.06532	0.5706	1.457	2.961	57.72	0.01056	0.03756	0.05839	0.01186	0.04022	0.006187	17.73	25.21	113.7	975.2	0.1426	0.2116	0.3344	0.1047	0.2736	0.07953
      9.042	18.9	60.07	244.5	0.09968	0.1972	0.1975	0.04908	0.233	0.08743	0.4653	1.911	3.769	24.2	0.009845	0.0659	0.1027	0.02527	0.03491	0.007877	10.06	23.4	68.62	297.1	0.1221	0.3748	0.4609	0.1145	0.3135	0.1055
      
    5. Create test dataset from sample 2 by filtering on "sampleid" and drop "sampleid" column as it is not required for scoring.
      test = cancer_sample[cancer_sample.sampleid == "2"].drop("sampleid", axis = 1)
      test
      The output:
      radius_mean	texture_mean	perimeter_mean	area_mean	smoothness_mean	compactness_mean	concavity_mean	concave_points_mean	symmetry_mean	fractal_dimension_mean	radius_se	texture_se	perimeter_se	area_se	smoothness_se	compactness_se	concavity_se	concave_points_se	symmetry_se	fractal_dimension_se	radius_worst	texture_worst	perimeter_worst	area_worst	smoothness_worst	compactness_worst	concavity_worst	concave_points_worst	symmetry_worst	fractal_dimension_worst
      18.31	20.58	120.8	1052.0	0.1068	0.1248	0.1569	0.09451	0.186	0.05941	0.5449	0.9225	3.218	67.36	0.006176	0.01877	0.02913	0.01046	0.01559	0.002725	21.86	26.2	142.2	1493.0	0.1492	0.2536	0.3759	0.151	0.3074	0.07863
      15.1	22.02	97.26	712.8	0.09056	0.07081	0.05253	0.03334	0.1616	0.05684	0.3105	0.8339	2.097	29.91	0.004675	0.0103	0.01603	0.009222	0.01095	0.001629	18.1	31.69	117.7	1030.0	0.1389	0.2057	0.2712	0.153	0.2675	0.07873
      19.8	21.56	129.7	1230.0	0.09383	0.1306	0.1272	0.08691	0.2094	0.05581	0.9553	1.186	6.487	124.4	0.006804	0.03169	0.03446	0.01712	0.01897	0.004045	25.73	28.64	170.3	2009.0	0.1353	0.3235	0.3617	0.182	0.307	0.08255
      15.3	25.27	102.4	732.4	0.1082	0.1697	0.1683	0.08751	0.1926	0.0654	0.439	1.012	3.498	43.5	0.005233	0.03057	0.03576	0.01083	0.01768	0.002967	20.27	36.71	149.3	1269.0	0.1641	0.611	0.6335	0.2024	0.4027	0.09876
      10.29	27.61	65.67	321.4	0.0903	0.07658	0.05999	0.02738	0.1593	0.06127	0.2199	2.239	1.437	14.46	0.01205	0.02736	0.04804	0.01721	0.01843	0.004938	10.84	34.91	69.57	357.6	0.1384	0.171	0.2	0.09127	0.2226	0.08283
      9.268	12.87	61.49	248.7	0.1634	0.2239	0.0973	0.05252	0.2378	0.09502	0.4076	1.093	3.014	20.04	0.009783	0.04542	0.03483	0.02188	0.02542	0.01045	10.28	16.38	69.05	300.2	0.1902	0.3441	0.2099	0.1025	0.3038	0.1252
      11.04	16.83	70.92	373.2	0.1077	0.07804	0.03046	0.0248	0.1714	0.0634	0.1967	1.387	1.342	13.54	0.005158	0.009355	0.01056	0.007483	0.01718	0.002198	12.41	26.44	79.93	471.4	0.1369	0.1482	0.1067	0.07431	0.2998	0.07881
      13.61	24.98	88.05	582.7	0.09488	0.08511	0.08625	0.04489	0.1609	0.05871	0.4565	1.29	2.861	43.14	0.005872	0.01488	0.02647	0.009921	0.01465	0.002355	16.99	35.27	108.6	906.5	0.1265	0.1943	0.3169	0.1184	0.2651	0.07397
      14.03	21.25	89.79	603.4	0.0907	0.06945	0.01462	0.01896	0.1517	0.05835	0.2589	1.503	1.667	22.07	0.007389	0.01383	0.007302	0.01004	0.01263	0.002925	15.33	30.28	98.27	715.5	0.1287	0.1513	0.06231	0.07963	0.2226	0.07617
      14.64	15.24	95.77	651.9	0.1132	0.1339	0.09966	0.07064	0.2116	0.06346	0.5115	0.7372	3.814	42.76	0.005508	0.04412	0.04436	0.01623	0.02427	0.004841	16.34	18.24	109.4	803.6	0.1277	0.3089	0.2604	0.1397	0.3151	0.08473
      
  6. Create PCA SageMaker instance through tdapiclient.
    exec_role_arn = "arn:aws:iam::076782961461:role/service-role/AmazonSageMaker-ExecutionRole-20210112T215668"
    pca = td_apiclient.PCA(
        role=exec_role_arn,
        instance_count=1,
        instance_type="ml.m5.xlarge",
        feature_dim=30,
        num_components=20,
        subtract_mean=True,
        mini_batch_size=20
    )
  7. Covert teradataml DataFrame to NumPy ndarray and store it as PCA RecordSet object.
    train_set=pca.record_set(train.get_values().astype('float32'))
  8. Start training using RecordSet object.
    pca.fit(train_set) 
  9. Create Serializer and Deserializer, so predictor can handle CSV input and output.
    from sagemaker.serializers import CSVSerializer
    from sagemaker.deserializers import CSVDeserializer
    csv_ser = CSVSerializer()
    csv_dser = CSVDeserializer()
    predictor = pca.deploy("aws-endpoint",
                           sagemaker_kw_args={"instance_type": "ml.m5.large", "initial_instance_count": 1, "serializer": csv_ser, "deserializer": csv_dser})
  10. Try prediction integration using teradataml DataFrame and the predictor object created in previous step.
    1. Confirm that predictor is correctly configured for accepting csv input.
      print(predictor.cloudObj.accept)
      The output:
      ('text/csv',)
    2. Try prediction with UDF and Client options.
      Prediction with Client option:
      output = predictor.predict(test, mode="client",content_type='csv')
      output
      The output:
      [['{"projections": [{"projection": [0.003895685076713562',
        ' 0.0061229318380355835',
        ' -0.0047997236251831055',
        ' 0.004468563944101334',
        ' 0.010653555393218994',
        ' -0.016420233994722366',
        ' -0.008977413177490234',
        ' 0.03230781853199005',
        ' -0.10400402545928955',
        ' 0.17058533430099487',
        ' -0.053495049476623535',
        ' -0.3316737413406372',
        ' -0.23530852794647217',
        ' 0.17611587047576904',
        ' 0.27698516845703125',
        ' -1.7408714294433594',
        ' 1.8240509033203125',
        ' 5.520957946777344',
        ' -42.47268295288086',
        ' -280.5753173828125]}',
        ' {"projection": [-0.0140230692923069',
        ' -0.015108399093151093',
        ' 0.006812885403633118',
        ' 0.10005844384431839',
        ' 0.01633429527282715',
        ' 0.16064375638961792',
        ' 0.025818675756454468',
        ' -0.07550624012947083',
        ' 0.35952305793762207',
        ' -0.3493649363517761',
        ' -0.7519358992576599',
        ' -0.9317904710769653',
        ' 1.6834189891815186',
        ' 3.1111135482788086',
        ' 4.511608123779297',
        ' 2.9455032348632812',
        ' 7.4655609130859375',
        ' 69.96951293945312',
        ' 132.8956298828125',
        ' -144.5096435546875]}',
        ' {"projection": [0.013529308140277863',
        ' 0.011912629008293152',
        ' 0.01518954336643219',
        ' -0.0031506214290857315',
        ' -0.0153769850730896',
        ' 0.01432776264846325',
        ' -0.038580507040023804',
        ' 0.021629780530929565',
        ' -0.01056903600692749',
        ' -0.08091825246810913',
        ' 0.19230115413665771',
        ' -0.6716634035110474',
        ' -0.36203646659851074',
        ' 1.1135780811309814',
        ' 0.38793373107910156',
        ' -10.569334030151367',
        ' 14.767555236816406',
        ' 93.7164306640625',
        ' -329.31646728515625',
        ' 807.404296875]}',
        ' {"projection": [0.006501875817775726',
        ' -0.006571635603904724',
        ' 0.017702504992485046',
        ' 0.00018531735986471176',
        ' -0.05006831884384155',
        ' 0.0026388168334960938',
        ' -0.019286125898361206',
        ' 0.022142529487609863',
        ' 0.036237359046936035',
        ' 0.044234514236450195',
        ' 0.313662052154541',
        ' 0.38445520401000977',
        ' 0.060160279273986816',
        ' 1.3223055601119995',
        ' 1.1569652557373047',
        ' 16.1127872467041',
        ' 2.8048934936523438',
        ' 10.53080940246582',
        ' -11.20751953125',
        ' -638.9435424804688]}',
        ' {"projection": [0.022381030023097992',
        ' -0.010654665529727936',
        ' 0.001134529709815979',
        ' 0.017209168523550034',
        ' 0.0990397036075592',
        ' 0.0008476637303829193',
        ' -0.07461464405059814',
        ' 0.04189904034137726',
        ' -0.09107446670532227',
        ' -0.12636703252792358',
        ' -0.15053915977478027',
        ' 0.1986534595489502',
        ' 0.9277642965316772',
        ' 0.5059078931808472',
        ' -2.0118227005004883',
        ' -4.678251266479492',
        ' 1.6602401733398438',
        ' 17.421085357666016',
        ' -78.74420166015625',
        ' 1708.963623046875]}',
        ' {"projection": [-0.0057791247963905334',
        ' 0.010911814868450165',
        ' 0.014024853706359863',
        ' -0.00928217638283968',
        ' 0.01985182613134384',
        ' -0.024063386023044586',
        ' 0.06862384080886841',
        ' -0.03443780541419983',
        ' -0.01860874891281128',
        ' -0.1669723391532898',
        ' 0.11748838424682617',
        ' 0.11403727531433105',
        ' 0.048689186573028564',
        ' 0.7948832511901855',
        ' 0.39755821228027344',
        ' 9.589300155639648',
        ' 3.4696884155273438',
        ' 4.661384582519531',
        ' 8.006317138671875',
        ' -486.89227294921875]}',
        ' {"projection": [-0.003955855965614319',
        ' -0.008451111614704132',
        ' -0.00735318660736084',
        ' 0.011908737011253834',
        ' 0.011000677943229675',
        ' 0.002250414341688156',
        ' 0.02006039023399353',
        ' 0.059947237372398376',
        ' -0.11341169476509094',
        ' 0.12275081872940063',
        ' 0.13149809837341309',
        ' -0.030761003494262695',
        ' -0.4380854368209839',
        ' 0.14547276496887207',
        ' 2.1504993438720703',
        ' -0.1942920684814453',
        ' -2.5969772338867188',
        ' -16.122665405273438',
        ' 14.819549560546875',
        ' 714.8115234375]}',
        ' {"projection": [-0.0013190172612667084',
        ' -0.005996823310852051',
        ' 0.004772022366523743',
        ' -0.004289710894227028',
        ' -0.0012611150741577148',
        ' -0.0062460340559482574',
        ' 0.006042569875717163',
        ' 0.02545413374900818',
        ' -0.10425147414207458',
        ' -0.08818507194519043',
        ' -0.04215693473815918',
        ' 0.03948044776916504',
        ' -0.006448090076446533',
        ' -2.233273506164551',
        ' -0.7305545806884766',
        ' 2.628972053527832',
        ' -2.0869674682617188',
        ' 2.5925235748291016',
        ' -26.846969604492188',
        ' -514.7208251953125]}',
        ' {"projection": [4.703924059867859e-05',
        ' 0.007313564419746399',
        ' -0.0012868493795394897',
        ' -0.011149733327329159',
        ' -0.022066742181777954',
        ' 0.03328853100538254',
        ' 0.02997729182243347',
        ' -0.05656731128692627',
        ' 0.05033278465270996',
        ' -0.06869763135910034',
        ' -0.3203369975090027',
        ' -0.15362143516540527',
        ' 0.2306044101715088',
        ' 0.6654086112976074',
        ' 0.6523857116699219',
        ' -10.483545303344727',
        ' 1.816558837890625',
        ' 4.529842376708984',
        ' 36.65260314941406',
        ' -83.1636962890625]}',
        ' {"projection": [0.013735678046941757',
        ' -0.013584569096565247',
        ' 0.0011353492736816406',
        ' 0.005749051459133625',
        ' -0.033635109663009644',
        ' 0.03522108867764473',
        ' -0.04806646704673767',
        ' 0.0016609430313110352',
        ' 0.02439647912979126',
        ' -0.13489723205566406',
        ' 0.005519986152648926',
        ' 0.0703965425491333',
        ' -0.03454810380935669',
        ' -2.2287044525146484',
        ' -0.6651077270507812',
        ' -5.426332473754883',
        ' -2.5336532592773438',
        ' -6.068408966064453',
        ' 18.082176208496094',
        ' -336.02252197265625]}',
        ' {"projection": [-0.0061620622873306274',
        ' 0.0013055652379989624',
        ' 0.013577163219451904',
        ' 0.0019384250044822693',
        ' 0.007636219263076782',
        ' 0.0017571784555912018',
        ' 0.014957040548324585',
        ' 0.0027667731046676636',
        ' 0.04686766862869263',
        ' -0.1669335961341858',
        ' -0.29715222120285034',
        ' 0.1650477647781372',
        ' -0.5016000270843506',
        ' -1.810579776763916',
        ' 0.5397987365722656',
        ' 3.9255447387695312',
        ' -1.474700927734375',
        ' -9.190673828125',
        ' 14.523307800292969',
        ' -403.83441162109375]}',
        ' {"projection": [-0.0040519461035728455',
        ' 0.011881843209266663',
        ' -0.013300597667694092',
        ' -0.011269618757069111',
        ' 0.023852042853832245',
        ' -0.014133192598819733',
        ' -0.019234001636505127',
        ' 0.060391321778297424',
        ' 0.011661529541015625',
        ' -0.12914586067199707',
        ' 0.13467919826507568',
        ' -0.444424033164978',
        ' -0.2980654239654541',
        ' -1.348602294921875',
        ' -0.3711662292480469',
        ' 0.7576160430908203',
        ' -1.0461959838867188',
        ' -8.985252380371094',
        ' 2.0801773071289062',
        ' -181.5316162109375]}',
        ' {"projection": [0.01940654218196869',
        ' 0.014533594250679016',
        ' -0.013091400265693665',
        ' -0.009616502560675144',
        ' 0.0036291182041168213',
        ' 0.005617182701826096',
        ' 0.004609495401382446',
        ' -0.03536215424537659',
        ' 0.0269850492477417',
        ' -0.040641844272613525',
        ' 0.15107190608978271',
        ' -0.5855973958969116',
        ' 0.04371577501296997',
        ' 0.428554892539978',
        ' -0.1767559051513672',
        ' -1.3277091979980469',
        ' 0.03377532958984375',
        ' 12.34469985961914',
        ' -104.27620697021484',
        ' 1250.6181640625]}',
        ' {"projection": [0.011532366275787354',
        ' 0.0015450790524482727',
        ' -0.015420347452163696',
        ' 0.039701543748378754',
        ' 0.00606585294008255',
        ' -0.0625266507267952',
        ' -0.044554829597473145',
        ' 0.06883975863456726',
        ' -0.03232407569885254',
        ' 0.4324505925178528',
        ' -0.34291738271713257',
        ' -0.02428412437438965',
        ' -0.05630648136138916',
        ' -0.05635666847229004',
        ' 3.764963150024414',
        ' 0.5162458419799805',
        ' 5.687568664550781',
        ' -4.091133117675781',
        ' -98.36248779296875',
        ' 384.857666015625]}',
        ' {"projection": [-0.00799187645316124',
        ' -0.011355534195899963',
        ' 0.008803009986877441',
        ' 0.011651623994112015',
        ' -0.016736924648284912',
        ' 0.002978198230266571',
        ' -0.04955276846885681',
        ' 0.032191917300224304',
        ' -0.007407486438751221',
        ' -0.08361834287643433',
        ' 0.033826470375061035',
        ' -0.1159583330154419',
        ' 0.6371878385543823',
        ' -0.0027549266815185547',
        ' -1.7259702682495117',
        ' 1.0403051376342773',
        ' 1.4236373901367188',
        ' 14.665267944335938',
        ' -29.871742248535156',
        ' -514.7093505859375]}',
        ' {"projection": [0.005420248955488205',
        ' 0.03218691796064377',
        ' 0.04754514992237091',
        ' -0.011252270080149174',
        ' -0.046208739280700684',
        ' 0.014393217861652374',
        ' -0.005288273096084595',
        ' -0.12474393844604492',
        ' -0.09315338730812073',
        ' 0.14549237489700317',
        ' 0.03416156768798828',
        ' 0.2841991186141968',
        ' -0.7604844570159912',
        ' -1.601844310760498',
        ' -1.9467582702636719',
        ' -1.9221363067626953',
        ' 14.929046630859375',
        ' -21.734893798828125',
        ' -19.070541381835938',
        ' -8.2403564453125]}',
        ' {"projection": [-0.004896052181720734',
        ' -0.022006049752235413',
        ' -0.013668477535247803',
        ' 0.014311705715954304',
        ' 0.036689937114715576',
        ' 0.025276964530348778',
        ' 0.00811120867729187',
        ' -0.010081008076667786',
        ' -0.10425478219985962',
        ' -0.0025402307510375977',
        ' -0.13957256078720093',
        ' -0.4665449857711792',
        ' 0.3695281147956848',
        ' -0.23839354515075684',
        ' -2.305363655090332',
        ' -0.6536579132080078',
        ' -5.781105041503906',
        ' 19.999914169311523',
        ' -56.04940414428711',
        ' -572.7767333984375]}',
        ' {"projection": [-0.001849982887506485',
        ' -0.012280568480491638',
        ' -0.010720565915107727',
        ' 0.000489555299282074',
        ' 0.01676793396472931',
        ' -0.022511795163154602',
        ' 0.09340956807136536',
        ' 0.007780775427818298',
        ' 0.04229801893234253',
        ' -0.10276347398757935',
        ' 0.07640838623046875',
        ' -0.5236862897872925',
        ' -0.3916250467300415',
        ' 1.7699601650238037',
        ' 1.8306236267089844',
        ' 12.962335586547852',
        ' 8.148353576660156',
        ' -0.8043785095214844',
        ' 26.615814208984375',
        ' 60.8917236328125]}',
        ' {"projection": [-0.018164226785302162',
        ' 0.006271332502365112',
        ' -0.005067750811576843',
        ' -0.01346235815435648',
        ' 0.021849825978279114',
        ' -0.017551563680171967',
        ' 0.01881808042526245',
        ' -0.0003627091646194458',
        ' 0.07151508331298828',
        ' -0.16757887601852417',
        ' 0.09676969051361084',
        ' -0.15925323963165283',
        ' -0.5453788042068481',
        ' 0.28770315647125244',
        ' 0.9260902404785156',
        ' -0.6117286682128906',
        ' -7.3348541259765625',
        ' -20.711944580078125',
        ' 81.98028564453125',
        ' -196.98907470703125]}',
        ' {"projection": [-0.021273594349622726',
        ' -0.026670679450035095',
        ' 0.0032527297735214233',
        ' -0.0006852997466921806',
        ' -0.0734715461730957',
        ' -0.13988670706748962',
        ' -0.07167947292327881',
        ' -0.01568824052810669',
        ' -0.15023040771484375',
        ' -0.2348145842552185',
        ' 0.16661667823791504',
        ' 0.4625856876373291',
        ' 2.076737403869629',
        ' 0.7285242080688477',
        ' 1.4723358154296875',
        ' 4.638801574707031',
        ' 9.365951538085938',
        ' -13.74234390258789',
        ' 185.70150756835938',
        ' 591.510009765625]}',
        ' {"projection": [-0.007191203534603119',
        ' -0.004890613257884979',
        ' -0.0010245144367218018',
        ' -0.0015787677839398384',
        ' 0.02357800304889679',
        ' 0.02519134059548378',
        ' -0.07187220454216003',
        ' 0.009615212678909302',
        ' 0.05545896291732788',
        ' -0.08047676086425781',
        ' 0.10294616222381592',
        ' -0.6761258840560913',
        ' 0.3041415810585022',
        ' -1.3916337490081787',
        ' -0.36768531799316406',
        ' -6.130071640014648',
        ' -9.34902572631836',
        ' -18.18413543701172',
        ' 112.4278564453125',
        ' 441.4808349609375]}',
        ' {"projection": [-0.010474476963281631',
        ' -0.013764694333076477',
        ' -0.035213813185691833',
        ' -0.02310030162334442',
        ' 0.023018285632133484',
        ' 0.017704177647829056',
        ' 0.03201797604560852',
        ' 0.02901725471019745',
        ' 0.26863616704940796',
        ' -1.0807340145111084',
        ' -0.34059685468673706',
        ' 0.9656336307525635',
        ' 0.8938214778900146',
        ' -1.544558048248291',
        ' 7.717103958129883',
        ' 20.843921661376953',
        ' -12.917579650878906',
        ' 26.014942169189453',
        ' -691.419677734375',
        ' 2563.284912109375]}',
        ' {"projection": [-0.01746119186282158',
        ' -0.00017266720533370972',
        ' -0.005434855818748474',
        ' -0.015363737009465694',
        ' 0.043260157108306885',
        ' -0.0190575011074543',
        ' -0.03268173336982727',
        ' 0.022827401757240295',
        ' -0.012836754322052002',
        ' -0.14911705255508423',
        ' 0.13824808597564697',
        ' -0.3127293586730957',
        ' -0.32588374614715576',
        ' -0.5400333404541016',
        ' -0.07125282287597656',
        ' -6.852313995361328',
        ' -7.971767425537109',
        ' -8.512859344482422',
        ' 18.21813201904297',
        ' -219.323974609375]}',
        ' {"projection": [-0.010139316320419312',
        ' 0.01349225640296936',
        ' -0.001917719841003418',
        ' 0.02551724761724472',
        ' -0.06221906840801239',
        ' 0.06421231478452682',
        ' -0.07873368263244629',
        ' -0.2466893494129181',
        ' 0.20591676235198975',
        ' 0.44736555218696594',
        ' -0.48394399881362915',
        ' 0.4932734966278076',
        ' -0.5463440418243408',
        ' -3.432394027709961',
        ' -2.9562997817993164',
        ' 1.6038799285888672',
        ' 10.083099365234375',
        ' 0.7854461669921875',
        ' -55.98843002319336',
        ' -488.9334716796875]}',
        ' {"projection": [-0.014339998364448547',
        ' 0.007694371044635773',
        ' 0.0030102431774139404',
        ' 0.008584607392549515',
        ' 0.02386249601840973',
        ' -0.0006651319563388824',
        ' -0.009274899959564209',
        ' -0.022924333810806274',
        ' 0.052540123462677',
        ' -0.0672575831413269',
        ' 0.3116370439529419',
        ' -0.22902894020080566',
        ' 0.5073367357254028',
        ' -0.476489782333374',
        ' 0.8088340759277344',
        ' -5.516410827636719',
        ' -8.551513671875',
        ' 6.594175338745117',
        ' 29.274444580078125',
        ' -406.12713623046875]}',
        ' {"projection": [0.00867561623454094',
        ' 0.004971206188201904',
        ' 0.010748252272605896',
        ' 0.0068774353712797165',
        ' -0.03558593988418579',
        ' 0.058095358312129974',
        ' -0.04731249809265137',
        ' -0.022707805037498474',
        ' -0.07169613242149353',
        ' 0.054146766662597656',
        ' 0.3176746368408203',
        ' 0.3084827661514282',
        ' 0.15322190523147583',
        ' 0.17091190814971924',
        ' 1.7041702270507812',
        ' -5.891593933105469',
        ' -7.4625244140625',
        ' 16.57062339782715',
        ' 3.2010421752929688',
        ' -539.7673950195312]}',
        ' {"projection": [0.006361506879329681',
        ' 0.05007762834429741',
        ' -0.01923346519470215',
        ' 0.0016751070506870747',
        ' -0.0037952736020088196',
        ' -0.06201906502246857',
        ' 0.04748636484146118',
        ' -0.03460058569908142',
        ' -0.011524796485900879',
        ' 0.07372057437896729',
        ' 0.9523336887359619',
        ' 0.244043231010437',
        ' 0.7107484340667725',
        ' 0.2234898805618286',
        ' 0.6004276275634766',
        ' 4.633710861206055',
        ' -6.640483856201172',
        ' 8.452014923095703',
        ' 0.9197158813476562',
        ' -621.4658203125]}',
        ' {"projection": [-0.007176749408245087',
        ' -0.022253915667533875',
        ' 0.0017022192478179932',
        ' 0.0034433738328516483',
        ' 0.0046441033482551575',
        ' -0.006841626018285751',
        ' 0.027304470539093018',
        ' -0.016116395592689514',
        ' -0.05762428045272827',
        ' -0.10693204402923584',
        ' 0.0993032455444336',
        ' -0.14989185333251953',
        ' 0.09127235412597656',
        ' -0.01322317123413086',
        ' -0.258544921875',
        ' 6.576387405395508',
        ' 0.916534423828125',
        ' 8.125595092773438',
        ' -13.683082580566406',
        ' -522.0713500976562]}',
        ' {"projection": [0.008644163608551025',
        ' -0.009197957813739777',
        ' -0.02259044349193573',
        ' -0.01120308693498373',
        ' -0.001768261194229126',
        ' 0.004730116575956345',
        ' -0.0220852792263031',
        ' 0.002699524164199829',
        ' 0.02533620595932007',
        ' -0.07008624076843262',
        ' 0.16497528553009033',
        ' -0.6893471479415894',
        ' -0.26609277725219727',
        ' -0.8792264461517334',
        ' -0.7420330047607422',
        ' 8.438382148742676',
        ' 2.4934539794921875',
        ' -28.65125274658203',
        ' 60.00421142578125',
        ' 538.5313720703125]}',
        ' {"projection": [0.002328958362340927',
        ' 0.006235919892787933',
        ' 0.006538942456245422',
        ' 0.010454720817506313',
        ' -0.028954103589057922',
        ' 0.003008231520652771',
        ' 0.001443624496459961',
        ' 0.021365895867347717',
        ' -0.041108131408691406',
        ' 0.047741055488586426',
        ' -0.24012595415115356',
        ' 0.21823430061340332',
        ' -0.22761130332946777',
        ' 0.5125703811645508',
        ' 0.9919471740722656',
        ' -3.369894027709961',
        ' -3.828094482421875',
        ' 3.0192832946777344',
        ' 0.94866943359375',
        ' -492.39141845703125]}',
        ' {"projection": [-0.0028750449419021606',
        ' -0.017886780202388763',
        ' 0.002900421619415283',
        ' 0.02119803987443447',
        ' 0.005472026765346527',
        ' 0.010585539042949677',
        ' -0.07519662380218506',
        ' 0.012255340814590454',
        ' -0.08894702792167664',
        ' 0.030109167098999023',
        ' 0.2424945831298828',
        ' -0.09824657440185547',
        ' 0.5963349342346191',
        ' 0.36839795112609863',
        ' -0.6485271453857422',
        ' 6.987168312072754',
        ' -4.07196044921875',
        ' 17.566804885864258',
        ' -38.487060546875',
        ' -645.67919921875]}',
        ' {"projection": [0.008812211453914642',
        ' 0.02317851036787033',
        ' 0.017256349325180054',
        ' -0.012809325940907001',
        ' 0.01078122854232788',
        ' -0.02390783280134201',
        ' 0.0023908913135528564',
        ' 0.02080698311328888',
        ' -0.03410327434539795',
        ' -0.055235207080841064',
        ' -0.11835241317749023',
        ' -0.31223857402801514',
        ' -0.7552667856216431',
        ' -0.40815234184265137',
        ' -0.1795482635498047',
        ' 4.139034271240234',
        ' 2.8556747436523438',
        ' -12.41402816772461',
        ' -31.59576416015625',
        ' -144.90423583984375]}',
        ' {"projection": [-0.0012785494327545166',
        ' -0.0065743401646614075',
        ' -0.005068272352218628',
        ' -0.007395065389573574',
        ' 0.0017264112830162048',
        ' 0.01361890509724617',
        ' -0.014715105295181274',
        ' -0.02316063642501831',
        ' -0.001011490821838379',
        ' 0.052903950214385986',
        ' 0.05143296718597412',
        ' -0.47927653789520264',
        ' -0.6071197986602783',
        ' 0.37377142906188965',
        ' 1.4252281188964844',
        ' -3.261333465576172',
        ' -4.035064697265625',
        ' -13.581661224365234',
        ' 68.44317626953125',
        ' -95.37255859375]}',
        ' {"projection": [-0.0013297945261001587',
        ' 0.004381731152534485',
        ' 0.022714152932167053',
        ' -0.019951198250055313',
        ' 0.015921615064144135',
        ' -0.02514520287513733',
        ' -0.07397511601448059',
        ' 0.06842918694019318',
        ' 0.07670789957046509',
        ' 0.08391857147216797',
        ' 0.16634833812713623',
        ' 0.22146618366241455',
        ' 0.3807845115661621',
        ' 0.16863536834716797',
        ' 0.7094268798828125',
        ' -5.186254501342773',
        ' -2.0621490478515625',
        ' 0.2586555480957031',
        ' 30.37371826171875',
        ' -332.75726318359375]}',
        ' {"projection": [-0.0031987950205802917',
        ' 0.02191903442144394',
        ' 0.02619399130344391',
        ' -0.017371922731399536',
        ' 0.012924186885356903',
        ' -0.02645053341984749',
        ' -0.0909847617149353',
        ' 0.07171568274497986',
        ' -0.04978799819946289',
        ' 0.011443078517913818',
        ' 0.19988691806793213',
        ' -0.7396148443222046',
        ' -0.017741262912750244',
        ' -1.3144810199737549',
        ' -1.1928424835205078',
        ' -5.318393707275391',
        ' -1.5601882934570312',
        ' 2.524362564086914',
        ' -63.3278923034668',
        ' -113.6605224609375]}',
        ' {"projection": [-0.001298125833272934',
        ' -0.006043441593647003',
        ' 0.001099899411201477',
        ' -0.00868393387645483',
        ' 0.0015026628971099854',
        ' 0.0037055760622024536',
        ' -0.030231446027755737',
        ' 0.00033980607986450195',
        ' -0.0021154284477233887',
        ' -0.05202823877334595',
        ' -0.1006467342376709',
        ' -0.05526256561279297',
        ' -0.5425354242324829',
        ' 0.14493703842163086',
        ' 0.22365188598632812',
        ' 1.8714618682861328',
        ' -1.6135482788085938',
        ' 0.5321884155273438',
        ' -19.466285705566406',
        ' -421.89410400390625]}',
        ' {"projection": [0.003797367215156555',
        ' 0.02900959551334381',
        ' -0.009871602058410645',
        ' -0.008637496270239353',
        ' -0.014306947588920593',
        ' 0.011757364496588707',
        ' 0.040003448724746704',
        ' -0.009698480367660522',
        ' 0.02362525463104248',
        ' -0.15340173244476318',
        ' -0.03231644630432129',
        ' -0.1080324649810791',
        ' -0.17974317073822021',
        ' -1.2601337432861328',
        ' -0.31665992736816406',
        ' -4.4706878662109375',
        ' -1.4302978515625',
        ' -10.056068420410156',
        ' 51.40556335449219',
        ' -232.357666015625]}',
        ' {"projection": [0.012033265084028244',
        ' -0.002560749650001526',
        ' -0.006322190165519714',
        ' 0.014121291227638721',
        ' 0.011686749756336212',
        ' -0.04873966425657272',
        ' -0.009401202201843262',
        ' -0.043423980474472046',
        ' 0.03441047668457031',
        ' 0.09260892868041992',
        ' -0.19645243883132935',
        ' -0.12109947204589844',
        ' -0.8691534996032715',
        ' 0.9772154092788696',
        ' 2.2736339569091797',
        ' 2.4946203231811523',
        ' 0.90960693359375',
        ' -27.707473754882812',
        ' -3.209716796875',
        ' 90.3282470703125]}',
        ' {"projection": [0.00209016352891922',
        ' -0.003968030214309692',
        ' -0.020907923579216003',
        ' 0.005635661073029041',
        ' 0.0072210803627967834',
        ' -0.0036865584552288055',
        ' 0.024301081895828247',
        ' 0.0051670074462890625',
        ' -0.06149721145629883',
        ' -0.026250123977661133',
        ' 0.2909681797027588',
        ' 0.007661938667297363',
        ' 0.08663606643676758',
        ' -1.385164499282837',
        ' 0.0714263916015625',
        ' 0.29817962646484375',
        ' 0.86016845703125',
        ' 3.9074249267578125',
        ' -10.746437072753906',
        ' -400.63714599609375]}',
        ' {"projection": [-0.023146459832787514',
        ' 0.007592774927616119',
        ' 0.0015064328908920288',
        ' -0.009416117332875729',
        ' -0.029845088720321655',
        ' 0.07066027075052261',
        ' -0.009323835372924805',
        ' 0.060442328453063965',
        ' -0.06834936141967773',
        ' -0.15308499336242676',
        ' 0.2559521198272705',
        ' 0.042189955711364746',
        ' -0.1689833402633667',
        ' 3.0746774673461914',
        ' -4.634428024291992',
        ' -7.2702178955078125',
        ' 4.037956237792969',
        ' -3.1579933166503906',
        ' -4.2875823974609375',
        ' 1569.490234375]}',
        ' {"projection": [0.011419977992773056',
        ' 0.020779117941856384',
        ' -0.008930504322052002',
        ' 0.0011571850627660751',
        ' 0.032885126769542694',
        ' 0.022015448659658432',
        ' 0.014296352863311768',
        ' -0.03439405560493469',
        ' 0.14396625757217407',
        ' -0.17442923784255981',
        ' 0.3302730321884155',
        ' -0.3535572290420532',
        ' 0.7405877709388733',
        ' -1.6807830333709717',
        ' -0.36965370178222656',
        ' 1.4435253143310547',
        ' 1.5976943969726562',
        ' -11.073509216308594',
        ' 110.69706726074219',
        ' 231.2081298828125]}',
        ' {"projection": [-0.0034450404345989227',
        ' -0.013201892375946045',
        ' -0.008654490113258362',
        ' 0.020461777225136757',
        ' 0.04551851004362106',
        ' 0.02393965795636177',
        ' -0.03347918391227722',
        ' -0.17160284519195557',
        ' 0.014170289039611816',
        ' 0.2516302764415741',
        ' 0.04768872261047363',
        ' 0.3350348472595215',
        ' -0.666397213935852',
        ' 3.1121318340301514',
        ' 1.4054603576660156',
        ' 3.879291534423828',
        ' 0.207366943359375',
        ' -33.158241271972656',
        ' -60.045997619628906',
        ' 1045.04443359375]}',
        ' {"projection": [-0.007476240396499634',
        ' 0.014214910566806793',
        ' -0.016671180725097656',
        ' 0.005573040805757046',
        ' -0.0196760892868042',
        ' 0.002149321138858795',
        ' 0.00909423828125',
        ' 0.09247305989265442',
        ' 0.07998186349868774',
        ' -0.15827101469039917',
        ' 0.04237532615661621',
        ' 0.5092825889587402',
        ' 0.18229246139526367',
        ' -2.409022331237793',
        ' 0.3746681213378906',
        ' 5.830746650695801',
        ' 8.539398193359375',
        ' -15.962974548339844',
        ' 56.771820068359375',
        ' -160.27130126953125]}',
        ' {"projection": [-0.0067197345197200775',
        ' -0.00443316251039505',
        ' -0.003149181604385376',
        ' 0.007959268987178802',
        ' -0.036076098680496216',
        ' -0.02452996000647545',
        ' -0.041237056255340576',
        ' -0.016467958688735962',
        ' 0.021271049976348877',
        ' 0.04093325138092041',
        ' 0.7405737638473511',
        ' 0.2666201591491699',
        ' 0.3080402612686157',
        ' 0.7005040645599365',
        ' 1.2749347686767578',
        ' -2.3075923919677734',
        ' -9.612411499023438',
        ' 11.736007690429688',
        ' 12.373085021972656',
        ' -578.6449584960938]}',
        ' {"projection": [0.0007018707692623138',
        ' 0.013646624982357025',
        ' 0.002094671130180359',
        ' -0.0036912867799401283',
        ' 0.009842455387115479',
        ' 0.0033675208687782288',
        ' 0.0686754584312439',
        ' 0.005480185151100159',
        ' 0.010258257389068604',
        ' 0.03587484359741211',
        ' -0.021969079971313477',
        ' -0.38069939613342285',
        ' -0.24107694625854492',
        ' 1.269134759902954',
        ' -0.4884967803955078',
        ' 1.1000471115112305',
        ' -10.203300476074219',
        ' -24.780597686767578',
        ' 117.50433349609375',
        ' 971.200439453125]}',
        ' {"projection": [-0.009645987302064896',
        ' -0.011479049921035767',
        ' -0.007301509380340576',
        ' 0.013179317116737366',
        ' -0.016306251287460327',
        ' 0.005706951022148132',
        ' 0.01631513237953186',
        ' 0.04079866409301758',
        ' 0.04359400272369385',
        ' -0.09390115737915039',
        ' 0.01478874683380127',
        ' -0.007692813873291016',
        ' -0.3069959878921509',
        ' 0.5381155014038086',
        ' 1.350515365600586',
        ' -1.8728370666503906',
        ' -5.771797180175781',
        ' -1.9352912902832031',
        ' 39.60975646972656',
        ' -375.35784912109375]}',
        ' {"projection": [-0.0061448849737644196',
        ' -0.0006806179881095886',
        ' -0.010516360402107239',
        ' -0.0045601194724440575',
        ' 0.01661393791437149',
        ' 0.015528002753853798',
        ' -0.0201704204082489',
        ' -0.013069957494735718',
        ' 0.0049436092376708984',
        ' -0.15776461362838745',
        ' -0.054219722747802734',
        ' -0.10298573970794678',
        ' -0.25902771949768066',
        ' -0.47290539741516113',
        ' -1.5270709991455078',
        ' -4.243780136108398',
        ' -1.847930908203125',
        ' -0.6572647094726562',
        ' -13.287246704101562',
        ' -374.56842041015625]}',
        ' {"projection": [-0.010028135031461716',
        ' 0.013926103711128235',
        ' -0.0011840611696243286',
        ' -0.00922656711190939',
        ' 0.007827632129192352',
        ' -0.001958787441253662',
        ' -0.02109217643737793',
        ' 0.034362852573394775',
        ' -0.08291324973106384',
        ' -0.10641598701477051',
        ' -0.0687328577041626',
        ' -0.02089869976043701',
        ' -0.29165828227996826',
        ' 0.020170927047729492',
        ' -0.7488899230957031',
        ' 9.54461669921875',
        ' -3.14068603515625',
        ' 8.009403228759766',
        ' -33.15007781982422',
        ' -630.7215576171875]}',
        ' {"projection": [0.02389638125896454',
        ' 0.00836915522813797',
        ' 0.04265575110912323',
        ' 0.03139093518257141',
        ' -0.07308530807495117',
        ' 0.02504716068506241',
        ' -0.030883699655532837',
        ' 0.018685802817344666',
        ' 0.0500333309173584',
        ' 0.12401527166366577',
        ' 0.2746429443359375',
        ' 0.44765663146972656',
        ' -1.2025450468063354',
        ' 1.5665197372436523',
        ' -1.1733360290527344',
        ' -2.8769779205322266',
        ' 6.7861785888671875',
        ' -13.131633758544922',
        ' -9.716278076171875',
        ' -186.99676513671875]}',
        ' {"projection": [0.011240273714065552',
        ' -0.0017729103565216064',
        ' -0.0033536702394485474',
        ' 0.01994362100958824',
        ' 0.018228672444820404',
        ' 0.026962634176015854',
        ' -0.007573425769805908',
        ' 0.1149257943034172',
        ' -0.06997185945510864',
        ' 0.07116937637329102',
        ' -0.1300750970840454',
        ' -0.008785486221313477',
        ' 0.2687722444534302',
        ' 0.2370208501815796',
        ' -1.2551288604736328',
        ' -9.186100006103516',
        ' -7.365303039550781',
        ' -3.7577590942382812',
        ' 180.86691284179688',
        ' 915.0255126953125]}',
        ...]]
      Prediction with UDF option:
      output = predictor.predict(test, mode="UDF",content_type='csv')
      output
      The output:
      radius_mean	texture_mean	perimeter_mean	area_mean	smoothness_mean	compactness_mean	concavity_mean	concave_points_mean	symmetry_mean	fractal_dimension_mean	radius_se	texture_se	perimeter_se	area_se	smoothness_se	compactness_se	concavity_se	concave_points_se	symmetry_se	fractal_dimension_se	radius_worst	texture_worst	perimeter_worst	area_worst	smoothness_worst	compactness_worst	concavity_worst	concave_points_worst	symmetry_worst	fractal_dimension_worst	Output
      11.26	19.96	73.72	394.1	0.0802	0.1181	0.09274	0.05588	0.2595	0.06233	0.4866	1.905	2.877	34.68	0.01574	0.08262	0.08099	0.03487	0.03418	0.006517	11.86	22.33	78.27	437.6	0.1028	0.1843	0.1546	0.09314	0.2955	0.07009	{"projections": [{"projection": [0.03280608355998993, 0.04537193104624748, 0.022922128438949585, -0.04075419902801514, -0.002420380711555481, 0.06853789836168289, 0.07840818166732788, -0.012627199292182922, -0.059899359941482544, 0.07341676950454712, 0.32374298572540283, 0.39884722232818604, 0.5078041553497314, 1.8295392990112305, 1.9261531829833984, 0.6402130126953125, -0.379180908203125, 23.91823387145996, 9.325920104980469, -531.2207641601562]}]}
      14.54	27.54	96.73	658.8	0.1139	0.1595	0.1639	0.07364	0.2303	0.07077	0.37	1.033	2.879	32.55	0.005607	0.0424	0.04741	0.0109	0.01857	0.005466	17.46	37.13	124.1	943.2	0.1678	0.6577	0.7026	0.1712	0.4218	0.1341	{"projections": [{"projection": [-0.0009193867444992065, 0.0017432048916816711, -0.02580226957798004, 0.031872328370809555, 0.013675473630428314, 0.046332910656929016, 0.04852712154388428, -0.08409607410430908, 0.10175716876983643, 0.10230475664138794, 0.03288924694061279, 0.5122510194778442, -0.933474063873291, 1.1933152675628662, -1.9981422424316406, 3.7658538818359375, 18.38623046875, -12.721473693847656, -31.42217254638672, 39.1029052734375]}]}
      17.19	22.07	111.6	928.3	0.09726	0.08995	0.09061	0.06527	0.1867	0.0558	0.4203	0.7383	2.819	45.42	0.004493	0.01206	0.02048	0.009875	0.01144	0.001575	21.58	29.33	140.5	1436.0	0.1558	0.2567	0.3889	0.1984	0.3216	0.0757	{"projections": [{"projection": [0.024966612458229065, 0.00318821519613266, 0.011346578598022461, 0.013895014300942421, -0.035234734416007996, -0.04609498381614685, 0.022311151027679443, 0.04100880026817322, 0.0029187798500061035, 0.07415980100631714, 0.023444533348083496, -0.466349720954895, -0.44150519371032715, 0.7395851612091064, -0.10807037353515625, 1.4590539932250977, -0.01204681396484375, -30.102813720703125, -61.1049690246582, 600.102783203125]}]}
      16.26	21.88	107.5	826.8	0.1165	0.1283	0.1799	0.07981	0.1869	0.06532	0.5706	1.457	2.961	57.72	0.01056	0.03756	0.05839	0.01186	0.04022	0.006187	17.73	25.21	113.7	975.2	0.1426	0.2116	0.3344	0.1047	0.2736	0.07953	{"projections": [{"projection": [-0.011844988912343979, -0.02179451286792755, -0.010386645793914795, 0.008400904946029186, 0.021189682185649872, 0.05686948448419571, 0.03128334879875183, 0.07214194536209106, -0.10330820083618164, 0.22019651532173157, 0.26925790309906006, 0.1362295150756836, -0.3018451929092407, 0.7699693441390991, 4.445920944213867, 0.6706113815307617, 1.6569290161132812, 4.774696350097656, 95.55809020996094, 155.3846435546875]}]}
      12.8	17.46	83.05	508.3	0.08044	0.08895	0.0739	0.04083	0.1574	0.0575	0.3639	1.265	2.668	30.57	0.005421	0.03477	0.04545	0.01384	0.01869	0.004067	13.74	21.06	90.72	591.0	0.09534	0.1812	0.1901	0.08296	0.1988	0.07053	{"projections": [{"projection": [-0.0067559704184532166, 0.014604754745960236, 0.01802411675453186, -0.010528565384447575, 0.006629347801208496, 0.016444597393274307, -0.05062919855117798, 0.03539012372493744, 0.04209035634994507, -0.0821576714515686, 0.025034427642822266, 0.1480346918106079, 0.20329409837722778, 0.7110903263092041, 1.1703987121582031, -3.158243179321289, -0.9195556640625, 8.130979537963867, 25.84123992919922, -340.67529296875]}]}
      13.56	13.9	88.59	561.3	0.1051	0.1192	0.0786	0.04451	0.1962	0.06303	0.2569	0.4981	2.011	21.03	0.005851	0.02314	0.02544	0.00836	0.01842	0.002918	14.98	17.13	101.1	686.6	0.1376	0.2698	0.2577	0.0909	0.3065	0.08177	{"projections": [{"projection": [-0.0014752037823200226, -0.0001922324299812317, -0.022153660655021667, 0.004760150797665119, 0.005818486213684082, 0.005189649760723114, 0.018100589513778687, -0.007178470492362976, -0.011704623699188232, -0.061644792556762695, -0.01568889617919922, 0.24525690078735352, -0.3842885494232178, 0.44938480854034424, -0.03153419494628906, -10.148139953613281, -1.5808181762695312, -8.009380340576172, 20.58032989501953, -231.72698974609375]}]}
      15.78	22.91	105.7	782.6	0.1155	0.1752	0.2133	0.09479	0.2096	0.07331	0.552	1.072	3.598	58.63	0.008699	0.03976	0.0595	0.0139	0.01495	0.005984	20.19	30.5	130.3	1272.0	0.1855	0.4925	0.7356	0.2034	0.3274	0.1252	{"projections": [{"projection": [0.01153247058391571, 0.0015450343489646912, -0.015420198440551758, 0.03970148414373398, 0.00606585294008255, -0.06252686679363251, -0.04455491900444031, 0.0688396692276001, -0.032323360443115234, 0.432451069355011, -0.34291768074035645, -0.024285316467285156, -0.05630701780319214, -0.05635809898376465, 3.764974594116211, 0.5162458419799805, 5.687568664550781, -4.091133117675781, -98.36248779296875, 384.857666015625]}]}
      19.45	19.33	126.5	1169.0	0.1035	0.1188	0.1379	0.08591	0.1776	0.05647	0.5959	0.6342	3.797	71.0	0.004649	0.018	0.02749	0.01267	0.01365	0.00255	25.7	24.57	163.1	1972.0	0.1497	0.3161	0.4317	0.1999	0.3379	0.0895	{"projections": [{"projection": [-0.003980252891778946, -0.010626271367073059, -0.006792634725570679, -0.008252562023699284, -0.017011135816574097, -0.08394775539636612, -0.004725664854049683, -0.02420821785926819, 0.012678205966949463, 0.2570701241493225, -0.06448578834533691, -0.7454780340194702, 0.19521880149841309, 1.0544383525848389, 1.7985343933105469, -1.3808135986328125, -10.75503158569336, -35.819427490234375, -137.74705505371094, 1183.744873046875]}]}
      14.5	10.89	94.28	640.7	0.1101	0.1099	0.08842	0.05778	0.1856	0.06402	0.2929	0.857	1.928	24.19	0.003818	0.01276	0.02882	0.012	0.0191	0.002808	15.7	15.98	102.8	745.5	0.1313	0.1788	0.256	0.1221	0.2889	0.08006	{"projections": [{"projection": [-0.0006802044808864594, 0.0011173263192176819, -0.0009288638830184937, 0.010933362878859043, -0.012361034750938416, 0.012531246989965439, 0.027433812618255615, 0.04611416161060333, 0.01518857479095459, -0.024760305881500244, 0.03486478328704834, 0.038599371910095215, 0.06981098651885986, -1.8400537967681885, 0.7896766662597656, -11.008148193359375, -5.187385559082031, -10.673084259033203, 57.32084655761719, -139.78204345703125]}]}
      15.5	21.08	102.9	803.1	0.112	0.1571	0.1522	0.08481	0.2085	0.06864	1.37	1.213	9.424	176.5	0.008198	0.03889	0.04493	0.02139	0.02018	0.005815	23.17	27.65	157.1	1748.0	0.1517	0.4002	0.4211	0.2134	0.3003	0.1048	{"projections": [{"projection": [0.013529270887374878, 0.011912591755390167, 0.015189513564109802, -0.003150681033730507, -0.01537679135799408, 0.014327986165881157, -0.038580626249313354, 0.02162991464138031, -0.010568737983703613, -0.08091932535171509, 0.19230222702026367, -0.6716643571853638, -0.362035870552063, 1.1135786771774292, 0.38793373107910156, -10.569330215454102, 14.767555236816406, 93.7164306640625, -329.31646728515625, 807.404296875]}]}
      
  11. Clean up.
    predictor.cloudObj.delete_model()
    predictor.cloudObj.delete_endpoint()
    remove_tdapi_context(tdapi_context)