{"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":10384,"databundleVersionId":120379,"sourceType":"competition"}],"dockerImageVersionId":15775,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"**Can you distinguish between the different classes with just your eyes?**\n\nNew: Multiband frequencies are now fitted with the `gatspy` package and the fitted values are plotted. This should give us better period estimation results on periodic classes.","metadata":{"_uuid":"ecf157e0576444a3850ea1ef478255cc115b5917"}},{"cell_type":"markdown","source":"* [Class 92](#class92)\n* [Class 88](#class88)\n* [Class 42](#class42)\n* [Class 90](#class90)\n* [Class 65](#class65)\n* [Class 16](#class16)\n* [Class 67](#class67)\n* [Class 95](#class95)\n* [Class 62](#class62)\n* [Class 15](#class15)\n* [Class 52](#class52)\n* [Class 6](#class6)\n* [Class 64](#class64)\n* [Class 53](#class53)","metadata":{"_uuid":"04af08bc24110879c00b0c316815a4d726e4881a"}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport warnings\nfrom itertools import chain\nsns.set_style('whitegrid')\nwarnings.simplefilter('ignore', FutureWarning)\nwarnings.simplefilter('ignore', RuntimeWarning)\nimport cesium.featurize as featurize\nfrom gatspy.periodic import LombScargleMultiband, LombScargleMultibandFast\nimport pdb","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-09-04T06:46:36.362489Z","iopub.execute_input":"2024-09-04T06:46:36.362866Z","iopub.status.idle":"2024-09-04T06:46:36.370509Z","shell.execute_reply.started":"2024-09-04T06:46:36.362812Z","shell.execute_reply":"2024-09-04T06:46:36.369098Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_series = pd.read_csv('../input/training_set.csv')\ntrain_metadata = pd.read_csv('../input/training_set_metadata.csv')","metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","execution":{"iopub.status.busy":"2024-09-04T06:46:36.372022Z","iopub.execute_input":"2024-09-04T06:46:36.372300Z","iopub.status.idle":"2024-09-04T06:46:38.282421Z","shell.execute_reply.started":"2024-09-04T06:46:36.372250Z","shell.execute_reply":"2024-09-04T06:46:38.281365Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"groups = train_series.groupby(['object_id', 'passband'])\ntimes = groups.apply(\n    lambda block: block['mjd'].values).reset_index().rename(columns={0: 'seq'})\nflux = groups.apply(\n    lambda block: block['flux'].values\n).reset_index().rename(columns={0: 'seq'})\nerr = groups.apply(\n    lambda block: block['flux_err'].values\n).reset_index().rename(columns={0: 'seq'})\ndet = groups.apply(\n    lambda block: block['detected'].astype(bool).values\n).reset_index().rename(columns={0: 'seq'})\ntimes_list = times.groupby('object_id').apply(lambda x: x['seq'].tolist()).tolist()\nflux_list = flux.groupby('object_id').apply(lambda x: x['seq'].tolist()).tolist()\nerr_list = err.groupby('object_id').apply(lambda x: x['seq'].tolist()).tolist()\ndet_list = det.groupby('object_id').apply(lambda x: x['seq'].tolist()).tolist()","metadata":{"_uuid":"30315ec46d1c160a85a4092401a58979c27e4b24","execution":{"iopub.status.busy":"2024-09-04T06:46:38.283660Z","iopub.execute_input":"2024-09-04T06:46:38.283963Z","iopub.status.idle":"2024-09-04T06:46:56.519096Z","shell.execute_reply.started":"2024-09-04T06:46:38.283906Z","shell.execute_reply":"2024-09-04T06:46:56.518143Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"We cannot make much sense of the data with the large observation gap, unsynchronised passband observations and sparsity of data. But We know that some objects have periodic bebaviours, so we can attempt to fold them by period. Here we will examine which classes are more likely to be periodic, and how they typically look like.","metadata":{"_uuid":"cac77844c7129cc127541cfbd61096b810435366"}},{"cell_type":"code","source":"def fit_multiband_freq(tup):\n    idx, group = tup\n    t, f, e, b = group['mjd'], group['flux'], group['flux_err'], group['passband']\n    model = LombScargleMultiband(fit_period=True)\n    model.optimizer.period_range = (0.1, int((group['mjd'].max() - group['mjd'].min()) / 2))\n    model.fit(t, f, e, b)\n    return model","metadata":{"_uuid":"f066d7b28ba616ff3d56dc02f9bc592c0d2bf8fa","execution":{"iopub.status.busy":"2024-09-04T06:46:56.521023Z","iopub.execute_input":"2024-09-04T06:46:56.521460Z","iopub.status.idle":"2024-09-04T06:46:56.528724Z","shell.execute_reply.started":"2024-09-04T06:46:56.521371Z","shell.execute_reply":"2024-09-04T06:46:56.527411Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def get_freq_features(N, subsetting_pos=None):\n    if subsetting_pos is None:\n        subset_times_list = times_list\n        subset_flux_list = flux_list\n    else:\n        subset_times_list = [v for i, v in enumerate(times_list) \n                             if i in set(subsetting_pos)]\n        subset_flux_list = [v for i, v in enumerate(flux_list) \n                            if i in set(subsetting_pos)]\n    feats = featurize.featurize_time_series(times=subset_times_list[:N],\n                                            values=subset_flux_list[:N],\n                                            features_to_use=['skew',\n                                                            'percent_beyond_1_std',\n                                                            'percent_difference_flux_percentile'\n                                                            ],\n                                            scheduler=None)\n    subset = train_series[train_series['object_id'].isin(\n        train_metadata['object_id'].iloc[subsetting_pos].iloc[:N])]\n    models = list(map(fit_multiband_freq, subset.groupby('object_id')))\n    feats['object_pos'] = subsetting_pos[:N]\n    feats['freq1_freq'] = [model.best_period for model in models]\n    return feats, models","metadata":{"_uuid":"4c4bbde8387337d1a10b3c06e194c03dd23df1e2","execution":{"iopub.status.busy":"2024-09-04T06:46:56.530660Z","iopub.execute_input":"2024-09-04T06:46:56.530960Z","iopub.status.idle":"2024-09-04T06:46:56.548105Z","shell.execute_reply.started":"2024-09-04T06:46:56.530913Z","shell.execute_reply":"2024-09-04T06:46:56.547008Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"unique_classes = train_metadata['target'].unique()\nunique_classes","metadata":{"_uuid":"ba33c76f30d1b0da885b3d34b5e1af30a0504fb0","execution":{"iopub.status.busy":"2024-09-04T06:46:56.550028Z","iopub.execute_input":"2024-09-04T06:46:56.550396Z","iopub.status.idle":"2024-09-04T06:46:56.568628Z","shell.execute_reply.started":"2024-09-04T06:46:56.550300Z","shell.execute_reply":"2024-09-04T06:46:56.567498Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def get_class_feats(label, N=10):\n    class_pos = train_metadata[train_metadata['target'] == label].index\n    class_feats, class_models = get_freq_features(N, class_pos)\n    return class_feats, class_models","metadata":{"_uuid":"e3cb628e9c6938bdc71f89444d0ae026eef9e446","execution":{"iopub.status.busy":"2024-09-04T06:46:56.570296Z","iopub.execute_input":"2024-09-04T06:46:56.570659Z","iopub.status.idle":"2024-09-04T06:46:56.580535Z","shell.execute_reply.started":"2024-09-04T06:46:56.570603Z","shell.execute_reply":"2024-09-04T06:46:56.578920Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def plot_phase_curves(feats, models, use_median_freq=False, hide_undetected=True, N=10):\n    for i in range(N):\n        freq = feats.loc[i, 'freq1_freq'].median()\n        freq_min = feats.loc[i, 'freq1_freq'].min()\n        freq_std = feats.loc[i, 'freq1_freq'].std()\n        skew = feats.loc[i, 'skew'].mean()\n        object_pos = int(feats.loc[i, 'object_pos'][0])\n        f, ax = plt.subplots(1, 2, figsize=(14, 4))\n        sample = train_series[train_series['object_id'] ==\n                              train_metadata['object_id'].iloc[object_pos]].copy()\n        colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple']\n        score = models[i].score(models[i].best_period)\n        \n        ax[0].scatter(x=sample['mjd'], \n                   y=sample['flux'], \n                   c=[colors[b] for b in sample['passband']],\n                   s=8, alpha=0.8)\n        ax[0].vlines(sample['mjd'], \n                  sample['flux'] - sample['flux_err'],\n                  sample['flux'] + sample['flux_err'],\n                  colors=[colors[b] for b in sample['passband']],\n                  linewidth=1, alpha=0.8)\n        \n        sample['phase'] = (sample['mjd'] / models[i].best_period) % 1\n        ax[1].scatter(x=sample['phase'], \n                   y=sample['flux'], \n                   c=[colors[b] for b in sample['passband']],\n                   s=8, alpha=0.8)\n        ax[1].vlines(sample['phase'], \n                  sample['flux'] - sample['flux_err'],\n                  sample['flux'] + sample['flux_err'],\n                  colors=[colors[b] for b in sample['passband']],\n                  linewidth=1, alpha=0.8)\n        x_range = np.linspace(sample['mjd'].min(), sample['mjd'].max(), 1000)\n        for band in range(6):\n            y = models[i].predict(x_range, band)\n            xs = (x_range / models[i].best_period) % 1\n            ords = np.argsort(xs)\n            ax[1].plot(xs[ords], y[ords], c=colors[band], alpha=0.4)\n        \n        title = ax[0].get_title()\n        ax[0].set_title('time')\n        ax[1].set_title('phase')\n        f.suptitle(title + f'object: {sample[\"object_id\"].iloc[0]}, '\n                   f'class: {train_metadata[\"target\"].iloc[object_pos]}\\n'\n                   f'period: {models[i].best_period: .4}, '\n                   f'period score: {score: .4}, '\n                   f'mean skew: {skew:.4}', y=1.1)\n        plt.show()","metadata":{"_uuid":"080defa5d29129e54fa9f73d4d87467cbbd1adcc","execution":{"iopub.status.busy":"2024-09-04T06:46:56.582432Z","iopub.execute_input":"2024-09-04T06:46:56.582780Z","iopub.status.idle":"2024-09-04T06:46:56.604859Z","shell.execute_reply.started":"2024-09-04T06:46:56.582717Z","shell.execute_reply":"2024-09-04T06:46:56.603592Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"warnings.simplefilter('ignore', UserWarning)","metadata":{"_uuid":"3c54c6c270ab49d50923be15c57eae6ec6722c09","execution":{"iopub.status.busy":"2024-09-04T06:46:56.606427Z","iopub.execute_input":"2024-09-04T06:46:56.606776Z","iopub.status.idle":"2024-09-04T06:46:56.620694Z","shell.execute_reply.started":"2024-09-04T06:46:56.606714Z","shell.execute_reply":"2024-09-04T06:46:56.619435Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id='class92'></a>","metadata":{"_uuid":"5598d8ddc38f00b122bfd68128e47636e696a85c"}},{"cell_type":"markdown","source":"### Class 92 ('Regular' Variable Stars?)","metadata":{"_uuid":"57df480c05e36f83c385f19ebb4e8bbd27b9e200"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(92)","metadata":{"_uuid":"a24123109d93e38f9a9a8c5be129271e823cf352","execution":{"iopub.status.busy":"2024-09-04T06:46:56.622289Z","iopub.execute_input":"2024-09-04T06:46:56.622734Z","iopub.status.idle":"2024-09-04T06:57:40.393973Z","shell.execute_reply.started":"2024-09-04T06:46:56.622659Z","shell.execute_reply":"2024-09-04T06:57:40.392346Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"6c4b1a571947f8c6b9d59886886176760f910fb7","execution":{"iopub.status.busy":"2024-09-04T06:57:40.396777Z","iopub.execute_input":"2024-09-04T06:57:40.397789Z","iopub.status.idle":"2024-09-04T06:57:47.141058Z","shell.execute_reply.started":"2024-09-04T06:57:40.397694Z","shell.execute_reply":"2024-09-04T06:57:47.139608Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"We can see that class 92 objects are typically periodic with sub-1day periods. They have passbands that are synchronised in period and phase, and the light curves appear to be sinusoidal. They usually have high period scores, which can be used to distiniguish them from other, non-periodic classes.","metadata":{"_uuid":"6f0ff8ff5fdba36640b425cd4d783ffe57ced5eb"}},{"cell_type":"markdown","source":"<a id='class88'></a>","metadata":{"_uuid":"c26a4b5b7321acf5379296628250703520e1099b"}},{"cell_type":"markdown","source":"### Class 88 ('Patient' Variable Stars?)","metadata":{"_uuid":"d0095d99dfd311535ca7734f2c0b01198bb8bb0f"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(88)","metadata":{"_uuid":"0ca7ca2f2f98dbd1f84161e336db73105362b144","execution":{"iopub.status.busy":"2024-09-04T06:57:47.143704Z","iopub.execute_input":"2024-09-04T06:57:47.144792Z","iopub.status.idle":"2024-09-04T07:08:36.526022Z","shell.execute_reply.started":"2024-09-04T06:57:47.144690Z","shell.execute_reply":"2024-09-04T07:08:36.524354Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"65f962696c285d6dd631d374474f76108d4a2e5b","execution":{"iopub.status.busy":"2024-09-04T07:08:36.528950Z","iopub.execute_input":"2024-09-04T07:08:36.530022Z","iopub.status.idle":"2024-09-04T07:08:43.801885Z","shell.execute_reply.started":"2024-09-04T07:08:36.529919Z","shell.execute_reply":"2024-09-04T07:08:43.800421Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Unlike class 99, many class 88 objects do not exhibit periodic behaviour on a small time scale, although their light curves might be periodic on a scale that is difficult to discern with our sample window. The calculated frequencies typically have very high standard deviation, and the longest period detected is usually quite long. The curves could potentially be sinusoidal in nature, but often only fragments of it can be seen in the observed windows. There could also be an overall upwards or downwards trend for the overall curve. As this is an extragalactical class, some faraway objects have higher uncertainties in their observations.\nIt is worth noting that some of the class 88 objects appear to have an exactly 1-day period. While in some cases this appear to be spurious, there are also cases where it appears plausible. However, even for those objects where 1-day period is detected, from the raw time-domain plot, we can often find what appears to be a long timescale evolving trend. Further investigation is needed for this class.","metadata":{"_uuid":"36341d6a184a10c11097f4d4c3d90cc3d549d9c3"}},{"cell_type":"markdown","source":"<a id='class42'></a>","metadata":{"_uuid":"3eba9c424d8cfc1037c02a0b3a4b490f01ff991b"}},{"cell_type":"markdown","source":"### Class 42 (Supernovae?)","metadata":{"_uuid":"981394d9e9978e7c7eac1b3ca70e5c2f18fe256f"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(42)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","execution":{"iopub.status.busy":"2024-09-04T07:08:43.803599Z","iopub.execute_input":"2024-09-04T07:08:43.803885Z","iopub.status.idle":"2024-09-04T07:19:41.087554Z","shell.execute_reply.started":"2024-09-04T07:08:43.803839Z","shell.execute_reply":"2024-09-04T07:19:41.085847Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","execution":{"iopub.status.busy":"2024-09-04T07:19:41.090086Z","iopub.execute_input":"2024-09-04T07:19:41.090927Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Class 42 appears to be mostly flat. It is extragalactical, so high uncertainty happens in some cases. It most likely is a class of objects with \"burst\" events, although the actual burst is not always detected in the observation windows. When the burst happens, the object's magnitude increases dramatically across all bands and gradually falls back to normal levels in a few months. If the burst is indeed detected, it will be characterised by relatively low frequency std between bands together with very high detected periods. Other features like skewness can also be used to identify this class of objects, as a burst usually results in high skew in the light curve.","metadata":{"_uuid":"361bda7d12e170ab64346ec792c45a8a2762494c"}},{"cell_type":"markdown","source":"<a id='class90'></a>","metadata":{"_uuid":"2a7087271e48b63e425899c674f1386fd1ef63dd"}},{"cell_type":"markdown","source":"### Class 90 (Also Supernovae?)","metadata":{"_uuid":"903e27c4b7ec71569677c556198b380508e8bf24"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(90)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Class 90 is kind of similar to class 42 in that it is very likely a group of objects with \"burst\" behaviours, or objects with partially unobsered bursts. Like class 42, it is characterised by sudden peaks that usually last for a few months, high skew and often long fitted periods (or 1-day periods) with low score. So far we are still unable to tell the difference between class 90 and class 42.","metadata":{"_uuid":"ae86ac983cbc08f50cea0d93281dd300f114fb09"}},{"cell_type":"markdown","source":"<a id='class65'></a>","metadata":{"_uuid":"e0bfbe699facc91cc37d1fccd37ec4fc1b1f3108"}},{"cell_type":"markdown","source":"### Class 65 (The galactical mystery)","metadata":{"_uuid":"13a1289b7f36d7bbfe7720d1c664cd5b08ed0887"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(65)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","execution":{"iopub.status.idle":"2024-09-04T07:41:32.116058Z","shell.execute_reply.started":"2024-09-04T07:30:43.368937Z","shell.execute_reply":"2024-09-04T07:41:32.114326Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","execution":{"iopub.status.busy":"2024-09-04T07:41:32.124737Z","iopub.execute_input":"2024-09-04T07:41:32.125519Z","iopub.status.idle":"2024-09-04T07:41:38.467726Z","shell.execute_reply.started":"2024-09-04T07:41:32.125212Z","shell.execute_reply":"2024-09-04T07:41:38.466620Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Class 65 is an interesting case. There just does not seem to be a good description for this class. All the fitted periods are relatively short, so likely there are likely little long-term non-periodic behaviour in this class, but all the periods seem to be random, and they all have much smaller significance levels than in other classes. The skew of the data is all over the place. Also, this is a class of objects within the galaxy, but the observation uncertainty can be pretty high. If we look at a sample of original data from this class, it appears that objects in this class are rather faint (in terms of flux difference to the reference picture). Considering the low % of 'detected' observations, it is likely that the high deviation, low error points that occasionally pop up in the light curves are actually the real events, whereas most of the curve is just background.","metadata":{"_uuid":"74615c129efd1e1d787ae36151fcbf89e4c01e12"}},{"cell_type":"code","source":"train_series[train_series['object_id'].isin(\n    train_metadata[train_metadata['target'] == 65]['object_id'])]['flux'].describe()","metadata":{"_uuid":"4a06f9629a7177b82f20dc2389c4464fe0ba5ac3","execution":{"iopub.status.busy":"2024-09-04T07:41:38.469620Z","iopub.execute_input":"2024-09-04T07:41:38.470322Z","iopub.status.idle":"2024-09-04T07:41:38.633457Z","shell.execute_reply.started":"2024-09-04T07:41:38.470229Z","shell.execute_reply":"2024-09-04T07:41:38.632296Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_series[train_series['object_id'].isin(\n    train_metadata[train_metadata['target'] == 65]['object_id'])]['detected'].mean()","metadata":{"scrolled":true,"_uuid":"1fd28b3d2f0485071eadbde08d86722f65ae011e","execution":{"iopub.status.busy":"2024-09-04T07:41:38.635153Z","iopub.execute_input":"2024-09-04T07:41:38.635574Z","iopub.status.idle":"2024-09-04T07:41:38.758249Z","shell.execute_reply.started":"2024-09-04T07:41:38.635499Z","shell.execute_reply":"2024-09-04T07:41:38.757143Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"If we try to hide all 'undetected' events, we can see that the detected events for class 65 is really sparse, but some of these events are at pretty extreme relative flux values. So significant events, but rare and probably irregular.","metadata":{"_uuid":"56d0c094eb47ec0e46df4dd62df2a606684e6e74"}},{"cell_type":"markdown","source":"<a id='class16'></a>","metadata":{"_uuid":"45c13880b3b80b617148942b083e4cbf61e833fe"}},{"cell_type":"markdown","source":"### Class 16 (Binary stars/exoplanet transits?)","metadata":{"_uuid":"3103547bc077027ac7a419c1e14ec428ae66e811"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(16)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","execution":{"iopub.status.busy":"2024-09-04T07:41:38.759602Z","iopub.execute_input":"2024-09-04T07:41:38.759940Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Class 16 contains both periodic objects and more irregular objects, but a common characteristic of object in this class appears to be that they typically have a negative skew in their light curves, corresponding to the deep dips in the light curve. This implies that rather than the luminosity of the object changing by itself over time, the variability of flux in this group might be caused by occlusion of more than one celestral bodies. The max periods of objects in this class are typically not very long. It is likely that there are more than one period for the light curves in this class.","metadata":{"_uuid":"a3af5f4c4ae0274984910331d21370c9c0770ae9"}},{"cell_type":"markdown","source":"<a id='class67'></a>","metadata":{"_uuid":"9a4ae8184901815be3c76ebd3a21c0febc0ee987"}},{"cell_type":"markdown","source":"### Class 67","metadata":{"_uuid":"3b06231a58094d1a32b6448bf314e24b03f35f3f"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(67)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id='class95'></a>","metadata":{"_uuid":"0c9afcadc9328a84f2ad95f29630406592596d7a"}},{"cell_type":"markdown","source":"### Class 95","metadata":{"_uuid":"a8b16d625c1f30d46e3379207b7833112f62d4c0"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(95)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Class 95 is another case of non-periodic burst events, although the curvature of the peaks appear to be smaller than the peaks in other burst classes, and some bands visibly 'lag' behind others. We cannot verify with just a few examples, but if we focus just on the peaks, we might be able to find something to distinguish between these burst classes.","metadata":{"_uuid":"ab7c5fd809b3a0941a10155bcc17efca21fa2c2f"}},{"cell_type":"markdown","source":"<a id='class62'></a>","metadata":{"_uuid":"84e6cbd075a2bf636572dfba872b7bedb43c505c"}},{"cell_type":"markdown","source":"### Class 62","metadata":{"_uuid":"a6fabbb9a479683f9cadb6bde9d7ac4b0245f856"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(62)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Class 62 is yet another burst event class with seemingly volatile band 0.","metadata":{"_uuid":"d1989bdb80afedc25ad853ac479dd0ba0fdce3b4"}},{"cell_type":"markdown","source":"<a id='class15'></a>","metadata":{"_uuid":"371891461da8b04700746c5f9db64e0b326ec828"}},{"cell_type":"markdown","source":"### Class 15","metadata":{"_uuid":"a9e75b4a5b3568fd91b2288edf75781a106878ae"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(15)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id='class52'></a>","metadata":{"_uuid":"6f4bad6aca71174f93a3f4dbf1e44749156b7f64"}},{"cell_type":"markdown","source":"### Class 52","metadata":{"_uuid":"9f760e8d4e594fee15e52faab8fbed5cf979ffa8"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(52)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id='class6'></a>","metadata":{"_uuid":"16812d0eac04633c017258b56dd56712ce74bd32"}},{"cell_type":"markdown","source":"### Class 6","metadata":{"_uuid":"b4b4cd221fc6b29993c54d5e384eb1124f1b580c"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(6)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id='class64'></a>","metadata":{"_uuid":"3b832b861871c4b494acbfe3ed0e9df35347a160"}},{"cell_type":"markdown","source":"### Class 64","metadata":{"_uuid":"6f54bd8ad7f4ac9e55349bcb00efa0e8b069a7bb"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(64)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id='class53'></a>","metadata":{"_uuid":"770320c0342a80b5b1f77ca95e76fe91a087e755"}},{"cell_type":"markdown","source":"### Class 53","metadata":{"_uuid":"0bd99e2b2e3a10041e6b55682ae20dd5e1a36e85"}},{"cell_type":"code","source":"%%capture capt\nfeats, models = get_class_feats(53)","metadata":{"_uuid":"c4d5c9f6923b61d042eb9d20f0a6bcaf7fe8b531","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_phase_curves(feats, models)","metadata":{"_uuid":"26fb990c26e638e804e8147d3871eeb884f7867d","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"_uuid":"859e2cd6733a777d0cc399283054f2de72d9773b","trusted":true},"execution_count":null,"outputs":[]}]}