{"cells":[{"metadata":{"_uuid":"3b7efa15014e822ca40ee55d2e7e712a6ca63563"},"cell_type":"markdown","source":"<h1><center><font size=\"6\">LANL Earthquake EDA and Prediction</font></center></h1>\n\n<h2><center><font size=\"4\">Dataset used: LANL Earthquake Prediction</font></center></h2>\n\n<img src=\"https://storage.googleapis.com/kaggle-media/competitions/LANL/nik-shuliahin-585307-unsplash.jpg\" width=\"600\"></img>\n\n<br>\n\n# <a id='0'>Content</a>\n\n- <a href='#1'>Introduction</a>  \n- <a href='#2'>Prepare the data analysis</a>  \n- <a href='#3'>Data exploration</a>   \n- <a href='#4'>Feature engineering</a>\n- <a href='#5'>Model</a>\n- <a href='#6'>Submission</a>  \n- <a href='#7'>References</a>"},{"metadata":{"_uuid":"0bf2c2c00334bdc9f8f3d78d10d958bc521b4c7a"},"cell_type":"markdown","source":"# <a id='1'>Introduction</a>  \n\nThe data are from an experiment conducted on rock in a double direct shear geometry subjected to bi-axial loading, a classic laboratory earthquake model.\n\nTwo fault gouge layers are sheared simultaneously while subjected to a constant normal load and a prescribed shear velocity. The laboratory faults fail in repetitive cycles of stick and slip that is meant to mimic the cycle of loading and failure on tectonic faults. While the experiment is considerably simpler than a fault in Earth, it shares many physical characteristics. \n\nLos Alamos' initial work showed that the prediction of laboratory earthquakes from continuous seismic data is possible in the case of quasi-periodic laboratory seismic cycles.   \n\nIn this competition, the team has provided a much more challenging dataset with considerably more aperiodic earthquake failures.  \n\nObjective of the competition is to predict the failures for each test set.  \n\nThis solution uses  Andrew's Data Munging plus a quick Genetic Programming Model (from Scirpus's [Kernel](https://www.kaggle.com/scirpus/andrews-script-plus-a-genetic-program-model/)).\n\n"},{"metadata":{"_uuid":"3b198f4c2141e0e94e0853cea5798c0e83343716"},"cell_type":"markdown","source":"# <a id='1'>Prepare the data analysis</a>\n\n## Load packages\n\nHere we define the packages for data manipulation, feature engineering and model training."},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"import gc\nimport os\nimport time\nimport logging\nimport datetime\nimport warnings\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport xgboost as xgb\nfrom tqdm import tqdm\nimport lightgbm as lgb\nfrom scipy import stats\nfrom scipy.signal import hann\nimport matplotlib.pyplot as plt\nfrom scipy.signal import hilbert\nfrom scipy.signal import convolve\nfrom sklearn.svm import NuSVR, SVR\nfrom catboost import CatBoostRegressor\nfrom sklearn.kernel_ridge import KernelRidge\nfrom sklearn.metrics import mean_squared_error\nfrom sklearn.preprocessing import LabelEncoder\nfrom sklearn.metrics import mean_absolute_error\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.linear_model import LinearRegression\nfrom sklearn.model_selection import KFold,StratifiedKFold, RepeatedKFold\nwarnings.filterwarnings(\"ignore\")","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"f7dc473a43cbd799a184ca71a27391bb6faa9984"},"cell_type":"markdown","source":"## Load the data\n\nLet's see first what files we have in input directory."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"45e5498b89764854036baa88eda6ead21d41f382"},"cell_type":"code","source":"IS_LOCAL = False\nif(IS_LOCAL):\n    PATH=\"../input/LANL-Earthquake-Prediction\"\nelse:\n    PATH=\"../input/\"\nos.listdir(PATH)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"68ced52082fc77c768db9ff14fed7cbe43e097d1"},"cell_type":"markdown","source":"Let's load the train file."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"bb8916c762c26e98e31a721e4aae673aa12e6c5f"},"cell_type":"code","source":"%%time\ntrain_df = pd.read_csv('../input/LANL-Earthquake-Prediction/train.csv', dtype={'acoustic_data': np.int16, 'time_to_failure': np.float64})","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","collapsed":true,"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":false},"cell_type":"markdown","source":"Let's check the data imported."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"40c15befb5782fe1d671ae4ad0ca592aff316073"},"cell_type":"code","source":"print(\"Train: rows:{} cols:{}\".format(train_df.shape[0], train_df.shape[1]))","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"0ee349f0d7f482a0cc4827a3b7515a915e4dd37f"},"cell_type":"code","source":"pd.options.display.precision = 15\ntrain_df.head(10)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"877ce7e2c62dc0c7b9a86c081754a7f3b19bb364"},"cell_type":"markdown","source":"# <a id='3'>Data exploration</a>  \n\nThe dimmension of the data is quite large, in excess of 600 millions rows of data.  \nThe two columns in the train dataset have the following meaning:   \n*  accoustic_data: is the accoustic signal measured in the laboratory experiment;  \n* time to failure: this gives the time until a failure will occurs.\n\nLet's plot 1% of the data. For this we will sample every 100 points of data.  "},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"206af56767581d8e98777da3b0670e11d4e444bd"},"cell_type":"code","source":"train_ad_sample_df = train_df['acoustic_data'].values[::100]\ntrain_ttf_sample_df = train_df['time_to_failure'].values[::100]\n\ndef plot_acc_ttf_data(train_ad_sample_df, train_ttf_sample_df, title=\"Acoustic data and time to failure: 1% sampled data\"):\n    fig, ax1 = plt.subplots(figsize=(12, 8))\n    plt.title(title)\n    plt.plot(train_ad_sample_df, color='r')\n    ax1.set_ylabel('acoustic data', color='r')\n    plt.legend(['acoustic data'], loc=(0.01, 0.95))\n    ax2 = ax1.twinx()\n    plt.plot(train_ttf_sample_df, color='b')\n    ax2.set_ylabel('time to failure', color='b')\n    plt.legend(['time to failure'], loc=(0.01, 0.9))\n    plt.grid(True)\n\nplot_acc_ttf_data(train_ad_sample_df, train_ttf_sample_df)\ndel train_ad_sample_df\ndel train_ttf_sample_df","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"36c363a5f2e56e54c8ffddd802aa86d91c61d97f"},"cell_type":"markdown","source":"The plot shows only 1% of the full data. \nThe acoustic data shows complex oscilations with variable amplitude. Just before each failure there is an increase in the amplitude of the acoustic data. We see that large amplitudes are also obtained at different moments in time (for example about the mid-time between two succesive failures).  \n\nLet's plot as well the first 1% of the data."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"845e5a241e545d73cfb1dbaea2cfa464faf8148a"},"cell_type":"code","source":"train_ad_sample_df = train_df['acoustic_data'].values[:6291455]\ntrain_ttf_sample_df = train_df['time_to_failure'].values[:6291455]\nplot_acc_ttf_data(train_ad_sample_df, train_ttf_sample_df, title=\"Acoustic data and time to failure: 1% of data\")\ndel train_ad_sample_df\ndel train_ttf_sample_df","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"78948b35358020156422a76c8d60dc132f17417b"},"cell_type":"markdown","source":"On this zoomed-in-time plot we can see that actually the large oscilation before the failure is not quite in the last moment. There are also trains of intense oscilations preceeding the large one and also some oscilations with smaller peaks after the large one. Then, after some minor oscilations, the failure occurs."},{"metadata":{"_uuid":"8dee473309c39d74020b37f2e4863094191c121f"},"cell_type":"markdown","source":"# <a id='4'>Features engineering</a>  \n\nThe test segments are 150,000 each.   \nWe split the train data in segments of the same dimmension with the test sets.\n\nWe will create additional aggregation features, calculated on the segments. \n"},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"abcf886f07660f12d170a2182675e15efffefde0"},"cell_type":"code","source":"rows = 150000\nsegments = int(np.floor(train_df.shape[0] / rows))\nprint(\"Number of segments: \", segments)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d107cd036c9a931d1e85795f11e5853811a44246"},"cell_type":"markdown","source":"Let's define some computation helper functions."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"8b46e3d6267988a865b69efc1f92ba90a20ca7b7"},"cell_type":"code","source":"def add_trend_feature(arr, abs_values=False):\n    idx = np.array(range(len(arr)))\n    if abs_values:\n        arr = np.abs(arr)\n    lr = LinearRegression()\n    lr.fit(idx.reshape(-1, 1), arr)\n    return lr.coef_[0]\n\ndef classic_sta_lta(x, length_sta, length_lta):\n    sta = np.cumsum(x ** 2)\n    # Convert to float\n    sta = np.require(sta, dtype=np.float)\n    # Copy for LTA\n    lta = sta.copy()\n    # Compute the STA and the LTA\n    sta[length_sta:] = sta[length_sta:] - sta[:-length_sta]\n    sta /= length_sta\n    lta[length_lta:] = lta[length_lta:] - lta[:-length_lta]\n    lta /= length_lta\n    # Pad zeros\n    sta[:length_lta - 1] = 0\n    # Avoid division by zero by setting zero values to tiny float\n    dtiny = np.finfo(0.0).tiny\n    idx = lta < dtiny\n    lta[idx] = dtiny\n    return sta / lta","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"0cec83d75c3498355fb232c33ef43dcd2017f24e"},"cell_type":"markdown","source":"Now let's calculate the aggregated functions for train set."},{"metadata":{"trusted":true,"_uuid":"e4b4d9be65f7f79a01b76acb7511daea0dfb7312"},"cell_type":"code","source":"\ntrain_X = pd.DataFrame(index=range(segments), dtype=np.float64)\ntrain_y = pd.DataFrame(index=range(segments), dtype=np.float64, columns=['time_to_failure'])\n\ntotal_mean = train_df['acoustic_data'].mean()\ntotal_std = train_df['acoustic_data'].std()\ntotal_max = train_df['acoustic_data'].max()\ntotal_min = train_df['acoustic_data'].min()\ntotal_sum = train_df['acoustic_data'].sum()\ntotal_abs_sum = np.abs(train_df['acoustic_data']).sum()\n\n# iterate over all segments\nfor segment in tqdm(range(segments)):\n    seg = train_df.iloc[segment*rows:segment*rows+rows]\n    xc = pd.Series(seg['acoustic_data'].values)\n    yc = seg['time_to_failure'].values[-1]\n    \n    train_y.loc[segment, 'time_to_failure'] = yc\n    train_X.loc[segment, 'mean'] = xc.mean()\n    train_X.loc[segment, 'std'] = xc.std()\n    train_X.loc[segment, 'max'] = xc.max()\n    train_X.loc[segment, 'min'] = xc.min()\n    \n    \n    train_X.loc[segment, 'mean_change_abs'] = np.mean(np.diff(xc))\n    train_X.loc[segment, 'mean_change_rate'] = np.mean(np.nonzero((np.diff(xc) / x[:-1]))[0])\n    train_X.loc[segment, 'abs_max'] = np.abs(xc).max()\n    train_X.loc[segment, 'abs_min'] = np.abs(xc).min()\n    \n    train_X.loc[segment, 'std_first_50000'] = xc[:50000].std()\n    train_X.loc[segment, 'std_last_50000'] = xc[-50000:].std()\n    train_X.loc[segment, 'std_first_10000'] = xc[:10000].std()\n    train_X.loc[segment, 'std_last_10000'] = xc[-10000:].std()\n    \n    X_tr.loc[segment, 'avg_first_50000'] = xc[:50000].mean()\n    X_tr.loc[segment, 'avg_last_50000'] = xc[-50000:].mean()\n    X_tr.loc[segment, 'avg_first_10000'] = xc[:10000].mean()\n    X_tr.loc[segment, 'avg_last_10000'] = xc[-10000:].mean()\n    \n    X_tr.loc[segment, 'min_first_50000'] = x[:50000].min()\n    X_tr.loc[segment, 'min_last_50000'] = x[-50000:].min()\n    X_tr.loc[segment, 'min_first_10000'] = x[:10000].min()\n    X_tr.loc[segment, 'min_last_10000'] = x[-10000:].min()\n    \n    X_tr.loc[segment, 'max_first_50000'] = x[:50000].max()\n    X_tr.loc[segment, 'max_last_50000'] = x[-50000:].max()\n    X_tr.loc[segment, 'max_first_10000'] = x[:10000].max()\n    X_tr.loc[segment, 'max_last_10000'] = x[-10000:].max()\n    \n    X_tr.loc[segment, 'max_to_min'] = x.max() / np.abs(x.min())\n    X_tr.loc[segment, 'max_to_min_diff'] = x.max() - np.abs(x.min())\n    X_tr.loc[segment, 'count_big'] = len(x[np.abs(x) > 500])\n    X_tr.loc[segment, 'sum'] = x.sum()\n    \n    X_tr.loc[segment, 'mean_change_rate_first_50000'] = np.mean(np.nonzero((np.diff(x[:50000]) / x[:50000][:-1]))[0])\n    X_tr.loc[segment, 'mean_change_rate_last_50000'] = np.mean(np.nonzero((np.diff(x[-50000:]) / x[-50000:][:-1]))[0])\n    X_tr.loc[segment, 'mean_change_rate_first_10000'] = np.mean(np.nonzero((np.diff(x[:10000]) / x[:10000][:-1]))[0])\n    X_tr.loc[segment, 'mean_change_rate_last_10000'] = np.mean(np.nonzero((np.diff(x[-10000:]) / x[-10000:][:-1]))[0])\n    \n    X_tr.loc[segment, 'q95'] = np.quantile(x, 0.95)\n    X_tr.loc[segment, 'q99'] = np.quantile(x, 0.99)\n    X_tr.loc[segment, 'q05'] = np.quantile(x, 0.05)\n    X_tr.loc[segment, 'q01'] = np.quantile(x, 0.01)\n    \n    X_tr.loc[segment, 'abs_q95'] = np.quantile(np.abs(x), 0.95)\n    X_tr.loc[segment, 'abs_q99'] = np.quantile(np.abs(x), 0.99)\n    X_tr.loc[segment, 'abs_q05'] = np.quantile(np.abs(x), 0.05)\n    X_tr.loc[segment, 'abs_q01'] = np.quantile(np.abs(x), 0.01)\n    \n    X_tr.loc[segment, 'trend'] = add_trend_feature(x)\n    X_tr.loc[segment, 'abs_trend'] = add_trend_feature(x, abs_values=True)\n    X_tr.loc[segment, 'abs_mean'] = np.abs(x).mean()\n    X_tr.loc[segment, 'abs_std'] = np.abs(x).std()\n    \n    X_tr.loc[segment, 'mad'] = x.mad()\n    X_tr.loc[segment, 'kurt'] = x.kurtosis()\n    X_tr.loc[segment, 'skew'] = x.skew()\n    X_tr.loc[segment, 'med'] = x.median()\n    \n    X_tr.loc[segment, 'Hilbert_mean'] = np.abs(hilbert(x)).mean()\n    X_tr.loc[segment, 'Hann_window_mean'] = (convolve(x, hann(150), mode='same') / sum(hann(150))).mean()\n    X_tr.loc[segment, 'classic_sta_lta1_mean'] = classic_sta_lta(x, 500, 10000).mean()\n    X_tr.loc[segment, 'classic_sta_lta2_mean'] = classic_sta_lta(x, 5000, 100000).mean()\n    X_tr.loc[segment, 'classic_sta_lta3_mean'] = classic_sta_lta(x, 3333, 6666).mean()\n    X_tr.loc[segment, 'classic_sta_lta4_mean'] = classic_sta_lta(x, 10000, 25000).mean()\n    X_tr.loc[segment, 'Moving_average_700_mean'] = x.rolling(window=700).mean().mean(skipna=True)\n    X_tr.loc[segment, 'Moving_average_1500_mean'] = x.rolling(window=1500).mean().mean(skipna=True)\n    X_tr.loc[segment, 'Moving_average_3000_mean'] = x.rolling(window=3000).mean().mean(skipna=True)\n    X_tr.loc[segment, 'Moving_average_6000_mean'] = x.rolling(window=6000).mean().mean(skipna=True)\n    ewma = pd.Series.ewm\n    X_tr.loc[segment, 'exp_Moving_average_300_mean'] = (ewma(x, span=300).mean()).mean(skipna=True)\n    X_tr.loc[segment, 'exp_Moving_average_3000_mean'] = ewma(x, span=3000).mean().mean(skipna=True)\n    X_tr.loc[segment, 'exp_Moving_average_30000_mean'] = ewma(x, span=6000).mean().mean(skipna=True)\n    no_of_std = 2\n    X_tr.loc[segment, 'MA_700MA_std_mean'] = x.rolling(window=700).std().mean()\n    X_tr.loc[segment,'MA_700MA_BB_high_mean'] = (X_tr.loc[segment, 'Moving_average_700_mean'] + no_of_std * X_tr.loc[segment, 'MA_700MA_std_mean']).mean()\n    X_tr.loc[segment,'MA_700MA_BB_low_mean'] = (X_tr.loc[segment, 'Moving_average_700_mean'] - no_of_std * X_tr.loc[segment, 'MA_700MA_std_mean']).mean()\n    X_tr.loc[segment, 'MA_400MA_std_mean'] = x.rolling(window=400).std().mean()\n    X_tr.loc[segment,'MA_400MA_BB_high_mean'] = (X_tr.loc[segment, 'Moving_average_700_mean'] + no_of_std * X_tr.loc[segment, 'MA_400MA_std_mean']).mean()\n    X_tr.loc[segment,'MA_400MA_BB_low_mean'] = (X_tr.loc[segment, 'Moving_average_700_mean'] - no_of_std * X_tr.loc[segment, 'MA_400MA_std_mean']).mean()\n    X_tr.loc[segment, 'MA_1000MA_std_mean'] = x.rolling(window=1000).std().mean()\n    \n    X_tr.loc[segment, 'iqr'] = np.subtract(*np.percentile(x, [75, 25]))\n    X_tr.loc[segment, 'q999'] = np.quantile(x,0.999)\n    X_tr.loc[segment, 'q001'] = np.quantile(x,0.001)\n    X_tr.loc[segment, 'ave10'] = stats.trim_mean(x, 0.1)\n    \n    for windows in [10, 100, 1000]:\n        x_roll_std = x.rolling(windows).std().dropna().values\n        x_roll_mean = x.rolling(windows).mean().dropna().values\n        \n        X_tr.loc[segment, 'ave_roll_std_' + str(windows)] = x_roll_std.mean()\n        X_tr.loc[segment, 'std_roll_std_' + str(windows)] = x_roll_std.std()\n        X_tr.loc[segment, 'max_roll_std_' + str(windows)] = x_roll_std.max()\n        X_tr.loc[segment, 'min_roll_std_' + str(windows)] = x_roll_std.min()\n        X_tr.loc[segment, 'q01_roll_std_' + str(windows)] = np.quantile(x_roll_std, 0.01)\n        X_tr.loc[segment, 'q05_roll_std_' + str(windows)] = np.quantile(x_roll_std, 0.05)\n        X_tr.loc[segment, 'q95_roll_std_' + str(windows)] = np.quantile(x_roll_std, 0.95)\n        X_tr.loc[segment, 'q99_roll_std_' + str(windows)] = np.quantile(x_roll_std, 0.99)\n        X_tr.loc[segment, 'av_change_abs_roll_std_' + str(windows)] = np.mean(np.diff(x_roll_std))\n        X_tr.loc[segment, 'av_change_rate_roll_std_' + str(windows)] = np.mean(np.nonzero((np.diff(x_roll_std) / x_roll_std[:-1]))[0])\n        X_tr.loc[segment, 'abs_max_roll_std_' + str(windows)] = np.abs(x_roll_std).max()\n        \n        X_tr.loc[segment, 'ave_roll_mean_' + str(windows)] = x_roll_mean.mean()\n        X_tr.loc[segment, 'std_roll_mean_' + str(windows)] = x_roll_mean.std()\n        X_tr.loc[segment, 'max_roll_mean_' + str(windows)] = x_roll_mean.max()\n        X_tr.loc[segment, 'min_roll_mean_' + str(windows)] = x_roll_mean.min()\n        X_tr.loc[segment, 'q01_roll_mean_' + str(windows)] = np.quantile(x_roll_mean, 0.01)\n        X_tr.loc[segment, 'q05_roll_mean_' + str(windows)] = np.quantile(x_roll_mean, 0.05)\n        X_tr.loc[segment, 'q95_roll_mean_' + str(windows)] = np.quantile(x_roll_mean, 0.95)\n        X_tr.loc[segment, 'q99_roll_mean_' + str(windows)] = np.quantile(x_roll_mean, 0.99)\n        X_tr.loc[segment, 'av_change_abs_roll_mean_' + str(windows)] = np.mean(np.diff(x_roll_mean))\n        X_tr.loc[segment, 'av_change_rate_roll_mean_' + str(windows)] = np.mean(np.nonzero((np.diff(x_roll_mean) / x_roll_mean[:-1]))[0])\n        X_tr.loc[segment, 'abs_max_roll_mean_' + str(windows)] = np.abs(x_roll_mean).max()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"c2e064c25b00c08acd8f8973f565a0b29d09704f"},"cell_type":"markdown","source":"Let's check the result. We plot the head of X_train."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"dc6dd182bf1819c4dcfe823416efca51ff15d5bf"},"cell_type":"code","source":"X_tr.head(10)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"58196ccf11c59b8bca96279f6bdc7e66eaad6fbe"},"cell_type":"markdown","source":"We scale the data."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"5e9f4c996ac9842fd3243e4f9d3a6e77b8b65cf7"},"cell_type":"code","source":"scaler = StandardScaler()\nscaler.fit(X_tr)\nX_train_scaled = pd.DataFrame(scaler.transform(X_tr), columns=X_tr.columns)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"885370309aca6e12d22a811d3ccc126205de468d"},"cell_type":"markdown","source":"Let's check the obtained dataframe."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"1212dd6508332a32bfb4e337f3076ee9680584d4"},"cell_type":"code","source":"X_train_scaled.head(10)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"500232cf8ff46fd1d0a9a43088c815d9624a222a"},"cell_type":"markdown","source":"# <a id='5'>Model</a>  \n\nLet's prepare the model.\n\nWe read the submission file and prepare the test file."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"38e67f8e457d7c7ce4900b454d3d4a1ab5c42d04"},"cell_type":"code","source":"submission = pd.read_csv('../input/sample_submission.csv', index_col='seg_id')\nX_test = pd.DataFrame(columns=X_tr.columns, dtype=np.float64, index=submission.index)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"c33bd8377aa45cf61d6b3b340a10e81659cab4fe"},"cell_type":"markdown","source":"We apply the same processing done for the training data to the test data."},{"metadata":{"trusted":true,"_uuid":"298c9af7d50367649057a6fc00b64ab391022a37","_kg_hide-input":true},"cell_type":"code","source":"for i, seg_id in enumerate(tqdm(X_test.index)):\n    seg = pd.read_csv('../input/test/' + seg_id + '.csv')\n    \n    x = pd.Series(seg['acoustic_data'].values)\n    X_test.loc[seg_id, 'mean'] = x.mean()\n    X_test.loc[seg_id, 'std'] = x.std()\n    X_test.loc[seg_id, 'max'] = x.max()\n    X_test.loc[seg_id, 'min'] = x.min()\n        \n    X_test.loc[seg_id, 'mean_change_abs'] = np.mean(np.diff(x))\n    X_test.loc[seg_id, 'mean_change_rate'] = np.mean(np.nonzero((np.diff(x) / x[:-1]))[0])\n    X_test.loc[seg_id, 'abs_max'] = np.abs(x).max()\n    X_test.loc[seg_id, 'abs_min'] = np.abs(x).min()\n    \n    X_test.loc[seg_id, 'std_first_50000'] = x[:50000].std()\n    X_test.loc[seg_id, 'std_last_50000'] = x[-50000:].std()\n    X_test.loc[seg_id, 'std_first_10000'] = x[:10000].std()\n    X_test.loc[seg_id, 'std_last_10000'] = x[-10000:].std()\n    \n    X_test.loc[seg_id, 'avg_first_50000'] = x[:50000].mean()\n    X_test.loc[seg_id, 'avg_last_50000'] = x[-50000:].mean()\n    X_test.loc[seg_id, 'avg_first_10000'] = x[:10000].mean()\n    X_test.loc[seg_id, 'avg_last_10000'] = x[-10000:].mean()\n    \n    X_test.loc[seg_id, 'min_first_50000'] = x[:50000].min()\n    X_test.loc[seg_id, 'min_last_50000'] = x[-50000:].min()\n    X_test.loc[seg_id, 'min_first_10000'] = x[:10000].min()\n    X_test.loc[seg_id, 'min_last_10000'] = x[-10000:].min()\n    \n    X_test.loc[seg_id, 'max_first_50000'] = x[:50000].max()\n    X_test.loc[seg_id, 'max_last_50000'] = x[-50000:].max()\n    X_test.loc[seg_id, 'max_first_10000'] = x[:10000].max()\n    X_test.loc[seg_id, 'max_last_10000'] = x[-10000:].max()\n    \n    X_test.loc[seg_id, 'max_to_min'] = x.max() / np.abs(x.min())\n    X_test.loc[seg_id, 'max_to_min_diff'] = x.max() - np.abs(x.min())\n    X_test.loc[seg_id, 'count_big'] = len(x[np.abs(x) > 500])\n    X_test.loc[seg_id, 'sum'] = x.sum()\n    \n    X_test.loc[seg_id, 'mean_change_rate_first_50000'] = np.mean(np.nonzero((np.diff(x[:50000]) / x[:50000][:-1]))[0])\n    X_test.loc[seg_id, 'mean_change_rate_last_50000'] = np.mean(np.nonzero((np.diff(x[-50000:]) / x[-50000:][:-1]))[0])\n    X_test.loc[seg_id, 'mean_change_rate_first_10000'] = np.mean(np.nonzero((np.diff(x[:10000]) / x[:10000][:-1]))[0])\n    X_test.loc[seg_id, 'mean_change_rate_last_10000'] = np.mean(np.nonzero((np.diff(x[-10000:]) / x[-10000:][:-1]))[0])\n    \n    X_test.loc[seg_id, 'q95'] = np.quantile(x,0.95)\n    X_test.loc[seg_id, 'q99'] = np.quantile(x,0.99)\n    X_test.loc[seg_id, 'q05'] = np.quantile(x,0.05)\n    X_test.loc[seg_id, 'q01'] = np.quantile(x,0.01)\n    \n    X_test.loc[seg_id, 'abs_q95'] = np.quantile(np.abs(x), 0.95)\n    X_test.loc[seg_id, 'abs_q99'] = np.quantile(np.abs(x), 0.99)\n    X_test.loc[seg_id, 'abs_q05'] = np.quantile(np.abs(x), 0.05)\n    X_test.loc[seg_id, 'abs_q01'] = np.quantile(np.abs(x), 0.01)\n    \n    X_test.loc[seg_id, 'trend'] = add_trend_feature(x)\n    X_test.loc[seg_id, 'abs_trend'] = add_trend_feature(x, abs_values=True)\n    X_test.loc[seg_id, 'abs_mean'] = np.abs(x).mean()\n    X_test.loc[seg_id, 'abs_std'] = np.abs(x).std()\n    \n    X_test.loc[seg_id, 'mad'] = x.mad()\n    X_test.loc[seg_id, 'kurt'] = x.kurtosis()\n    X_test.loc[seg_id, 'skew'] = x.skew()\n    X_test.loc[seg_id, 'med'] = x.median()\n    \n    X_test.loc[seg_id, 'Hilbert_mean'] = np.abs(hilbert(x)).mean()\n    X_test.loc[seg_id, 'Hann_window_mean'] = (convolve(x, hann(150), mode='same') / sum(hann(150))).mean()\n    X_test.loc[seg_id, 'classic_sta_lta1_mean'] = classic_sta_lta(x, 500, 10000).mean()\n    X_test.loc[seg_id, 'classic_sta_lta2_mean'] = classic_sta_lta(x, 5000, 100000).mean()\n    X_test.loc[seg_id, 'classic_sta_lta3_mean'] = classic_sta_lta(x, 3333, 6666).mean()\n    X_test.loc[seg_id, 'classic_sta_lta4_mean'] = classic_sta_lta(x, 10000, 25000).mean()\n    X_test.loc[seg_id, 'Moving_average_700_mean'] = x.rolling(window=700).mean().mean(skipna=True)\n    X_test.loc[seg_id, 'Moving_average_1500_mean'] = x.rolling(window=1500).mean().mean(skipna=True)\n    X_test.loc[seg_id, 'Moving_average_3000_mean'] = x.rolling(window=3000).mean().mean(skipna=True)\n    X_test.loc[seg_id, 'Moving_average_6000_mean'] = x.rolling(window=6000).mean().mean(skipna=True)\n    ewma = pd.Series.ewm\n    X_test.loc[seg_id, 'exp_Moving_average_300_mean'] = (ewma(x, span=300).mean()).mean(skipna=True)\n    X_test.loc[seg_id, 'exp_Moving_average_3000_mean'] = ewma(x, span=3000).mean().mean(skipna=True)\n    X_test.loc[seg_id, 'exp_Moving_average_30000_mean'] = ewma(x, span=6000).mean().mean(skipna=True)\n    no_of_std = 2\n    X_test.loc[seg_id, 'MA_700MA_std_mean'] = x.rolling(window=700).std().mean()\n    X_test.loc[seg_id,'MA_700MA_BB_high_mean'] = (X_test.loc[seg_id, 'Moving_average_700_mean'] + no_of_std * X_test.loc[seg_id, 'MA_700MA_std_mean']).mean()\n    X_test.loc[seg_id,'MA_700MA_BB_low_mean'] = (X_test.loc[seg_id, 'Moving_average_700_mean'] - no_of_std * X_test.loc[seg_id, 'MA_700MA_std_mean']).mean()\n    X_test.loc[seg_id, 'MA_400MA_std_mean'] = x.rolling(window=400).std().mean()\n    X_test.loc[seg_id,'MA_400MA_BB_high_mean'] = (X_test.loc[seg_id, 'Moving_average_700_mean'] + no_of_std * X_test.loc[seg_id, 'MA_400MA_std_mean']).mean()\n    X_test.loc[seg_id,'MA_400MA_BB_low_mean'] = (X_test.loc[seg_id, 'Moving_average_700_mean'] - no_of_std * X_test.loc[seg_id, 'MA_400MA_std_mean']).mean()\n    X_test.loc[seg_id, 'MA_1000MA_std_mean'] = x.rolling(window=1000).std().mean()\n    \n    X_test.loc[seg_id, 'iqr'] = np.subtract(*np.percentile(x, [75, 25]))\n    X_test.loc[seg_id, 'q999'] = np.quantile(x,0.999)\n    X_test.loc[seg_id, 'q001'] = np.quantile(x,0.001)\n    X_test.loc[seg_id, 'ave10'] = stats.trim_mean(x, 0.1)\n    \n    for windows in [10, 100, 1000]:\n        x_roll_std = x.rolling(windows).std().dropna().values\n        x_roll_mean = x.rolling(windows).mean().dropna().values\n        \n        X_test.loc[seg_id, 'ave_roll_std_' + str(windows)] = x_roll_std.mean()\n        X_test.loc[seg_id, 'std_roll_std_' + str(windows)] = x_roll_std.std()\n        X_test.loc[seg_id, 'max_roll_std_' + str(windows)] = x_roll_std.max()\n        X_test.loc[seg_id, 'min_roll_std_' + str(windows)] = x_roll_std.min()\n        X_test.loc[seg_id, 'q01_roll_std_' + str(windows)] = np.quantile(x_roll_std, 0.01)\n        X_test.loc[seg_id, 'q05_roll_std_' + str(windows)] = np.quantile(x_roll_std, 0.05)\n        X_test.loc[seg_id, 'q95_roll_std_' + str(windows)] = np.quantile(x_roll_std, 0.95)\n        X_test.loc[seg_id, 'q99_roll_std_' + str(windows)] = np.quantile(x_roll_std, 0.99)\n        X_test.loc[seg_id, 'av_change_abs_roll_std_' + str(windows)] = np.mean(np.diff(x_roll_std))\n        X_test.loc[seg_id, 'av_change_rate_roll_std_' + str(windows)] = np.mean(np.nonzero((np.diff(x_roll_std) / x_roll_std[:-1]))[0])\n        X_test.loc[seg_id, 'abs_max_roll_std_' + str(windows)] = np.abs(x_roll_std).max()\n        \n        X_test.loc[seg_id, 'ave_roll_mean_' + str(windows)] = x_roll_mean.mean()\n        X_test.loc[seg_id, 'std_roll_mean_' + str(windows)] = x_roll_mean.std()\n        X_test.loc[seg_id, 'max_roll_mean_' + str(windows)] = x_roll_mean.max()\n        X_test.loc[seg_id, 'min_roll_mean_' + str(windows)] = x_roll_mean.min()\n        X_test.loc[seg_id, 'q01_roll_mean_' + str(windows)] = np.quantile(x_roll_mean, 0.01)\n        X_test.loc[seg_id, 'q05_roll_mean_' + str(windows)] = np.quantile(x_roll_mean, 0.05)\n        X_test.loc[seg_id, 'q95_roll_mean_' + str(windows)] = np.quantile(x_roll_mean, 0.95)\n        X_test.loc[seg_id, 'q99_roll_mean_' + str(windows)] = np.quantile(x_roll_mean, 0.99)\n        X_test.loc[seg_id, 'av_change_abs_roll_mean_' + str(windows)] = np.mean(np.diff(x_roll_mean))\n        X_test.loc[seg_id, 'av_change_rate_roll_mean_' + str(windows)] = np.mean(np.nonzero((np.diff(x_roll_mean) / x_roll_mean[:-1]))[0])\n        X_test.loc[seg_id, 'abs_max_roll_mean_' + str(windows)] = np.abs(x_roll_mean).max()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"5630b8d9234af698ed83af94980538e9ed8eaa59"},"cell_type":"markdown","source":"We scale also the test data."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"a18c26409ced2a71c3b7b4926d05455afd5fa26a"},"cell_type":"code","source":"X_test_scaled = pd.DataFrame(scaler.transform(X_test), columns=X_test.columns)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"7bf4d31bea2f1fd82fbfdc1a4a84f36834daf5c3"},"cell_type":"code","source":"X_test_scaled.head(10)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e5fc32d150320c9f94af9bb2c362566ebb134aae"},"cell_type":"code","source":"def GPI(data):\n    return (5.612045 +\n            0.0399999991*np.tanh(((((((((((data[\"q01_roll_std_100\"]) + (((data[\"q05\"]) + (((((((((data[\"q05\"]) - ((((((data[\"iqr\"]) + (((data[\"q05_roll_std_100\"]) * 2.0)))) + (data[\"q01_roll_std_100\"]))/2.0)))) * 2.0)) * 2.0)) * 2.0)))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((10.0)) * ((((10.0)) * (((((data[\"q05\"]) - (((((data[\"iqr\"]) - (((((data[\"MA_700MA_BB_low_mean\"]) - (((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)))) * 2.0)))) + (((data[\"q95\"]) * 2.0)))))) - (data[\"q05_roll_std_10\"]))))))) +\n            0.0399999991*np.tanh((((9.0)) * ((((13.91913318634033203)) * ((((8.0)) * (((((data[\"q05_roll_mean_10\"]) * 2.0)) - (((((((data[\"q05_roll_std_1000\"]) + (data[\"iqr\"]))) + ((((((9.0)) * (data[\"q05_roll_std_10\"]))) * 2.0)))) + (data[\"q95_roll_mean_10\"]))))))))))) +\n            0.0399999991*np.tanh(((((((-3.0) - (((((((((((((data[\"q05_roll_std_100\"]) - (data[\"q05\"]))) + (data[\"q95\"]))) * 2.0)) * 2.0)) + (((data[\"iqr\"]) + (((((data[\"q05_roll_std_100\"]) - (data[\"q05\"]))) * 2.0)))))) * 2.0)))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((-1.0*(((((12.37306118011474609)) * (((((data[\"iqr\"]) * 2.0)) + (((data[\"q05_roll_std_1000\"]) + (((data[\"q05_roll_std_10\"]) + (((((((12.37306499481201172)) * (((((data[\"q05_roll_std_10\"]) * 2.0)) + (data[\"ave_roll_std_100\"]))))) + (data[\"abs_max_roll_mean_10\"]))/2.0))))))))))))) * 2.0)) +\n            0.0399999991*np.tanh(((-3.0) * (((((((((((((((((data[\"q95\"]) + (((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)))) + (data[\"iqr\"]))) - (data[\"q05_roll_mean_10\"]))) + (((data[\"q95\"]) + (data[\"q01_roll_std_100\"]))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)))) +\n            0.0399999991*np.tanh(((((((-3.0) * (((((((((data[\"iqr\"]) + (((((((((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)) - (data[\"q05\"]))) - (data[\"q05_roll_mean_10\"]))) * 2.0)))) * 2.0)) * 2.0)) * 2.0)))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((data[\"iqr\"]) + (data[\"av_change_abs_roll_mean_1000\"]))) - ((8.0)))) - ((((((7.0)) * (((((((((data[\"q95\"]) + (data[\"q05_roll_std_100\"]))) * 2.0)) + (data[\"iqr\"]))) + (data[\"MA_700MA_std_mean\"]))))) * 2.0)))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((((((((((((((-1.0*((data[\"classic_sta_lta4_mean\"])))) + ((((-1.0*((((((((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)) + (data[\"MA_1000MA_std_mean\"]))) * ((10.0))))))) * 2.0)))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((6.0)) * ((((((((7.0)) * ((((((6.0)) * ((-1.0*((((data[\"iqr\"]) - (((((data[\"MA_400MA_BB_low_mean\"]) - (data[\"q05_roll_std_100\"]))) * 2.0))))))))) - (((data[\"q05_roll_std_1000\"]) * 2.0)))))) * 2.0)) * 2.0)))) +\n            0.0399999991*np.tanh(((((((-1.0) - (((((((((data[\"q01_roll_std_10\"]) + (((((((((data[\"q01_roll_std_10\"]) + (((((data[\"q05_roll_std_10\"]) - ((-1.0*((data[\"q05_roll_std_100\"])))))) * 2.0)))) * 2.0)) * 2.0)) * 2.0)))) * 2.0)) * 2.0)) * 2.0)))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((((((((((-1.0*((((((data[\"q05_roll_std_100\"]) * 2.0)) + (np.tanh((((((((((data[\"q95\"]) * 2.0)) * 2.0)) + (np.tanh(((9.00242137908935547)))))) * 2.0))))))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((data[\"q01_roll_std_100\"]) - (((((data[\"min_roll_std_100\"]) + (((data[\"MA_400MA_BB_high_mean\"]) * 2.0)))) - (((((((data[\"q05\"]) - (((data[\"q05_roll_std_100\"]) + (((data[\"q05_roll_std_10\"]) * 2.0)))))) * 2.0)) * 2.0)))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((((8.36818313598632812)) * (((((((((((((((((((data[\"q01_roll_mean_10\"]) - (((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)))) - (data[\"q05_roll_std_1000\"]))) * 2.0)) * 2.0)) * 2.0)) - (data[\"min_roll_std_100\"]))) * 2.0)) - (data[\"min\"]))) * 2.0)))) * 2.0)) +\n            0.0399999991*np.tanh((((14.20546531677246094)) * ((((4.79257917404174805)) * (((((data[\"max_first_50000\"]) + (((np.tanh(((14.20546531677246094)))) / 2.0)))) - (((((data[\"iqr\"]) - (((data[\"q05_roll_mean_10\"]) - (data[\"q05_roll_std_100\"]))))) * ((14.20546531677246094)))))))))) +\n            0.0399999991*np.tanh((((13.87437629699707031)) * (((data[\"iqr\"]) - ((((13.87437629699707031)) * ((((13.87437629699707031)) * (((((np.tanh((np.tanh((((data[\"q05_roll_std_100\"]) + (data[\"abs_mean\"]))))))) + (((data[\"q999\"]) + (data[\"q05_roll_std_1000\"]))))) + (data[\"iqr\"]))))))))))) +\n            0.0399999991*np.tanh(((((((data[\"max_to_min\"]) - (((((((((((((((((((data[\"ave_roll_mean_1000\"]) + ((((4.0)) * (data[\"q05_roll_std_10\"]))))) * 2.0)) * 2.0)) * 2.0)) + ((4.0)))) * 2.0)) * 2.0)) + ((4.0)))) * 2.0)))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((data[\"q05\"]) + (((data[\"q99_roll_mean_100\"]) + (((((data[\"q05\"]) - (((data[\"q95\"]) + (((data[\"q05_roll_std_100\"]) + (((((data[\"q95\"]) * 2.0)) + ((1.52700340747833252)))))))))) * 2.0)))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((-3.0) + (((((((-3.0) + (((((data[\"min_last_10000\"]) - (((((((data[\"exp_Moving_average_30000_mean\"]) + (((((data[\"MA_400MA_std_mean\"]) + (data[\"q05_roll_std_10\"]))) * 2.0)))) * 2.0)) + (data[\"q05_roll_std_100\"]))))) * 2.0)))) * 2.0)) * 2.0)))) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((((-1.0) - (((((data[\"q01_roll_std_1000\"]) + (((((data[\"q05_roll_std_10\"]) - (data[\"q05_roll_mean_10\"]))) * 2.0)))) * 2.0)))) - (np.tanh((((np.tanh((data[\"min_roll_std_100\"]))) * 2.0)))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((3.67563223838806152)) - (((((((((((np.tanh(((3.67562866210937500)))) + (((data[\"iqr\"]) + (((((data[\"exp_Moving_average_30000_mean\"]) + (((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)))) * 2.0)))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)))) +\n            0.0399999991*np.tanh(((((((((((data[\"ave_roll_mean_1000\"]) + (((((((data[\"ave_roll_mean_1000\"]) + (((((((data[\"q05\"]) - (((data[\"q05_roll_std_100\"]) * 2.0)))) - (np.tanh((np.tanh((data[\"exp_Moving_average_3000_mean\"]))))))) * 2.0)))) * 2.0)) * 2.0)))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((-3.0) - (((((data[\"avg_first_50000\"]) + (((((data[\"iqr\"]) + (((data[\"avg_first_50000\"]) + (((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)))))) * 2.0)))) * 2.0)))) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((data[\"q01_roll_mean_100\"]) + (((((((data[\"q99_roll_mean_1000\"]) - (((data[\"q05_roll_std_10\"]) - (((((data[\"q05\"]) - (((data[\"q05_roll_std_10\"]) * 2.0)))) * 2.0)))))) * 2.0)) * 2.0)))) - (data[\"min_roll_std_1000\"]))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((data[\"exp_Moving_average_30000_mean\"]) - (((np.tanh((np.tanh((np.tanh((((data[\"Moving_average_3000_mean\"]) + (((data[\"q05_roll_std_100\"]) + (((data[\"q05_roll_std_100\"]) * 2.0)))))))))))) * ((((11.90846347808837891)) + (((data[\"exp_Moving_average_30000_mean\"]) * 2.0)))))))) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((((((((((((-1.0*((((3.1415927410) + (((((data[\"q05_roll_mean_10\"]) - (((((((((data[\"q05_roll_mean_10\"]) * 2.0)) - (data[\"q05_roll_std_1000\"]))) * 2.0)) * 2.0)))) * 2.0))))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) - (3.1415927410))) +\n            0.0399999991*np.tanh(((((data[\"ave10\"]) - (((((np.tanh((((((((((((((((((data[\"q05_roll_std_100\"]) + (np.tanh(((((data[\"iqr\"]) + (data[\"exp_Moving_average_30000_mean\"]))/2.0)))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)))) * 2.0)) * 2.0)))) * 2.0)) +\n            0.0399999991*np.tanh((((((((((((9.65306472778320312)) * (((0.3183098733) + (((((data[\"Moving_average_700_mean\"]) + (data[\"q95_roll_std_100\"]))) - (((((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)) * 2.0)))))))) - (((data[\"av_change_abs_roll_std_100\"]) + (data[\"min_roll_std_100\"]))))) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((((((((-1.0*((((((data[\"sum\"]) + (((((data[\"q05_roll_std_100\"]) + (data[\"ave_roll_std_10\"]))) * 2.0)))) * 2.0))))) - (((((((((data[\"ave_roll_std_10\"]) * 2.0)) * 2.0)) * 2.0)) * (data[\"ave_roll_std_10\"]))))) - (data[\"iqr\"]))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((-1.0) + (((((((((((data[\"sum\"]) - (((data[\"q05_roll_std_10\"]) * (((((((5.0)) * 2.0)) + (data[\"exp_Moving_average_300_mean\"]))/2.0)))))) * 2.0)) * 2.0)) - (data[\"Hilbert_mean\"]))) * 2.0)))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((7.0)) * ((-1.0*((((((((((((((data[\"q01_roll_std_10\"]) + (((data[\"q95_roll_mean_10\"]) * 2.0)))) + (data[\"q01_roll_std_100\"]))) * 2.0)) + (data[\"q05_roll_mean_1000\"]))) + ((((data[\"abs_q05\"]) + ((((data[\"q05_roll_std_100\"]) + (data[\"kurt\"]))/2.0)))/2.0)))) * 2.0))))))) +\n            0.0399999991*np.tanh(((((((((0.3183098733) - (((((((data[\"q05_roll_std_100\"]) - (np.tanh((((data[\"MA_400MA_BB_low_mean\"]) - (np.tanh((((data[\"abs_q05\"]) * (((data[\"std_first_50000\"]) + (data[\"q05_roll_std_100\"]))))))))))))) * 2.0)) * 2.0)))) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((data[\"q05_roll_mean_10\"]) - ((((13.61857223510742188)) * (((data[\"q01_roll_mean_1000\"]) - ((((data[\"max_to_min_diff\"]) + (((((data[\"q01_roll_std_100\"]) * 2.0)) - ((((13.61857223510742188)) * (((data[\"q05_roll_std_100\"]) - ((((-1.0) + (data[\"q05_roll_mean_10\"]))/2.0)))))))))/2.0)))))))) * 2.0)) +\n            0.0399999991*np.tanh(((((data[\"q05_roll_std_100\"]) - (((((data[\"abs_q05\"]) + (((((((((data[\"q05_roll_std_1000\"]) + (((((data[\"ave_roll_mean_1000\"]) + (((data[\"q01_roll_std_10\"]) + (data[\"q05_roll_std_100\"]))))) + (((data[\"q95\"]) * 2.0)))))) * 2.0)) * 2.0)) * 2.0)))) * 2.0)))) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((((((((((data[\"exp_Moving_average_300_mean\"]) - ((((((((data[\"q05_roll_std_10\"]) + (data[\"q01_roll_std_100\"]))/2.0)) * 2.0)) * 2.0)))) * 2.0)) - (((data[\"abs_std\"]) - (-1.0))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((data[\"min_roll_std_1000\"]) - (((((((((((data[\"q05_roll_std_1000\"]) + (((((((data[\"q95_roll_mean_10\"]) * 2.0)) + (data[\"q05_roll_mean_100\"]))) + (data[\"q05_roll_std_100\"]))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((data[\"abs_q05\"]) * 2.0)) - (((data[\"max_last_10000\"]) + (((((((((data[\"q05_roll_std_1000\"]) + (((((((data[\"q05_roll_std_100\"]) + ((0.63752192258834839)))) * 2.0)) * 2.0)))) * 2.0)) * 2.0)) * 2.0)))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((((((((((-1.0*((((data[\"q95\"]) + (((((np.tanh((((data[\"q05_roll_std_100\"]) + (((data[\"ave_roll_mean_100\"]) + (data[\"q05_roll_std_10\"]))))))) * (((3.0) + (data[\"ave_roll_mean_100\"]))))) * 2.0))))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((((((((((-1.0*((((((data[\"q95_roll_mean_1000\"]) * (((np.tanh((np.tanh((((data[\"q05_roll_std_100\"]) * 2.0)))))) * 2.0)))) + (((((data[\"q05_roll_std_100\"]) * 2.0)) + (data[\"q05_roll_std_100\"])))))))) - (data[\"q95_roll_mean_10\"]))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((((((13.28551006317138672)) * (((((((((((-1.0) - (data[\"q05_roll_std_100\"]))) * 2.0)) - (data[\"q05_roll_std_1000\"]))) * 2.0)) - (-1.0))))) - (data[\"av_change_abs_roll_mean_100\"]))) - (((data[\"max_last_10000\"]) - (((data[\"avg_last_50000\"]) - (data[\"max_last_10000\"]))))))) +\n            0.0399999991*np.tanh((-1.0*((((((((((data[\"max_roll_std_100\"]) + (((((data[\"abs_q05\"]) + (((((((((data[\"sum\"]) + (((((data[\"q05_roll_std_100\"]) + (data[\"q95\"]))) * 2.0)))) * 2.0)) * 2.0)) * 2.0)))) * 2.0)))) * 2.0)) * 2.0)) * 2.0))))) +\n            0.0399999991*np.tanh(((((((((((((((((((data[\"q95_roll_mean_1000\"]) - (((data[\"iqr\"]) + (((data[\"q05_roll_std_1000\"]) * 2.0)))))) * 2.0)) * 2.0)) - (((3.1415927410) + (((data[\"q05_roll_std_1000\"]) * 2.0)))))) - (data[\"q05_roll_std_100\"]))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((((((((((((-1.0*((((data[\"q05_roll_std_10\"]) + (((((data[\"ave_roll_mean_100\"]) + (((3.0) * (((data[\"q05_roll_std_10\"]) + (((data[\"q05_roll_std_10\"]) - (data[\"iqr\"]))))))))) * 2.0))))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((9.0)) * ((-1.0*((((((((data[\"ave_roll_mean_100\"]) * (np.tanh(((-1.0*((((data[\"ave_roll_mean_100\"]) * (((data[\"MA_700MA_BB_high_mean\"]) + (np.tanh((data[\"q05_roll_std_100\"])))))))))))))) + (((((data[\"q95\"]) * 2.0)) + (data[\"q05_roll_std_100\"]))))) * 2.0))))))) +\n            0.0399999991*np.tanh((((((data[\"iqr\"]) + ((((8.59251594543457031)) + ((5.48695707321166992)))))/2.0)) - ((((8.59251594543457031)) * ((((8.59251594543457031)) * (((data[\"q01_roll_std_10\"]) + (((((data[\"q95_roll_std_10\"]) + (((data[\"Moving_average_6000_mean\"]) + (((data[\"iqr\"]) * 2.0)))))) * 2.0)))))))))) +\n            0.0399999991*np.tanh((((((9.69162750244140625)) * 2.0)) * ((((9.69162750244140625)) * (((-1.0) - (((((data[\"min_roll_std_10\"]) - ((((9.69163131713867188)) * (((((((-1.0) - (((data[\"q05_roll_std_100\"]) - (data[\"q05\"]))))) * 2.0)) * 2.0)))))) * 2.0)))))))) +\n            0.0399999991*np.tanh(((((((((((((((((((((((data[\"ave10\"]) * (data[\"ave_roll_mean_100\"]))) - ((((-1.0*((data[\"q01_roll_std_100\"])))) + (((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((data[\"classic_sta_lta1_mean\"]) - ((((data[\"ave_roll_mean_1000\"]) + ((((5.95361852645874023)) - (((((data[\"ave_roll_mean_1000\"]) - ((((((((data[\"q05_roll_std_100\"]) * 2.0)) * 2.0)) + (((data[\"iqr\"]) + (data[\"q01_roll_std_1000\"]))))/2.0)))) * ((14.64158535003662109)))))))/2.0)))) * ((14.64158535003662109)))) +\n            0.0399999991*np.tanh(((((((((((((data[\"ave10\"]) * (data[\"ave_roll_mean_10\"]))) - (((((data[\"count_big\"]) + (((data[\"q95\"]) + (data[\"q05_roll_std_100\"]))))) * 2.0)))) * 2.0)) * 2.0)) - (((data[\"q95_roll_mean_1000\"]) + (((data[\"Moving_average_3000_mean\"]) * (data[\"Moving_average_3000_mean\"]))))))) * 2.0)) +\n            0.0399999991*np.tanh((((((((-1.0*((((((data[\"q01_roll_std_1000\"]) + (data[\"mean_change_rate_last_50000\"]))) + (((((((((data[\"q05_roll_std_1000\"]) + ((((-1.0*((data[\"q05\"])))) + (data[\"q05_roll_std_1000\"]))))) - ((-1.0*((2.0)))))) * 2.0)) * 2.0))))))) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((-1.0*(((((((((((((((((((((data[\"abs_std\"]) + (data[\"abs_q05\"]))/2.0)) + (((data[\"q95\"]) * 2.0)))) + (((data[\"q01_roll_mean_1000\"]) + (data[\"q05_roll_std_1000\"]))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0))))) +\n            0.0399999991*np.tanh(((((((((((((((((((((((((data[\"q05\"]) * 2.0)) * 2.0)) + (((-3.0) - (((data[\"q01_roll_std_1000\"]) * 2.0)))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) + (data[\"q01_roll_std_1000\"]))) * 2.0)) * 2.0)) * 2.0)) + (data[\"q01_roll_std_1000\"]))) +\n            0.0399999991*np.tanh(((((((((((((np.tanh(((((((((-1.0*((((data[\"exp_Moving_average_30000_mean\"]) + (data[\"q05_roll_std_100\"])))))) - (np.tanh((np.tanh((((data[\"q95\"]) * 2.0)))))))) * 2.0)) * 2.0)))) * 2.0)) - (data[\"q01_roll_std_100\"]))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((data[\"max_to_min_diff\"]) + (((((((((((-1.0) - (data[\"q05_roll_std_1000\"]))) * 2.0)) * 2.0)) - (((data[\"q05_roll_std_1000\"]) - (data[\"q05\"]))))) * 2.0)))) * 2.0)) + (data[\"abs_q05\"]))) * 2.0)) + (data[\"q05_roll_std_1000\"]))) * 2.0)) +\n            0.0399999991*np.tanh(((((data[\"ave_roll_mean_10\"]) - (((((np.tanh((((((((((data[\"std_last_50000\"]) + (data[\"q05_roll_std_100\"]))) - (((((np.tanh((data[\"q05\"]))) * 2.0)) + (((data[\"ave_roll_mean_10\"]) * (data[\"ave_roll_mean_10\"]))))))) * 2.0)) * 2.0)))) * 2.0)) * 2.0)))) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((((data[\"skew\"]) - (((((data[\"q05_roll_std_100\"]) - (data[\"max_to_min\"]))) - (((((data[\"q95_roll_mean_1000\"]) + ((-1.0*((((data[\"q05_roll_std_100\"]) + (data[\"q01_roll_std_10\"])))))))) * 2.0)))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((-1.0*((((((((((((((((data[\"Moving_average_1500_mean\"]) + (((data[\"q05_roll_std_100\"]) + ((((data[\"abs_max_roll_std_10\"]) + (data[\"q05_roll_std_100\"]))/2.0)))))) * 2.0)) * 2.0)) * 2.0)) * (((((data[\"q05_roll_std_100\"]) * (data[\"q05_roll_std_100\"]))) + (data[\"q05_roll_std_100\"]))))) * 2.0)) * 2.0))))) +\n            0.0399999991*np.tanh((((12.83482360839843750)) * ((((12.83482360839843750)) * ((((12.83482360839843750)) * (((np.tanh((np.tanh((((data[\"q99_roll_mean_10\"]) - (((np.tanh((((data[\"q05_roll_std_100\"]) - (data[\"q05\"]))))) * (data[\"Moving_average_1500_mean\"]))))))))) + (((data[\"q05\"]) * 2.0)))))))))) +\n            0.0399999991*np.tanh((((6.21923971176147461)) * ((((6.21923971176147461)) * ((-1.0*((((((data[\"q05_roll_std_10\"]) * 2.0)) + (((data[\"abs_q05\"]) - (np.tanh((((data[\"min_last_50000\"]) + (((np.tanh((((((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)) * 2.0)))) * 2.0))))))))))))))))) +\n            0.0399999991*np.tanh(((((((((data[\"max_to_min\"]) + (((data[\"mean_change_rate_last_10000\"]) + (((data[\"mean_change_rate_last_10000\"]) + (((((((data[\"abs_q05\"]) - (((data[\"q01_roll_std_10\"]) * 2.0)))) - (((data[\"q01_roll_std_100\"]) * 2.0)))) * 2.0)))))))) + (data[\"mean_change_rate_last_10000\"]))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((((((((((((((-1.0*((data[\"q05_roll_std_10\"])))) - (((((data[\"q01_roll_std_10\"]) - (np.tanh((((((((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)) + (data[\"q05_roll_std_100\"]))) * 2.0)))))) + (data[\"abs_q05\"]))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((-2.0) - ((((10.60644054412841797)) * ((((10.60644054412841797)) * ((((np.tanh((data[\"iqr\"]))) + (((((((((((data[\"q05_roll_std_1000\"]) * 2.0)) - (-2.0))) * 2.0)) + (data[\"std_first_10000\"]))) - (np.tanh((data[\"abs_q05\"]))))))/2.0)))))))) +\n            0.0399999991*np.tanh(((((((((((((data[\"Hann_window_mean\"]) + (np.tanh((data[\"Hann_window_mean\"]))))) - (((((np.tanh((((((data[\"q05_roll_std_100\"]) + (((data[\"ave10\"]) + (data[\"abs_max_roll_mean_100\"]))))) * 2.0)))) * 2.0)) * 2.0)))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((np.tanh((((data[\"q01_roll_std_100\"]) - (((data[\"q01_roll_std_10\"]) * (data[\"q05_roll_std_10\"]))))))) - (data[\"q01_roll_std_100\"]))) - (((data[\"q05_roll_std_1000\"]) - (np.tanh((((((data[\"q05_roll_std_10\"]) * 2.0)) * 2.0)))))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((data[\"exp_Moving_average_3000_mean\"]) - (((data[\"q05_roll_std_10\"]) + (((data[\"q01_roll_std_1000\"]) - (((((np.tanh((data[\"MA_1000MA_std_mean\"]))) - (data[\"q05_roll_std_10\"]))) - (((((data[\"q05_roll_std_10\"]) * (((data[\"abs_q05\"]) * (data[\"q05_roll_std_10\"]))))) * 2.0)))))))))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((((((((((((((data[\"min_roll_mean_10\"]) - (((((data[\"sum\"]) + (data[\"q05_roll_std_1000\"]))) + (data[\"q95\"]))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((((((data[\"Moving_average_6000_mean\"]) + (((((((((((-2.0) - (((data[\"q05_roll_std_100\"]) * 2.0)))) * 2.0)) * 2.0)) * 2.0)) * 2.0)))) * 2.0)) + (data[\"q01_roll_std_10\"]))) * 2.0)) * 2.0)) + (data[\"q01_roll_std_10\"]))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((((3.0) / 2.0)) - (((((((((data[\"q05_roll_std_100\"]) - (((data[\"Moving_average_1500_mean\"]) * (data[\"Moving_average_6000_mean\"]))))) + (data[\"q05_roll_std_100\"]))) * 2.0)) + (data[\"q05_roll_std_100\"]))))) * 2.0)) * 2.0)) * 2.0)) - (data[\"min_roll_std_100\"]))) * 2.0)) +\n            0.0399999991*np.tanh(((((((data[\"q01_roll_std_100\"]) + (((((((data[\"q01_roll_std_10\"]) + (((((data[\"ave10\"]) + (((((((((((-2.0) - (((data[\"q05_roll_std_100\"]) * 2.0)))) * 2.0)) * 2.0)) * 2.0)) * 2.0)))) * 2.0)))) * 2.0)) * 2.0)))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((data[\"exp_Moving_average_3000_mean\"]) * (data[\"avg_first_50000\"]))) - (((((((data[\"q95\"]) * 2.0)) * (data[\"q05_roll_std_100\"]))) * (((data[\"q05_roll_std_1000\"]) + (1.0))))))) * (((3.0) + (((((1.0) + (data[\"exp_Moving_average_300_mean\"]))) * 2.0)))))) +\n            0.0399999991*np.tanh((((((((((((((((-1.0*((((data[\"q05_roll_std_10\"]) - (np.tanh((((np.tanh((((data[\"q95_roll_std_100\"]) * 2.0)))) * 2.0))))))))) * 2.0)) * 2.0)) * 2.0)) - (((data[\"iqr\"]) * (data[\"abs_q05\"]))))) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((-1.0*((((data[\"q95\"]) + ((((((data[\"av_change_rate_roll_std_100\"]) + (data[\"q95\"]))/2.0)) + (((((((data[\"abs_q05\"]) * (((data[\"ave_roll_std_100\"]) + (data[\"max_roll_std_100\"]))))) * 2.0)) + (((data[\"av_change_abs_roll_mean_10\"]) + (((data[\"q05_roll_std_100\"]) + (data[\"q95\"])))))))))))))) +\n            0.0399999991*np.tanh(((((data[\"q95_roll_std_1000\"]) - ((((((((data[\"q01_roll_std_10\"]) + (((((data[\"q95\"]) * 2.0)) + (((data[\"iqr\"]) * (data[\"mean\"]))))))/2.0)) * 2.0)) * (((((data[\"iqr\"]) * 2.0)) * (((data[\"q05_roll_std_1000\"]) * 2.0)))))))) + (data[\"min_roll_std_1000\"]))) +\n            0.0399999991*np.tanh(((((data[\"skew\"]) + (((((((((data[\"skew\"]) + (((((((data[\"avg_last_10000\"]) - (((data[\"q05_roll_std_100\"]) - ((((data[\"q01_roll_std_10\"]) + ((((-1.0*((data[\"q01_roll_std_10\"])))) * 2.0)))/2.0)))))) * 2.0)) * 2.0)))) * 2.0)) * 2.0)) * 2.0)))) * 2.0)) +\n            0.0399999991*np.tanh(((data[\"ave_roll_mean_10\"]) - (((((((data[\"Moving_average_6000_mean\"]) - (((3.0) - (((((data[\"q01_roll_std_10\"]) - (((((data[\"Moving_average_6000_mean\"]) * (data[\"Moving_average_6000_mean\"]))) - (((((data[\"q05_roll_std_1000\"]) - (data[\"min_roll_mean_10\"]))) * 2.0)))))) * 2.0)))))) * 2.0)) * 2.0)))) +\n            0.0399999991*np.tanh(((((data[\"avg_last_10000\"]) - (((((data[\"min_roll_std_10\"]) - (data[\"avg_last_10000\"]))) - (data[\"avg_last_10000\"]))))) - (((((3.1415927410) + (((((((((((((data[\"q05_roll_std_100\"]) - (-1.0))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)))) * 2.0)))) +\n            0.0399999991*np.tanh(((((((data[\"min\"]) + (np.tanh((((((((((data[\"exp_Moving_average_30000_mean\"]) * (data[\"exp_Moving_average_30000_mean\"]))) - (((((0.3183098733) * (data[\"mean\"]))) - (((((0.3183098733) - (data[\"q05_roll_std_100\"]))) * 2.0)))))) * 2.0)) * 2.0)))))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((((((((((((data[\"skew\"]) - (((((((data[\"q01_roll_std_10\"]) + (data[\"av_change_abs_roll_mean_10\"]))) + (((3.1415927410) / 2.0)))) * 2.0)))) - (data[\"q95\"]))) * 2.0)) * 2.0)) + (data[\"av_change_abs_roll_mean_10\"]))) * 2.0)) - (data[\"q01_roll_std_10\"]))) * 2.0)) +\n            0.0399999991*np.tanh(((((data[\"skew\"]) - (data[\"ave_roll_mean_10\"]))) - (((((((((data[\"std_roll_mean_10\"]) + ((2.45366740226745605)))) + (data[\"ave_roll_mean_10\"]))) + (((data[\"av_change_rate_roll_std_1000\"]) + (data[\"ave_roll_mean_10\"]))))) + (((data[\"av_change_abs_roll_mean_10\"]) + (((data[\"q01_roll_std_10\"]) + (data[\"av_change_abs_roll_mean_10\"]))))))))) +\n            0.0399999991*np.tanh(((((((data[\"q95_roll_std_100\"]) + (((data[\"abs_q05\"]) * (((((((((np.tanh((data[\"q05_roll_std_100\"]))) - ((-1.0*((((data[\"q01_roll_std_10\"]) * (((data[\"q05_roll_std_100\"]) * ((-1.0*((data[\"q05_roll_std_100\"]))))))))))))) * 2.0)) * 2.0)) * 2.0)))))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((data[\"mean_change_rate_first_10000\"]) - ((-1.0*((((data[\"q95_roll_mean_10\"]) + (((data[\"q01_roll_std_1000\"]) + (data[\"q01_roll_std_1000\"])))))))))) - (((((data[\"q05_roll_std_10\"]) * (((data[\"q05_roll_std_100\"]) * (data[\"q05_roll_std_1000\"]))))) * (((data[\"q05_roll_std_100\"]) * (((data[\"q05_roll_std_10\"]) * 2.0)))))))) +\n            0.0399999991*np.tanh((-1.0*((((((((((((((((data[\"q05_roll_std_1000\"]) - (((((-1.0*((((data[\"Hann_window_mean\"]) * (data[\"q05_roll_std_1000\"])))))) + ((((2.0) + ((((data[\"ave10\"]) + (data[\"min_last_10000\"]))/2.0)))/2.0)))/2.0)))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0))))) +\n            0.0399999991*np.tanh((((((-1.0*(((13.12281036376953125))))) * ((13.12281036376953125)))) * (((0.3183098733) + (((((data[\"q05_roll_std_100\"]) + (np.tanh(((((13.12280750274658203)) + (((2.0) - (((data[\"q95_roll_mean_1000\"]) * ((((13.12281036376953125)) * 2.0)))))))))))) * 2.0)))))) +\n            0.0399999991*np.tanh(((((data[\"q05_roll_std_10\"]) + (data[\"q05_roll_std_10\"]))) * (np.tanh((((((data[\"q05_roll_std_100\"]) + (data[\"Moving_average_1500_mean\"]))) * (((((data[\"kurt\"]) - (((data[\"q05_roll_std_10\"]) + ((((((data[\"q01_roll_std_10\"]) + ((10.0)))/2.0)) / 2.0)))))) - (data[\"q01_roll_std_10\"]))))))))) +\n            0.0399999991*np.tanh((((((12.48571777343750000)) * ((((((((-1.0*((((data[\"q05_roll_std_100\"]) - (np.tanh(((((12.48571777343750000)) * ((((-1.0*((data[\"MA_400MA_BB_low_mean\"])))) + (data[\"abs_q05\"])))))))))))) * 2.0)) * 2.0)) * 2.0)))) - (((data[\"q95_roll_mean_1000\"]) + ((12.48572158813476562)))))) +\n            0.0399999991*np.tanh(((data[\"ave_roll_mean_10\"]) + (((((((((((((data[\"min\"]) + (((np.tanh((((((data[\"abs_max\"]) * 2.0)) * 2.0)))) - ((((data[\"q95\"]) + ((((data[\"ave_roll_mean_10\"]) + (data[\"max_roll_std_10\"]))/2.0)))/2.0)))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)))) +\n            0.0399999991*np.tanh(((((((((((((data[\"av_change_rate_roll_std_10\"]) * (data[\"max_to_min\"]))) * 2.0)) * 2.0)) + (((data[\"q05_roll_std_1000\"]) * ((((-1.0*((((((((data[\"mad\"]) * 2.0)) + (data[\"max_to_min\"]))) * 2.0))))) * 2.0)))))) + (data[\"skew\"]))) + (data[\"av_change_rate_roll_std_10\"]))) +\n            0.0399999991*np.tanh(((data[\"min_last_10000\"]) - (((data[\"min_roll_std_100\"]) + (((data[\"av_change_abs_roll_mean_10\"]) + (((data[\"std_first_10000\"]) + ((((((-1.0*((((((data[\"min_roll_std_10\"]) + (data[\"av_change_abs_roll_std_100\"]))) + (data[\"max_first_10000\"])))))) * (data[\"mean_change_abs\"]))) + (data[\"av_change_abs_roll_mean_100\"]))))))))))) +\n            0.0399999991*np.tanh(((data[\"min_roll_mean_1000\"]) - (((data[\"mean_change_rate_last_50000\"]) - (((((((data[\"min\"]) * (((data[\"kurt\"]) + (data[\"q95_roll_mean_100\"]))))) * 2.0)) - (np.tanh((((((data[\"q95_roll_mean_100\"]) + (((((data[\"q01_roll_std_10\"]) - (1.0))) * 2.0)))) * 2.0)))))))))) +\n            0.0399999991*np.tanh(((((((((((data[\"q95\"]) * (((data[\"q05_roll_std_10\"]) * (((data[\"abs_q05\"]) * (((((data[\"q05\"]) - (data[\"q01_roll_std_10\"]))) * 2.0)))))))) + ((((((data[\"q95_roll_std_10\"]) * (data[\"abs_q05\"]))) + (data[\"q05_roll_std_10\"]))/2.0)))) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((data[\"classic_sta_lta4_mean\"]) - (((((((data[\"q05_roll_std_1000\"]) - (((data[\"classic_sta_lta3_mean\"]) + (((((data[\"q05_roll_std_1000\"]) * (((((((data[\"classic_sta_lta4_mean\"]) - (data[\"av_change_rate_roll_std_100\"]))) - (data[\"skew\"]))) - (data[\"q05_roll_std_1000\"]))))) - (data[\"av_change_rate_roll_std_100\"]))))))) * 2.0)) * 2.0)))) +\n            0.0399999991*np.tanh((((((np.tanh((((np.tanh((data[\"kurt\"]))) * 2.0)))) + (data[\"skew\"]))/2.0)) - (((((np.tanh((data[\"q95_roll_mean_100\"]))) + (((data[\"abs_max_roll_std_1000\"]) * (data[\"kurt\"]))))) - (((data[\"av_change_abs_roll_std_100\"]) * (((data[\"std_first_10000\"]) - (data[\"classic_sta_lta3_mean\"]))))))))) +\n            0.0399999991*np.tanh(((((data[\"min_roll_mean_1000\"]) + (((data[\"q95_roll_mean_1000\"]) + (data[\"q95_roll_mean_100\"]))))) + (((data[\"iqr\"]) * (((((np.tanh((((((((((((data[\"q95_roll_mean_100\"]) * (data[\"q01\"]))) * 2.0)) * 2.0)) * 2.0)) * 2.0)))) * 2.0)) * 2.0)))))) +\n            0.0399999991*np.tanh(((((((((((((((data[\"av_change_abs_roll_std_1000\"]) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * (((((data[\"med\"]) + (((data[\"min_roll_mean_10\"]) - (data[\"min_first_10000\"]))))) + (data[\"max_first_10000\"]))))) - (((data[\"q999\"]) - (((data[\"min_roll_mean_10\"]) * 2.0)))))) +\n            0.0399999991*np.tanh(((((((((((np.tanh((((data[\"q05_roll_std_10\"]) + (data[\"avg_first_10000\"]))))) + (data[\"q95_roll_mean_100\"]))) * ((-1.0*((((data[\"q05_roll_std_1000\"]) - (np.tanh((np.tanh((np.tanh((((data[\"max_last_10000\"]) + (data[\"avg_first_10000\"])))))))))))))))) * 2.0)) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((((((data[\"q05_roll_mean_10\"]) * (((data[\"q05_roll_std_1000\"]) * (data[\"q05_roll_std_100\"]))))) * (((data[\"q05_roll_std_1000\"]) * (data[\"q05_roll_std_1000\"]))))) + (np.tanh((((((((((data[\"sum\"]) + (data[\"q01_roll_std_1000\"]))) + (data[\"q05_roll_std_10\"]))) + (data[\"q95_roll_std_10\"]))) * 2.0)))))) +\n            0.0399999991*np.tanh(((((((((((data[\"mean_change_rate_first_10000\"]) - (((((((data[\"q95\"]) - (data[\"q95_roll_std_10\"]))) * 2.0)) * 2.0)))) - (((data[\"q95\"]) - (((data[\"classic_sta_lta2_mean\"]) * (data[\"av_change_abs_roll_mean_10\"]))))))) * 2.0)) - (data[\"av_change_abs_roll_mean_10\"]))) * 2.0)) +\n            0.0374208651*np.tanh(((((((((((((data[\"q01\"]) * (((data[\"mean_change_rate\"]) + (data[\"q01_roll_std_1000\"]))))) + (((data[\"q95_roll_mean_1000\"]) * ((((-1.0*((data[\"std_roll_mean_1000\"])))) * 2.0)))))) * 2.0)) * 2.0)) * 2.0)) + ((-1.0*((data[\"std_roll_mean_1000\"])))))) +\n            0.0399999991*np.tanh(((data[\"min_roll_mean_1000\"]) + (np.tanh((((((data[\"std_first_50000\"]) * ((((-1.0*((((((((((data[\"q95_roll_mean_1000\"]) + (data[\"std_first_50000\"]))) * 2.0)) * 2.0)) * 2.0))))) * 2.0)))) * (((((((data[\"q99_roll_std_10\"]) + (data[\"std_last_50000\"]))) * 2.0)) * 2.0)))))))) +\n            0.0399999991*np.tanh(((((((((data[\"std_first_50000\"]) * (data[\"max_last_10000\"]))) + (((((((data[\"std_first_50000\"]) * (data[\"classic_sta_lta4_mean\"]))) + (((data[\"kurt\"]) * (np.tanh((((((data[\"max_to_min_diff\"]) - (data[\"max_last_10000\"]))) + (data[\"max_to_min_diff\"]))))))))) * 2.0)))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh((-1.0*((((data[\"min_roll_mean_1000\"]) * (((((((((data[\"av_change_abs_roll_std_10\"]) - (((((((data[\"q95_roll_mean_100\"]) + (((data[\"q95_roll_mean_100\"]) - (data[\"classic_sta_lta2_mean\"]))))/2.0)) + (((((data[\"classic_sta_lta2_mean\"]) + (data[\"q05_roll_std_10\"]))) * (data[\"q95_roll_mean_100\"]))))/2.0)))) * 2.0)) * 2.0)) * 2.0))))))) +\n            0.0399999991*np.tanh(((data[\"min_roll_mean_1000\"]) + (((data[\"q95_roll_std_100\"]) + (((data[\"q01_roll_mean_10\"]) * (((data[\"max_first_50000\"]) + (((((((data[\"av_change_rate_roll_mean_10\"]) - (data[\"min_roll_std_1000\"]))) * 2.0)) + (((((((data[\"av_change_rate_roll_mean_10\"]) * 2.0)) * (data[\"av_change_rate_roll_mean_10\"]))) * (data[\"iqr\"]))))))))))))) +\n            0.0399843678*np.tanh(((data[\"q05_roll_std_1000\"]) * (((((data[\"abs_q05\"]) + (data[\"mean_change_rate_first_10000\"]))) - (((data[\"classic_sta_lta2_mean\"]) - (((data[\"abs_q05\"]) - (((((((data[\"q05_roll_std_1000\"]) * (data[\"q05_roll_std_1000\"]))) - (data[\"classic_sta_lta4_mean\"]))) - (((0.3183098733) + (data[\"classic_sta_lta4_mean\"]))))))))))))) +\n            0.0399999991*np.tanh((((((((((data[\"MA_700MA_std_mean\"]) * (((data[\"q99_roll_mean_1000\"]) * 2.0)))) + (((((data[\"av_change_abs_roll_mean_1000\"]) + (data[\"min_roll_std_10\"]))) + (data[\"q01_roll_std_100\"]))))/2.0)) + (data[\"q95_roll_std_1000\"]))) * (((data[\"q01_roll_mean_100\"]) * (((((((data[\"q99_roll_mean_1000\"]) * 2.0)) * 2.0)) * 2.0)))))) +\n            0.0399531052*np.tanh(((((((((data[\"max_to_min\"]) - (data[\"std_first_50000\"]))) - (data[\"std_first_50000\"]))) * (((((((data[\"q05_roll_std_10\"]) * (data[\"q05_roll_std_10\"]))) - (data[\"exp_Moving_average_300_mean\"]))) + (((data[\"av_change_rate_roll_mean_10\"]) * 2.0)))))) + ((((data[\"std_first_50000\"]) + (data[\"mean_change_abs\"]))/2.0)))) +\n            0.0399999991*np.tanh((((((data[\"skew\"]) + ((((data[\"skew\"]) + (data[\"abs_max_roll_mean_1000\"]))/2.0)))/2.0)) * (((data[\"av_change_rate_roll_mean_10\"]) - (((((data[\"max_roll_std_100\"]) * (((data[\"med\"]) - (((data[\"av_change_rate_roll_mean_10\"]) - (data[\"abs_max_roll_mean_1000\"]))))))) * (((data[\"q95_roll_mean_1000\"]) + (data[\"skew\"]))))))))) +\n            0.0399999991*np.tanh(((data[\"min_roll_std_100\"]) * ((((((((data[\"abs_q05\"]) - (data[\"av_change_rate_roll_std_10\"]))) + ((((((((((data[\"min_roll_std_100\"]) - (data[\"mean_change_rate_last_10000\"]))) - (data[\"q01_roll_std_100\"]))) + (((data[\"min_roll_std_100\"]) - (data[\"q01_roll_std_100\"]))))/2.0)) - (data[\"max_to_min\"]))))/2.0)) - (data[\"q99_roll_mean_1000\"]))))) +\n            0.0387338810*np.tanh((-1.0*((((((data[\"mean_change_rate\"]) + (((((data[\"av_change_abs_roll_std_10\"]) * 2.0)) + (((data[\"mean_change_abs\"]) + (((((((((data[\"av_change_abs_roll_std_10\"]) * 2.0)) + (data[\"av_change_abs_roll_std_10\"]))) + (data[\"av_change_abs_roll_std_10\"]))) * (data[\"av_change_abs_roll_std_10\"]))))))))) * (data[\"av_change_rate_roll_mean_1000\"])))))) +\n            0.0399999991*np.tanh(((data[\"MA_700MA_BB_low_mean\"]) * (((data[\"q95_roll_std_100\"]) * (((((((data[\"av_change_abs_roll_mean_10\"]) + (data[\"min_roll_mean_100\"]))) + (((((data[\"q95_roll_mean_1000\"]) * (data[\"max_roll_mean_1000\"]))) + (data[\"std_last_10000\"]))))) + (((((data[\"Moving_average_700_mean\"]) * (data[\"std_last_10000\"]))) + (data[\"med\"]))))))))) +\n            0.0399999991*np.tanh(((data[\"min_last_10000\"]) * (((data[\"mean_change_rate_last_10000\"]) - (((((((data[\"min_roll_std_1000\"]) + (((np.tanh((data[\"min_roll_std_1000\"]))) + (((np.tanh((((data[\"min_last_50000\"]) / 2.0)))) - (data[\"q99_roll_std_1000\"]))))))) + (data[\"av_change_rate_roll_mean_100\"]))) + (np.tanh((data[\"max_to_min\"]))))))))) +\n            0.0399999991*np.tanh(((data[\"q05\"]) * (((((data[\"max_first_50000\"]) + (((data[\"max\"]) / 2.0)))) - (((data[\"q01_roll_std_100\"]) * (np.tanh((((((data[\"skew\"]) + (data[\"kurt\"]))) - (((data[\"MA_400MA_BB_low_mean\"]) + (((data[\"q01_roll_std_100\"]) + (data[\"abs_q05\"]))))))))))))))) +\n            0.0399687365*np.tanh((((((((data[\"av_change_rate_roll_std_10\"]) + (data[\"abs_mean\"]))/2.0)) + (data[\"min_roll_mean_1000\"]))) + (np.tanh((((data[\"min_roll_std_10\"]) - ((((((((((((data[\"av_change_rate_roll_std_10\"]) + (data[\"abs_mean\"]))/2.0)) + (data[\"abs_mean\"]))) * 2.0)) * ((-1.0*((data[\"min_roll_std_10\"])))))) * 2.0)))))))) +\n            0.0399999991*np.tanh(((((((data[\"q99_roll_std_100\"]) * (((data[\"q01_roll_mean_1000\"]) - (((((data[\"std_last_10000\"]) - (((((((data[\"av_change_abs_roll_std_100\"]) + (data[\"av_change_abs_roll_mean_100\"]))) + (data[\"q05_roll_std_10\"]))) * (data[\"av_change_abs_roll_std_100\"]))))) - (((data[\"kurt\"]) * (data[\"q01_roll_std_10\"]))))))))) * 2.0)) * 2.0)) +\n            0.0399999991*np.tanh(((data[\"min_roll_mean_1000\"]) - (((((data[\"skew\"]) * 2.0)) * ((-1.0*((((data[\"av_change_abs_roll_std_100\"]) + (((((data[\"max_first_10000\"]) + ((((data[\"mean_change_rate_last_10000\"]) + (np.tanh((((np.tanh((data[\"mean_change_rate_last_10000\"]))) * (data[\"q95\"]))))))/2.0)))) * (data[\"q95_roll_std_1000\"])))))))))))) +\n            0.0399999991*np.tanh((((((((data[\"avg_first_50000\"]) + ((1.16062068939208984)))/2.0)) - (data[\"q01_roll_std_100\"]))) * (((data[\"q95_roll_mean_1000\"]) + ((-1.0*((np.tanh((((data[\"Moving_average_3000_mean\"]) - ((((1.16062068939208984)) - (((data[\"mean_change_rate_first_10000\"]) - (data[\"q01_roll_std_100\"])))))))))))))))) +\n            0.0399843678*np.tanh(((data[\"min_roll_mean_1000\"]) - ((-1.0*(((((((data[\"min_roll_mean_1000\"]) + (data[\"abs_max_roll_std_1000\"]))/2.0)) - ((-1.0*((((data[\"q95_roll_std_1000\"]) + (((np.tanh((((data[\"classic_sta_lta4_mean\"]) * (((data[\"abs_max_roll_std_1000\"]) + (data[\"av_change_abs_roll_mean_10\"]))))))) - (data[\"q05_roll_std_1000\"]))))))))))))))) +\n            0.0383118391*np.tanh((-1.0*((((((data[\"mean_change_rate_first_50000\"]) * (data[\"mean_change_rate_first_50000\"]))) + (((data[\"std_last_10000\"]) - ((((data[\"min_roll_std_1000\"]) + (((((data[\"min_roll_std_1000\"]) + ((((((data[\"mean_change_rate_last_50000\"]) * (data[\"min_roll_std_1000\"]))) + (((data[\"std_first_10000\"]) * 2.0)))/2.0)))) * (data[\"min_roll_std_1000\"]))))/2.0))))))))) +\n            0.0364986323*np.tanh(((((data[\"q95_roll_std_1000\"]) * 2.0)) * (((((data[\"q01_roll_mean_1000\"]) + (((((data[\"q95_roll_std_1000\"]) + (data[\"mean_change_rate_last_10000\"]))) * (((data[\"q95_roll_std_1000\"]) + (((data[\"max_to_min_diff\"]) + (((data[\"min_roll_mean_1000\"]) * (((data[\"q95_roll_mean_1000\"]) * 2.0)))))))))))) + (data[\"mean_change_rate_last_10000\"]))))) +\n            0.0399999991*np.tanh(((data[\"min_first_10000\"]) * (((data[\"min_roll_std_1000\"]) * (((((data[\"kurt\"]) - (data[\"av_change_abs_roll_std_10\"]))) - (((((data[\"max_to_min\"]) + (((((data[\"avg_first_50000\"]) - (data[\"med\"]))) - (data[\"av_change_rate_roll_mean_100\"]))))) + (((data[\"min_first_10000\"]) * (data[\"med\"]))))))))))) +\n            0.0399843678*np.tanh((((((data[\"max_to_min\"]) * (data[\"min_roll_std_10\"]))) + (((((((data[\"min\"]) * (((data[\"q95_roll_mean_1000\"]) * (((((data[\"min_roll_std_10\"]) - (data[\"max_first_10000\"]))) - (((data[\"max_to_min\"]) * (((data[\"av_change_abs_roll_std_10\"]) + (data[\"av_change_abs_roll_std_10\"]))))))))))) * 2.0)) * 2.0)))/2.0)) +\n            0.0399843678*np.tanh(((data[\"q01_roll_std_1000\"]) * ((((((((((((data[\"MA_1000MA_std_mean\"]) + (data[\"min_roll_std_10\"]))) + (data[\"av_change_abs_roll_std_10\"]))) + (((data[\"max_to_min\"]) + (data[\"av_change_abs_roll_std_10\"]))))) + (0.3183098733))/2.0)) * ((-1.0*((((data[\"med\"]) + (((0.3183098733) * 2.0))))))))))) +\n            0.0399999991*np.tanh(((data[\"min_last_10000\"]) * ((-1.0*((((data[\"mean_change_rate_first_10000\"]) - (((data[\"MA_400MA_BB_low_mean\"]) * (((((((((data[\"mean_change_rate_first_10000\"]) - (((((data[\"skew\"]) * 2.0)) - (data[\"mean_change_rate_first_10000\"]))))) - (data[\"min_last_10000\"]))) - (data[\"skew\"]))) * (data[\"mean_change_rate_first_10000\"])))))))))))) +\n            0.0399843678*np.tanh(((data[\"q01_roll_std_100\"]) * (((((((((((data[\"classic_sta_lta3_mean\"]) * (data[\"abs_max_roll_mean_1000\"]))) * (data[\"av_change_abs_roll_std_100\"]))) + (((((data[\"classic_sta_lta1_mean\"]) + (((data[\"min_roll_std_1000\"]) - (data[\"av_change_abs_roll_std_100\"]))))) - (data[\"av_change_abs_roll_std_100\"]))))) * (data[\"min_roll_mean_1000\"]))) - (data[\"av_change_abs_roll_std_100\"]))))) +\n            0.0399999991*np.tanh(((((data[\"trend\"]) * ((((data[\"q95\"]) + (data[\"min_roll_std_100\"]))/2.0)))) * ((-1.0*(((((((((((data[\"av_change_abs_roll_std_1000\"]) - (data[\"av_change_abs_roll_std_100\"]))) - (data[\"classic_sta_lta4_mean\"]))) + (((data[\"classic_sta_lta4_mean\"]) * (data[\"abs_q99\"]))))/2.0)) + (data[\"mean_change_rate_last_10000\"])))))))) +\n            0.0399843678*np.tanh(((((data[\"q05\"]) * (((((((-1.0*((data[\"q01_roll_mean_1000\"])))) + (data[\"med\"]))/2.0)) - (data[\"mean_change_rate_first_10000\"]))))) * (((data[\"q01_roll_std_1000\"]) + (((((data[\"iqr\"]) + (data[\"med\"]))) + (np.tanh((((data[\"mean_change_rate_first_10000\"]) + (data[\"q01_roll_mean_1000\"]))))))))))) +\n            0.0399843678*np.tanh(((data[\"avg_first_10000\"]) * (((data[\"abs_q95\"]) * (((data[\"min_roll_mean_100\"]) - ((((((data[\"min_roll_std_10\"]) + ((-1.0*((data[\"max_first_10000\"])))))/2.0)) * (((((data[\"avg_last_10000\"]) + (((data[\"avg_first_10000\"]) * (data[\"max_to_min\"]))))) + (data[\"av_change_abs_roll_std_1000\"]))))))))))) +\n            0.0399999991*np.tanh(((data[\"std_roll_mean_1000\"]) * ((((data[\"min_roll_std_10\"]) + (((((data[\"ave_roll_std_1000\"]) + ((-1.0*((data[\"mean_change_rate\"])))))) * (((((data[\"mean_change_rate\"]) + (data[\"abs_max_roll_std_1000\"]))) * ((-1.0*(((((((data[\"min_roll_std_10\"]) + (data[\"mean_change_rate\"]))/2.0)) + (data[\"trend\"])))))))))))/2.0)))) +\n            0.0399999991*np.tanh(((data[\"av_change_abs_roll_mean_1000\"]) * ((((((-1.0*((((data[\"mean_change_abs\"]) * (((data[\"q95_roll_mean_10\"]) + ((((data[\"av_change_abs_roll_std_100\"]) + (data[\"av_change_abs_roll_mean_1000\"]))/2.0))))))))) + (((data[\"max_roll_mean_100\"]) + (((data[\"mean_change_rate_last_50000\"]) - (np.tanh((data[\"max_last_10000\"]))))))))) * (data[\"max_last_10000\"]))))) +\n            0.0399687365*np.tanh(((((data[\"max_first_10000\"]) - (((np.tanh((np.tanh((((data[\"min_roll_std_100\"]) + (((data[\"min_roll_std_100\"]) + (data[\"Hann_window_mean\"]))))))))) - ((((((data[\"av_change_abs_roll_std_10\"]) + (data[\"max_last_50000\"]))/2.0)) + (((data[\"abs_max_roll_mean_100\"]) * (data[\"min_roll_mean_10\"]))))))))) * (data[\"trend\"]))) +\n            0.0399999991*np.tanh((((((data[\"av_change_rate_roll_std_10\"]) - (data[\"av_change_rate_roll_std_1000\"]))) + (((data[\"classic_sta_lta1_mean\"]) * (((((data[\"mean_change_rate_last_10000\"]) + (data[\"q01_roll_std_100\"]))) * (((data[\"classic_sta_lta1_mean\"]) * (((data[\"classic_sta_lta1_mean\"]) * ((((((data[\"mean_change_rate_last_10000\"]) + (data[\"q99_roll_std_1000\"]))/2.0)) * (data[\"min_first_50000\"]))))))))))))/2.0)) +\n            0.0399843678*np.tanh(((data[\"av_change_abs_roll_std_10\"]) * (((((data[\"skew\"]) + (data[\"mean_change_rate_last_50000\"]))) - (((((data[\"abs_trend\"]) - (data[\"mean_change_rate_last_10000\"]))) - (((data[\"av_change_abs_roll_mean_100\"]) * (((data[\"av_change_abs_roll_std_10\"]) + (((data[\"skew\"]) + (((data[\"max_last_10000\"]) + (data[\"min_roll_std_10\"]))))))))))))))) +\n            0.0379054286*np.tanh((-1.0*(((((((np.tanh((data[\"trend\"]))) + (((data[\"classic_sta_lta3_mean\"]) * (((data[\"trend\"]) + (data[\"max_roll_mean_1000\"]))))))/2.0)) + (((data[\"mean_change_abs\"]) * (np.tanh((((data[\"classic_sta_lta3_mean\"]) * 2.0))))))))))) +\n            0.0399687365*np.tanh(((((((data[\"av_change_rate_roll_mean_100\"]) * (data[\"trend\"]))) - (np.tanh((((data[\"mean_change_rate\"]) * (((data[\"av_change_abs_roll_mean_100\"]) + (((data[\"min_roll_std_1000\"]) - (((data[\"mean_change_rate_last_10000\"]) - (((data[\"mean_change_rate\"]) * ((((data[\"av_change_abs_roll_mean_100\"]) + (data[\"max_to_min\"]))/2.0)))))))))))))))) / 2.0)) +\n            0.0399999991*np.tanh(((data[\"mean_change_rate_last_10000\"]) * (((data[\"av_change_abs_roll_std_1000\"]) + ((((((((data[\"max_last_10000\"]) - (data[\"q05\"]))) * (data[\"max_to_min\"]))) + ((((-1.0*((data[\"av_change_abs_roll_std_10\"])))) - (((data[\"max_last_10000\"]) - (((data[\"mean_change_rate_last_10000\"]) * (data[\"q05\"]))))))))/2.0)))))) +\n            0.0399843678*np.tanh((((((data[\"q95_roll_std_1000\"]) + (((data[\"q95_roll_std_1000\"]) * ((((data[\"q01_roll_mean_1000\"]) + (((data[\"q01_roll_mean_1000\"]) + (data[\"std_roll_mean_100\"]))))/2.0)))))/2.0)) - (np.tanh((np.tanh(((((np.tanh((data[\"std_first_10000\"]))) + (np.tanh((np.tanh((((data[\"av_change_abs_roll_mean_10\"]) * 2.0)))))))/2.0)))))))) +\n            0.0399843678*np.tanh(((data[\"q95_roll_mean_10\"]) * (((data[\"mean_change_rate_first_10000\"]) * (((-1.0) * (((((((((data[\"av_change_rate_roll_mean_100\"]) + (((-1.0) - (data[\"mean_change_rate_first_10000\"]))))/2.0)) + (((data[\"min_roll_std_10\"]) - (data[\"mean_change_rate_first_50000\"]))))/2.0)) + (data[\"mean_change_rate_last_50000\"]))))))))) +\n            0.0399843678*np.tanh(((data[\"max_roll_std_100\"]) * (((((data[\"mean_change_rate_first_50000\"]) - (((data[\"classic_sta_lta2_mean\"]) * (((data[\"av_change_rate_roll_std_10\"]) + (data[\"med\"]))))))) - (((((data[\"av_change_rate_roll_std_10\"]) * (data[\"mean_change_rate_first_50000\"]))) + (((((data[\"mean_change_rate_first_50000\"]) * (data[\"av_change_rate_roll_std_10\"]))) + (data[\"med\"]))))))))) +\n            0.0374521278*np.tanh(np.tanh(((-1.0*((((((((data[\"min_first_50000\"]) * (data[\"mean_change_rate_last_50000\"]))) + (data[\"q95\"]))) + ((((data[\"av_change_abs_roll_std_100\"]) + (((data[\"mean_change_rate_last_50000\"]) * (((data[\"avg_last_50000\"]) + (((data[\"mean_change_rate_last_50000\"]) + ((-1.0*((data[\"av_change_abs_roll_std_10\"])))))))))))/2.0))))))))) +\n            0.0399999991*np.tanh(((((data[\"q95_roll_std_10\"]) * (data[\"q01_roll_mean_1000\"]))) + (((data[\"q95_roll_std_1000\"]) - (((data[\"q05_roll_std_10\"]) * ((((data[\"avg_last_10000\"]) + (((data[\"q05_roll_std_10\"]) * (((((((((data[\"max_roll_mean_100\"]) * (data[\"classic_sta_lta3_mean\"]))) + (data[\"q05_roll_std_100\"]))/2.0)) + (data[\"q05_roll_std_100\"]))/2.0)))))/2.0)))))))) +\n            0.0399843678*np.tanh(((data[\"std_roll_mean_1000\"]) * (((data[\"classic_sta_lta1_mean\"]) + (((data[\"classic_sta_lta1_mean\"]) + (((data[\"MA_400MA_BB_low_mean\"]) * (((data[\"q95_roll_mean_1000\"]) + (((((data[\"classic_sta_lta1_mean\"]) * (data[\"max_last_10000\"]))) + (((((data[\"max_last_10000\"]) * 2.0)) + (((data[\"classic_sta_lta2_mean\"]) * 2.0)))))))))))))))) +\n            0.0399843678*np.tanh(((data[\"mean_change_abs\"]) * (((((((data[\"min_first_50000\"]) * 2.0)) * (data[\"av_change_abs_roll_std_10\"]))) + (np.tanh((((((((((data[\"mean_change_rate_first_50000\"]) + (((data[\"av_change_abs_roll_std_100\"]) - (((data[\"q95_roll_mean_10\"]) - (((data[\"min_first_50000\"]) * 2.0)))))))) * 2.0)) * 2.0)) * 2.0)))))))) +\n            0.0399687365*np.tanh((((((data[\"min_last_50000\"]) * (data[\"av_change_abs_roll_std_10\"]))) + (((((((data[\"max_roll_mean_100\"]) + ((-1.0*((data[\"av_change_abs_roll_std_1000\"])))))/2.0)) + (((data[\"q95_roll_mean_1000\"]) * ((-1.0*(((((data[\"q05_roll_std_100\"]) + ((((data[\"av_change_abs_roll_std_10\"]) + ((((data[\"av_change_abs_roll_std_10\"]) + (data[\"max_roll_mean_100\"]))/2.0)))/2.0)))/2.0))))))))/2.0)))/2.0)) +\n            0.0399843678*np.tanh(((((data[\"max_roll_mean_100\"]) + (((data[\"q01_roll_mean_1000\"]) * ((((np.tanh((data[\"max_to_min_diff\"]))) + (((data[\"q99\"]) - (((data[\"kurt\"]) * (np.tanh((data[\"q95\"]))))))))/2.0)))))) - (((data[\"kurt\"]) * (np.tanh((data[\"q999\"]))))))) +\n            0.0397186391*np.tanh(((data[\"min_roll_mean_1000\"]) * (((data[\"avg_last_10000\"]) * ((((((((((((data[\"std_roll_std_10\"]) + (data[\"iqr\"]))/2.0)) + (data[\"min_roll_std_10\"]))) + (data[\"classic_sta_lta1_mean\"]))) + (((data[\"avg_last_10000\"]) * (data[\"std_roll_std_10\"]))))) + ((((data[\"trend\"]) + (data[\"iqr\"]))/2.0)))))))) +\n            0.0399531052*np.tanh(((data[\"q99_roll_std_1000\"]) * (((np.tanh((((((((((((data[\"ave_roll_mean_1000\"]) + (((np.tanh((((((data[\"q05_roll_mean_1000\"]) + (((data[\"q05_roll_mean_1000\"]) + ((-1.0*((data[\"classic_sta_lta1_mean\"])))))))) * 2.0)))) * 2.0)))) * 2.0)) * 2.0)) * 2.0)) * 2.0)))) * 2.0)))) +\n            0.0399218425*np.tanh((((((data[\"MA_400MA_BB_low_mean\"]) * (((((((data[\"avg_first_10000\"]) * 2.0)) * 2.0)) * (((data[\"abs_max_roll_mean_100\"]) * (data[\"min_roll_std_1000\"]))))))) + (((np.tanh((((((((((((((data[\"avg_first_10000\"]) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)))) / 2.0)))/2.0)) +\n            0.0399999991*np.tanh((((((-1.0*((data[\"classic_sta_lta3_mean\"])))) * (data[\"std_roll_mean_1000\"]))) * ((((((data[\"av_change_rate_roll_mean_100\"]) + (((data[\"q05_roll_std_1000\"]) * ((((-1.0*((data[\"ave_roll_mean_1000\"])))) + (data[\"av_change_rate_roll_mean_100\"]))))))/2.0)) + (((((2.0) + (data[\"med\"]))) + (data[\"q95_roll_mean_100\"]))))))) +\n            0.0399843678*np.tanh(((data[\"q99_roll_std_10\"]) * (((data[\"q01_roll_mean_1000\"]) + (((((data[\"min_roll_std_100\"]) * ((((((((data[\"q01_roll_mean_1000\"]) + (data[\"min_roll_std_100\"]))/2.0)) + (data[\"av_change_abs_roll_mean_1000\"]))) + (data[\"q01_roll_mean_1000\"]))))) + (((data[\"min_roll_std_100\"]) + ((((data[\"av_change_abs_roll_mean_1000\"]) + (data[\"min_last_50000\"]))/2.0)))))))))) +\n            0.0399687365*np.tanh((((-1.0*((((data[\"q95_roll_std_10\"]) * (np.tanh((((((((((data[\"q99_roll_std_100\"]) * (((data[\"exp_Moving_average_30000_mean\"]) - (((data[\"avg_last_10000\"]) * (((((data[\"avg_last_10000\"]) - (data[\"max_roll_std_100\"]))) - (data[\"max_roll_std_100\"]))))))))) * 2.0)) * 2.0)) * 2.0))))))))) / 2.0)) +\n            0.0396404825*np.tanh((((-1.0*((data[\"abs_trend\"])))) * (((((((data[\"abs_trend\"]) + (((((data[\"abs_trend\"]) + (((data[\"max_roll_mean_1000\"]) * 2.0)))) * (((data[\"max_roll_mean_1000\"]) * 2.0)))))) * 2.0)) * 2.0)))) +\n            0.0399531052*np.tanh((((np.tanh((((((((data[\"mean_change_rate_last_10000\"]) * (data[\"av_change_rate_roll_std_10\"]))) + (data[\"max_last_50000\"]))) + (((data[\"max_first_10000\"]) + (data[\"mean_change_rate_last_10000\"]))))))) + (((data[\"ave_roll_mean_1000\"]) * (np.tanh((((((data[\"med\"]) * (data[\"max_last_50000\"]))) + (data[\"mean_change_rate_last_10000\"]))))))))/2.0)) +\n            0.0397499017*np.tanh((((((((data[\"q99_roll_mean_100\"]) + (((data[\"std_last_10000\"]) * (((((((data[\"q05_roll_mean_100\"]) + (data[\"mean_change_abs\"]))) + (data[\"skew\"]))) * 2.0)))))/2.0)) * (data[\"max_last_50000\"]))) * 2.0)) +\n            0.0399999991*np.tanh(((data[\"abs_max_roll_std_1000\"]) * (((((((data[\"max_last_10000\"]) + (((((data[\"mean_change_rate\"]) * 2.0)) * ((-1.0*(((((data[\"q01\"]) + (((data[\"max_roll_mean_1000\"]) * (((data[\"abs_max_roll_mean_10\"]) + (((data[\"mean_change_rate\"]) + (data[\"max_roll_mean_1000\"]))))))))/2.0))))))))) * 2.0)) * 2.0)))) +\n            0.0399999991*np.tanh((((-1.0*((np.tanh((((np.tanh((((data[\"av_change_abs_roll_std_1000\"]) * 2.0)))) * 2.0))))))) + (np.tanh((((((data[\"av_change_abs_roll_std_1000\"]) * 2.0)) * (((((((9.0)) + (data[\"av_change_abs_roll_std_1000\"]))/2.0)) * 2.0)))))))) +\n            0.0399999991*np.tanh(((data[\"min_first_10000\"]) * (((data[\"iqr\"]) * (((((data[\"std_roll_mean_1000\"]) + (data[\"av_change_rate_roll_mean_100\"]))) + (((data[\"av_change_rate_roll_mean_100\"]) + ((((((data[\"av_change_rate_roll_std_1000\"]) * (((data[\"av_change_rate_roll_mean_100\"]) * (data[\"iqr\"]))))) + (((data[\"abs_q05\"]) * (data[\"av_change_rate_roll_mean_100\"]))))/2.0)))))))))) +\n            0.0398280546*np.tanh(np.tanh(((-1.0*((((data[\"av_change_abs_roll_mean_100\"]) * (((data[\"max_first_50000\"]) - (((((data[\"std_roll_std_10\"]) - (data[\"q01_roll_mean_100\"]))) - (((data[\"min_roll_std_100\"]) - ((((((data[\"min_roll_std_1000\"]) + (data[\"classic_sta_lta3_mean\"]))) + ((((data[\"q01_roll_mean_100\"]) + (data[\"av_change_abs_roll_mean_100\"]))/2.0)))/2.0))))))))))))))) +\n            0.0399531052*np.tanh(((data[\"mean_change_abs\"]) * ((((data[\"min_roll_std_10\"]) + ((((((((data[\"min_roll_std_10\"]) * (data[\"trend\"]))) - (((data[\"mean_change_rate_last_10000\"]) * (((((data[\"min_last_10000\"]) - (data[\"q01_roll_mean_1000\"]))) - (data[\"av_change_rate_roll_std_100\"]))))))) + (((data[\"trend\"]) - (data[\"av_change_rate_roll_std_100\"]))))/2.0)))/2.0)))) +\n            0.0371082425*np.tanh(((data[\"av_change_abs_roll_mean_1000\"]) * (((((data[\"std_first_10000\"]) + ((((data[\"mean_change_abs\"]) + (np.tanh((np.tanh((data[\"av_change_abs_roll_mean_1000\"]))))))/2.0)))) * (((data[\"av_change_rate_roll_mean_10\"]) + (((((data[\"std_first_10000\"]) * (data[\"std_first_10000\"]))) * (((data[\"std_first_10000\"]) + (data[\"std_first_10000\"]))))))))))) +\n            0.0399062112*np.tanh(((((((((data[\"q001\"]) + (np.tanh((np.tanh((((((((((((-1.0*((data[\"min_roll_std_100\"])))) + (data[\"max_first_50000\"]))/2.0)) + (data[\"max_to_min_diff\"]))/2.0)) + (data[\"ave_roll_std_1000\"]))/2.0)))))))) * (((data[\"kurt\"]) + ((-1.0*((data[\"ave_roll_std_1000\"])))))))) * 2.0)) * 2.0)) +\n            0.0399687365*np.tanh(((((data[\"mean_change_rate_first_10000\"]) - (((data[\"av_change_abs_roll_std_10\"]) * (((data[\"min_last_10000\"]) + (((data[\"mean_change_rate_first_10000\"]) * (data[\"av_change_abs_roll_std_10\"]))))))))) * (((((data[\"min_last_10000\"]) + (((((data[\"min_last_50000\"]) + (data[\"av_change_abs_roll_std_10\"]))) + (data[\"q01_roll_mean_100\"]))))) * (data[\"mean_change_rate\"]))))) +\n            0.0371863991*np.tanh(((((((((data[\"max_first_50000\"]) + (data[\"q95_roll_mean_1000\"]))) + (data[\"avg_first_10000\"]))) / 2.0)) * ((((np.tanh((((data[\"av_change_rate_roll_mean_100\"]) + (((((((data[\"max_first_50000\"]) * 2.0)) * 2.0)) + (np.tanh((((data[\"mean_change_abs\"]) * 2.0)))))))))) + (data[\"q05\"]))/2.0)))) +\n            0.0381711610*np.tanh(np.tanh(((((data[\"max_roll_std_1000\"]) + ((((((((data[\"av_change_abs_roll_mean_1000\"]) * (data[\"av_change_abs_roll_mean_1000\"]))) + (((((data[\"min_roll_std_10\"]) * (data[\"max_to_min_diff\"]))) + (((data[\"min_last_50000\"]) * (data[\"classic_sta_lta1_mean\"]))))))) + (((data[\"max_first_50000\"]) - (np.tanh((data[\"min_roll_std_100\"]))))))/2.0)))/2.0)))) +\n            0.0399687365*np.tanh((((((((data[\"skew\"]) - (((data[\"skew\"]) * ((((data[\"iqr\"]) + (data[\"skew\"]))/2.0)))))) + (data[\"kurt\"]))/2.0)) + (((data[\"q05_roll_mean_100\"]) * (((data[\"iqr\"]) * (((data[\"iqr\"]) * (data[\"skew\"]))))))))) +\n            0.0399218425*np.tanh(((((np.tanh((((((((data[\"avg_last_50000\"]) + ((((((((data[\"avg_last_50000\"]) * (data[\"classic_sta_lta4_mean\"]))) + (data[\"classic_sta_lta4_mean\"]))/2.0)) - (((data[\"std_roll_mean_1000\"]) * 2.0)))))) - (np.tanh((data[\"av_change_abs_roll_mean_100\"]))))) * 2.0)))) * (data[\"av_change_abs_roll_std_100\"]))) * (data[\"min_first_10000\"]))) +\n            0.0399843678*np.tanh(((((data[\"av_change_abs_roll_std_100\"]) * (((data[\"kurt\"]) * ((((((data[\"av_change_abs_roll_mean_1000\"]) + (((data[\"avg_first_10000\"]) * (data[\"av_change_abs_roll_mean_1000\"]))))/2.0)) + (((((((data[\"q95_roll_mean_1000\"]) * (data[\"av_change_abs_roll_mean_1000\"]))) + (data[\"av_change_abs_roll_mean_1000\"]))) * (data[\"max_first_10000\"]))))))))) * 2.0)) +\n            0.0399687365*np.tanh(((((data[\"mean_change_rate_first_50000\"]) * (((data[\"count_big\"]) * (((((((data[\"min_roll_std_10\"]) - (((data[\"q05\"]) * (((data[\"abs_trend\"]) - (((data[\"q05\"]) * (data[\"av_change_abs_roll_mean_10\"]))))))))) + (data[\"max_last_50000\"]))) + (data[\"min_first_10000\"]))))))) * (3.0))) +\n            0.0285111368*np.tanh(np.tanh((np.tanh((((data[\"min_roll_std_10\"]) * (((data[\"max_to_min_diff\"]) - ((((((data[\"max_to_min_diff\"]) * 2.0)) + (np.tanh(((((((((((data[\"max_last_10000\"]) - (data[\"q99_roll_mean_100\"]))) * 2.0)) + (data[\"max_last_10000\"]))/2.0)) * 2.0)))))/2.0)))))))))) +\n            0.0397811644*np.tanh(((data[\"classic_sta_lta4_mean\"]) * ((((0.3183098733) + ((((((np.tanh((((data[\"mean_change_rate_first_10000\"]) - (data[\"trend\"]))))) + ((((data[\"q05_roll_mean_100\"]) + ((((((data[\"av_change_abs_roll_mean_1000\"]) - (data[\"classic_sta_lta4_mean\"]))) + (data[\"av_change_abs_roll_mean_1000\"]))/2.0)))/2.0)))) + (np.tanh((data[\"min_roll_std_10\"]))))/2.0)))/2.0)))) +\n            0.0399843678*np.tanh(((((data[\"avg_last_50000\"]) * (((((data[\"max_last_50000\"]) - (((data[\"min_roll_std_100\"]) * (np.tanh((((((((-1.0*((data[\"kurt\"])))) * 2.0)) + (data[\"avg_last_50000\"]))/2.0)))))))) + ((-1.0*((data[\"min_roll_std_100\"])))))))) * (np.tanh((data[\"av_change_abs_roll_mean_100\"]))))) +\n            0.0399843678*np.tanh(((data[\"trend\"]) * (((data[\"av_change_abs_roll_std_10\"]) * (((((np.tanh((data[\"min_roll_std_1000\"]))) + (np.tanh(((((data[\"q05_roll_mean_10\"]) + (((data[\"std_last_10000\"]) * ((((data[\"av_change_abs_roll_std_10\"]) + (data[\"q05_roll_mean_10\"]))/2.0)))))/2.0)))))) + (np.tanh((np.tanh((data[\"max_last_10000\"]))))))))))) +\n            0.0385463051*np.tanh(np.tanh((np.tanh((np.tanh((((data[\"max_first_50000\"]) * (((data[\"q01_roll_mean_10\"]) - (((((data[\"mean_change_rate_last_50000\"]) * (((((data[\"classic_sta_lta3_mean\"]) + (((np.tanh((data[\"classic_sta_lta2_mean\"]))) * 2.0)))) * 2.0)))) + (((data[\"classic_sta_lta3_mean\"]) * 2.0)))))))))))))) +\n            0.0294646360*np.tanh(((data[\"mean_change_rate_last_10000\"]) * (((data[\"av_change_abs_roll_mean_100\"]) * (((data[\"mean_change_rate_last_50000\"]) + (((((((data[\"av_change_abs_roll_mean_10\"]) * 2.0)) * 2.0)) + (np.tanh((((((((((data[\"classic_sta_lta2_mean\"]) + (data[\"max_last_10000\"]))) * 2.0)) * 2.0)) * 2.0)))))))))))) +\n            0.0308558028*np.tanh(((data[\"q95_roll_std_100\"]) - (((data[\"max_roll_std_10\"]) - (((np.tanh((((data[\"q95_roll_mean_100\"]) + (((data[\"mean_change_rate_last_50000\"]) + (((((((data[\"min_roll_std_10\"]) + (data[\"q05_roll_mean_10\"]))) + (data[\"min_roll_std_10\"]))) * (data[\"MA_700MA_BB_low_mean\"]))))))))) * (data[\"min_roll_std_10\"]))))))) +\n            0.0380773731*np.tanh(((((data[\"classic_sta_lta1_mean\"]) * (((((data[\"abs_q99\"]) + (data[\"abs_q99\"]))) - (data[\"q01_roll_std_10\"]))))) * (((((((data[\"classic_sta_lta1_mean\"]) * (data[\"std_roll_mean_1000\"]))) + (((((data[\"classic_sta_lta1_mean\"]) * (data[\"q95_roll_mean_100\"]))) + (data[\"q01_roll_std_10\"]))))) + (data[\"MA_400MA_std_mean\"]))))) +\n            0.0315279402*np.tanh((((((((((data[\"ave10\"]) + (((data[\"classic_sta_lta2_mean\"]) * (data[\"classic_sta_lta2_mean\"]))))/2.0)) + (np.tanh((((data[\"classic_sta_lta3_mean\"]) + (((data[\"min_roll_std_10\"]) * 2.0)))))))/2.0)) + (((((data[\"mean_change_rate_first_10000\"]) * 2.0)) * (np.tanh((((np.tanh((data[\"min\"]))) * 2.0)))))))/2.0)) +\n            0.0356389210*np.tanh((((-1.0*((np.tanh((((((data[\"q95\"]) + ((((data[\"abs_max\"]) + (data[\"av_change_abs_roll_std_1000\"]))/2.0)))) + (((((data[\"min_first_50000\"]) + (data[\"q95\"]))) - (((((data[\"q95\"]) + (data[\"min_first_50000\"]))) * (data[\"classic_sta_lta4_mean\"])))))))))))) / 2.0)) +\n            0.0399999991*np.tanh((((data[\"q99_roll_std_10\"]) + (((data[\"min_roll_mean_1000\"]) + ((((((data[\"classic_sta_lta2_mean\"]) + (((np.tanh((((data[\"av_change_rate_roll_std_100\"]) + (((data[\"av_change_rate_roll_std_100\"]) * (data[\"av_change_rate_roll_mean_1000\"]))))))) - (((data[\"av_change_rate_roll_mean_1000\"]) + (((data[\"av_change_abs_roll_std_10\"]) * (data[\"av_change_rate_roll_std_100\"]))))))))/2.0)) / 2.0)))))/2.0)) +\n            0.0398749523*np.tanh((((((data[\"max_roll_mean_100\"]) + (((data[\"min_roll_std_100\"]) * ((((((data[\"min_roll_std_10\"]) * (((data[\"q95_roll_std_100\"]) + (data[\"min_last_50000\"]))))) + (data[\"min_last_10000\"]))/2.0)))))/2.0)) + (((data[\"min_roll_std_100\"]) * (((data[\"std_first_10000\"]) * (((data[\"avg_first_10000\"]) * (data[\"q95_roll_std_100\"]))))))))) +\n            0.0399687365*np.tanh(np.tanh((((data[\"iqr\"]) * ((-1.0*((((((data[\"q95\"]) + (((((data[\"med\"]) / 2.0)) * ((((data[\"av_change_abs_roll_std_10\"]) + (((data[\"q01_roll_std_100\"]) + (data[\"max_to_min\"]))))/2.0)))))) - ((((((data[\"med\"]) / 2.0)) + (data[\"min_roll_std_1000\"]))/2.0))))))))))) +\n            0.0282766689*np.tanh((((-1.0*((data[\"max_last_10000\"])))) * (((((((((data[\"avg_first_50000\"]) + (((data[\"max_to_min\"]) * ((((-1.0*((data[\"min_roll_std_10\"])))) + (data[\"max_last_10000\"]))))))/2.0)) * (data[\"iqr\"]))) + (data[\"max_to_min\"]))/2.0)))) +\n            0.0399999991*np.tanh((-1.0*((((data[\"max_to_min\"]) * (((((data[\"min_roll_std_10\"]) * ((((data[\"kurt\"]) + (((np.tanh((((((((((data[\"mean_change_rate_last_10000\"]) + (data[\"max_to_min\"]))) + ((((data[\"iqr\"]) + (data[\"abs_q05\"]))/2.0)))) * 2.0)) * 2.0)))) * 2.0)))/2.0)))) / 2.0))))))) +\n            0.0356389210*np.tanh(((np.tanh((np.tanh((((((((((data[\"min_last_10000\"]) * (((np.tanh((((((data[\"iqr\"]) * 2.0)) * 2.0)))) * 2.0)))) + (np.tanh((((((((data[\"q05_roll_std_10\"]) - (data[\"max\"]))) * 2.0)) * 2.0)))))) * 2.0)) * 2.0)))))) / 2.0)) +\n            0.0399999991*np.tanh(((np.tanh((((((np.tanh((((((data[\"min_roll_std_10\"]) + (((data[\"med\"]) + (data[\"q95_roll_std_1000\"]))))) + (((((data[\"std_roll_mean_1000\"]) + (((data[\"q95_roll_std_1000\"]) * 2.0)))) * 2.0)))))) - ((-1.0*((data[\"std_roll_mean_1000\"])))))) - (data[\"q05_roll_std_1000\"]))))) / 2.0)) +\n            0.0342008583*np.tanh(((((((((data[\"av_change_abs_roll_mean_100\"]) - (((np.tanh((data[\"av_change_abs_roll_mean_100\"]))) * 2.0)))) * (data[\"mean_change_rate_first_10000\"]))) * 2.0)) + (np.tanh((((((((data[\"av_change_abs_roll_mean_100\"]) - (((data[\"mean_change_rate_first_10000\"]) * 2.0)))) * (data[\"mean_change_rate_first_10000\"]))) * (((data[\"av_change_abs_roll_mean_100\"]) * 2.0)))))))) +\n            0.0397967957*np.tanh(((((((data[\"classic_sta_lta3_mean\"]) + (data[\"av_change_abs_roll_mean_100\"]))/2.0)) + (np.tanh((((data[\"mean_change_rate\"]) * ((-1.0*((((((((((data[\"classic_sta_lta3_mean\"]) * 2.0)) * 2.0)) * 2.0)) * (((((((data[\"av_change_abs_roll_mean_100\"]) + (data[\"classic_sta_lta4_mean\"]))) + (data[\"classic_sta_lta4_mean\"]))) * 2.0))))))))))))/2.0)) +\n            0.0399374738*np.tanh((-1.0*((((data[\"av_change_abs_roll_std_10\"]) * (((data[\"max_last_10000\"]) * (((((data[\"abs_max_roll_std_100\"]) - (((data[\"mean_change_rate_first_10000\"]) * (((data[\"med\"]) - (data[\"abs_max_roll_std_100\"]))))))) - (((((data[\"max_last_10000\"]) - (data[\"abs_max_roll_std_100\"]))) - (data[\"med\"])))))))))))) +\n            0.0398905799*np.tanh(((((((data[\"min_last_10000\"]) + ((((data[\"classic_sta_lta4_mean\"]) + ((((data[\"classic_sta_lta1_mean\"]) + (((data[\"max_to_min_diff\"]) * (((data[\"q01_roll_mean_100\"]) * (data[\"q01_roll_mean_100\"]))))))/2.0)))/2.0)))/2.0)) + (((data[\"q05_roll_std_1000\"]) * ((-1.0*(((((data[\"q01_roll_mean_100\"]) + (data[\"max_to_min_diff\"]))/2.0))))))))/2.0)) +\n            0.0382024236*np.tanh(np.tanh((((np.tanh(((((((((((data[\"trend\"]) * 2.0)) - (data[\"mean_change_rate_first_50000\"]))) * (data[\"max\"]))) + (((((data[\"trend\"]) * (data[\"classic_sta_lta3_mean\"]))) + (data[\"mean_change_rate_first_10000\"]))))/2.0)))) * (((((data[\"trend\"]) * 2.0)) * (data[\"mean_change_rate_first_50000\"]))))))) +\n            0.0397811644*np.tanh(((data[\"av_change_abs_roll_mean_100\"]) * (((data[\"av_change_abs_roll_std_1000\"]) * (((((((((data[\"q95_roll_std_1000\"]) * 2.0)) * ((-1.0*((data[\"mean_change_rate_first_50000\"])))))) + (((data[\"q95_roll_std_1000\"]) * (((data[\"mean_change_rate_first_50000\"]) * ((-1.0*((data[\"av_change_abs_roll_mean_100\"])))))))))) + (((data[\"q95_roll_std_1000\"]) * 2.0)))))))) +\n            0.0399218425*np.tanh(((data[\"mean_change_rate_first_10000\"]) * (((data[\"mean_change_rate_first_10000\"]) * ((((data[\"std_roll_mean_1000\"]) + (((data[\"av_change_abs_roll_std_10\"]) * (((((((data[\"mean_change_rate_first_10000\"]) + (((data[\"av_change_abs_roll_mean_100\"]) + (((((data[\"av_change_abs_roll_std_10\"]) * (data[\"av_change_abs_roll_std_10\"]))) + (data[\"mean_change_rate_first_10000\"]))))))/2.0)) + (data[\"av_change_abs_roll_mean_100\"]))/2.0)))))/2.0)))))) +\n            0.0399687365*np.tanh(np.tanh((np.tanh((((data[\"max_last_50000\"]) * (((data[\"mean_change_rate_last_10000\"]) + (((((((data[\"mean_change_rate_last_10000\"]) + (((data[\"max_first_10000\"]) * (((((data[\"av_change_abs_roll_mean_1000\"]) + (data[\"mean_change_rate_last_10000\"]))) * (data[\"max_first_10000\"]))))))) * (data[\"max_first_10000\"]))) * (data[\"max_first_10000\"]))))))))))) +\n            0.0399218425*np.tanh((-1.0*((((((((((data[\"max_first_10000\"]) + ((((data[\"av_change_abs_roll_std_100\"]) + (((data[\"mean_change_rate_last_10000\"]) * (((((data[\"mean_change_rate_last_10000\"]) * (data[\"max_last_10000\"]))) * (data[\"mean_change_rate_last_10000\"]))))))/2.0)))/2.0)) + (((data[\"av_change_abs_roll_mean_100\"]) * (((data[\"Moving_average_700_mean\"]) * (data[\"std_first_50000\"]))))))/2.0)) / 2.0))))) +\n            0.0371395051*np.tanh(((data[\"min_last_10000\"]) * ((((((((-1.0*(((((((((data[\"max_first_50000\"]) + (data[\"max_first_10000\"]))/2.0)) + (data[\"max_last_50000\"]))) + (np.tanh((((data[\"max_first_10000\"]) * (data[\"av_change_rate_roll_std_1000\"])))))))))) * (((data[\"min_roll_std_10\"]) - (data[\"std_last_50000\"]))))) * 2.0)) * 2.0)))) +\n            0.0398280546*np.tanh((((((((((((data[\"mean_change_rate_last_50000\"]) * (data[\"std_first_50000\"]))) - (((data[\"min_roll_std_10\"]) * (data[\"mean_change_rate_first_50000\"]))))) - (data[\"min_first_50000\"]))) + ((((((data[\"skew\"]) - (data[\"mean_change_rate_first_50000\"]))) + (np.tanh((((data[\"mean_change_rate_first_50000\"]) * (data[\"skew\"]))))))/2.0)))/2.0)) / 2.0)) +\n            0.0398280546*np.tanh(((((data[\"trend\"]) - (np.tanh((((((((((((((data[\"q99\"]) - (np.tanh((((data[\"trend\"]) - (data[\"iqr\"]))))))) - (data[\"min_roll_std_100\"]))) * 2.0)) * 2.0)) * 2.0)) * 2.0)))))) * (((data[\"q01_roll_mean_1000\"]) - (data[\"med\"]))))) +\n            0.0333724096*np.tanh(((np.tanh((((data[\"min_roll_std_10\"]) * (((((data[\"classic_sta_lta4_mean\"]) + (data[\"min_roll_mean_1000\"]))) + (((data[\"q95_roll_std_100\"]) + (((data[\"max_first_50000\"]) + (data[\"trend\"]))))))))))) + (((((data[\"q95_roll_std_100\"]) - (data[\"ave_roll_std_100\"]))) * 2.0)))) +\n            0.0379992165*np.tanh(((((((((data[\"classic_sta_lta4_mean\"]) + ((((data[\"min_roll_std_100\"]) + (((data[\"q05_roll_mean_10\"]) + (data[\"q01_roll_std_100\"]))))/2.0)))/2.0)) + ((((((data[\"min_roll_std_100\"]) + (data[\"trend\"]))) + (data[\"q05_roll_mean_10\"]))/2.0)))/2.0)) - (np.tanh((((data[\"min_roll_std_100\"]) + (data[\"trend\"]))))))) +\n            0.0399999991*np.tanh(((((np.tanh((data[\"abs_max_roll_std_1000\"]))) - (((data[\"max_to_min\"]) * (np.tanh((((data[\"av_change_rate_roll_std_10\"]) * (((((((((((((data[\"abs_q95\"]) * 2.0)) + (data[\"mean_change_rate\"]))) * 2.0)) * 2.0)) + (((data[\"abs_q95\"]) * 2.0)))) * 2.0)))))))))) / 2.0)) +\n            0.0399999991*np.tanh((((data[\"min_last_50000\"]) + (((data[\"max_last_50000\"]) - (np.tanh((np.tanh((((data[\"Moving_average_6000_mean\"]) * (((((data[\"q01\"]) + (((data[\"q01_roll_std_10\"]) + (((((data[\"q01\"]) + (((data[\"q95\"]) * (data[\"abs_q05\"]))))) * 2.0)))))) * 2.0)))))))))))/2.0)) +\n            0.0399531052*np.tanh(((data[\"mean_change_abs\"]) * (((((((((data[\"max_roll_mean_1000\"]) * (data[\"abs_q95\"]))) * (((((((data[\"std_first_50000\"]) - (data[\"sum\"]))) * (data[\"q05_roll_std_1000\"]))) * (((data[\"q05_roll_std_1000\"]) * (data[\"q05_roll_std_1000\"]))))))) + (data[\"min_first_50000\"]))) + (data[\"abs_trend\"]))))) +\n            0.0399843678*np.tanh(((np.tanh((((((((np.tanh((((data[\"av_change_abs_roll_std_10\"]) * ((((-1.0*((data[\"av_change_rate_roll_mean_1000\"])))) + ((((-1.0*((((data[\"mean_change_rate_first_50000\"]) * 2.0))))) + (data[\"av_change_abs_roll_std_10\"]))))))))) * 2.0)) * 2.0)) + (((data[\"av_change_rate_roll_mean_1000\"]) * (data[\"med\"]))))))) / 2.0)) +\n            0.0337944515*np.tanh(((np.tanh((((((data[\"min\"]) - (((((((data[\"min_first_50000\"]) - (data[\"abs_q05\"]))) - (((data[\"min\"]) - (((((((data[\"av_change_abs_roll_std_100\"]) + (data[\"min_first_50000\"]))) - (np.tanh((data[\"mean_change_rate\"]))))) * 2.0)))))) * 2.0)))) * 2.0)))) / 2.0)) +\n            0.0388276652*np.tanh((((np.tanh((np.tanh((((((((data[\"max_to_min\"]) - (((data[\"av_change_rate_roll_mean_1000\"]) - (((((((((data[\"av_change_abs_roll_mean_1000\"]) - (data[\"abs_q05\"]))) - (data[\"abs_q05\"]))) - (data[\"av_change_rate_roll_mean_1000\"]))) * 2.0)))))) * 2.0)) * 2.0)))))) + (np.tanh((data[\"av_change_abs_roll_std_1000\"]))))/2.0)) +\n            0.0399374738*np.tanh((((((((((data[\"classic_sta_lta2_mean\"]) + (-1.0))/2.0)) + (data[\"av_change_abs_roll_std_1000\"]))/2.0)) + (((data[\"av_change_abs_roll_std_1000\"]) * (np.tanh(((-1.0*((((((-1.0) + (data[\"av_change_rate_roll_std_10\"]))) * ((((((data[\"min_last_10000\"]) + (data[\"av_change_abs_roll_std_100\"]))/2.0)) + (data[\"classic_sta_lta2_mean\"])))))))))))))/2.0)) +\n            0.0393903852*np.tanh(np.tanh((np.tanh((((data[\"max_last_10000\"]) * ((-1.0*((((data[\"std_last_10000\"]) + (((data[\"max_last_10000\"]) + ((-1.0*((((np.tanh((np.tanh((((((((((data[\"classic_sta_lta3_mean\"]) + (data[\"q05_roll_std_1000\"]))) * 2.0)) * 2.0)) * 2.0)))))) * 2.0)))))))))))))))))) +\n            0.0399843678*np.tanh(((data[\"q05_roll_mean_1000\"]) * (((data[\"max_roll_std_1000\"]) * (((data[\"q05_roll_std_10\"]) * (((data[\"max_to_min\"]) - (np.tanh((((data[\"av_change_abs_roll_std_1000\"]) + (((((data[\"av_change_abs_roll_std_1000\"]) + (data[\"av_change_rate_roll_mean_10\"]))) + (((data[\"classic_sta_lta2_mean\"]) + (data[\"max_last_10000\"]))))))))))))))))) +\n            0.0398124270*np.tanh(((data[\"kurt\"]) * (((((data[\"kurt\"]) * 2.0)) * (((data[\"kurt\"]) * (((((((data[\"kurt\"]) * (((data[\"std_roll_std_1000\"]) * (data[\"kurt\"]))))) * (data[\"max_last_10000\"]))) - (((data[\"classic_sta_lta4_mean\"]) * (((data[\"std_roll_std_1000\"]) * 2.0)))))))))))) +\n            0.0399531052*np.tanh(((data[\"min_roll_mean_10\"]) + (((((data[\"max_roll_mean_100\"]) + ((((data[\"max_roll_mean_100\"]) + (np.tanh((((((((((((((data[\"av_change_rate_roll_mean_10\"]) + (data[\"q05_roll_std_1000\"]))) * 2.0)) * 2.0)) + (((data[\"av_change_rate_roll_mean_10\"]) + (data[\"min_roll_std_100\"]))))) * 2.0)) * 2.0)))))/2.0)))) / 2.0)))) +\n            0.0399687365*np.tanh((((((np.tanh((((((((data[\"av_change_rate_roll_std_100\"]) + (data[\"Moving_average_3000_mean\"]))) * 2.0)) * (data[\"med\"]))))) / 2.0)) + (np.tanh((((data[\"min_roll_std_1000\"]) * (((np.tanh((data[\"abs_q05\"]))) - (((((data[\"av_change_rate_roll_std_100\"]) * 2.0)) + (data[\"min_roll_std_10\"]))))))))))/2.0)) +\n            0.0393747576*np.tanh(np.tanh(((((((data[\"av_change_rate_roll_mean_1000\"]) * (data[\"MA_1000MA_std_mean\"]))) + (np.tanh(((((-1.0*((((((((((((data[\"av_change_rate_roll_std_100\"]) + (data[\"av_change_rate_roll_mean_1000\"]))) * 2.0)) * 2.0)) * 2.0)) * (((data[\"q01_roll_std_100\"]) + (data[\"av_change_rate_roll_std_10\"])))))))) * (data[\"q01_roll_std_1000\"]))))))/2.0)))) +\n            0.0399999991*np.tanh(((((np.tanh((np.tanh((((((((((((((((((((((((data[\"max_to_min_diff\"]) + (np.tanh((np.tanh((data[\"av_change_rate_roll_std_100\"]))))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)) * 2.0)))))) / 2.0)) / 2.0)) +\n            0.0398280546*np.tanh(((np.tanh((((((data[\"MA_700MA_std_mean\"]) * (data[\"classic_sta_lta4_mean\"]))) * (((data[\"ave_roll_mean_1000\"]) - (((((data[\"mean_change_rate_first_50000\"]) - (((data[\"mean_change_rate_first_50000\"]) * (data[\"avg_last_10000\"]))))) - (((data[\"av_change_abs_roll_mean_100\"]) * (data[\"mean_change_rate_first_50000\"]))))))))))) / 2.0)) +\n            0.0399843678*np.tanh(((np.tanh((np.tanh((((((((data[\"q95_roll_mean_10\"]) * (((data[\"classic_sta_lta4_mean\"]) + (((data[\"max_roll_mean_100\"]) - (data[\"classic_sta_lta1_mean\"]))))))) * 2.0)) + (((data[\"classic_sta_lta4_mean\"]) * (((data[\"classic_sta_lta4_mean\"]) + (((-1.0) - (data[\"classic_sta_lta1_mean\"]))))))))))))) / 2.0)) +\n            0.0399999991*np.tanh(((((((((data[\"classic_sta_lta4_mean\"]) + ((((((data[\"classic_sta_lta4_mean\"]) + (data[\"skew\"]))/2.0)) * (data[\"abs_q05\"]))))/2.0)) + ((((((-1.0*(((((data[\"classic_sta_lta1_mean\"]) + ((((np.tanh((data[\"classic_sta_lta1_mean\"]))) + (data[\"avg_last_10000\"]))/2.0)))/2.0))))) * (data[\"abs_q05\"]))) / 2.0)))/2.0)) / 2.0)) +\n            0.0349667817*np.tanh(((np.tanh((((data[\"q01_roll_mean_10\"]) * (((((data[\"avg_last_10000\"]) * (data[\"av_change_abs_roll_std_1000\"]))) * 2.0)))))) + (((((-1.0*(((((data[\"av_change_abs_roll_std_1000\"]) + ((((data[\"av_change_abs_roll_std_1000\"]) + (data[\"max_last_50000\"]))/2.0)))/2.0))))) + (np.tanh((((data[\"max_last_50000\"]) * (data[\"mean_change_rate_last_10000\"]))))))/2.0)))) +\n            0.0399687365*np.tanh(((data[\"abs_max_roll_std_1000\"]) * (((data[\"av_change_abs_roll_mean_100\"]) - (((((((data[\"min_roll_std_100\"]) * 2.0)) * 2.0)) * (((data[\"av_change_abs_roll_mean_100\"]) * (((((data[\"av_change_abs_roll_mean_100\"]) * (((((data[\"q99\"]) * (data[\"av_change_abs_roll_mean_100\"]))) * (data[\"av_change_abs_roll_mean_100\"]))))) * (data[\"av_change_abs_roll_mean_100\"]))))))))))) +\n            0.0274482202*np.tanh(((((((data[\"mean_change_rate_last_10000\"]) - (data[\"av_change_abs_roll_mean_10\"]))) - (data[\"av_change_abs_roll_mean_10\"]))) * ((((data[\"avg_first_10000\"]) + ((((((data[\"med\"]) * (data[\"avg_first_10000\"]))) + (((data[\"mean_change_rate_last_10000\"]) * (((np.tanh((((data[\"av_change_rate_roll_std_10\"]) * 2.0)))) * 2.0)))))/2.0)))/2.0)))) +\n            0.0399999991*np.tanh(((((data[\"min_roll_std_100\"]) - (data[\"av_change_abs_roll_mean_10\"]))) * ((-1.0*((((data[\"max_first_10000\"]) * (np.tanh((((((((data[\"av_change_rate_roll_std_1000\"]) * (data[\"av_change_abs_roll_std_1000\"]))) + (((((data[\"av_change_rate_roll_std_1000\"]) * 2.0)) * 2.0)))) + (((data[\"q05_roll_mean_10\"]) / 2.0))))))))))))) +\n            0.0314497836*np.tanh(((((data[\"max\"]) * (((((data[\"min_roll_std_10\"]) + (((((((data[\"min_last_50000\"]) * (data[\"mean_change_rate_first_50000\"]))) * 2.0)) * 2.0)))) + ((((data[\"max\"]) + (((data[\"av_change_abs_roll_mean_100\"]) + (((data[\"std_last_10000\"]) + (data[\"q01_roll_mean_100\"]))))))/2.0)))))) / 2.0)) +\n            0.0399843678*np.tanh(((data[\"mean_change_abs\"]) * (((data[\"av_change_abs_roll_std_10\"]) * ((((((data[\"abs_max_roll_mean_10\"]) + (data[\"min_roll_std_1000\"]))/2.0)) - (((((data[\"classic_sta_lta3_mean\"]) * (data[\"min_roll_std_1000\"]))) + ((((((data[\"kurt\"]) * (data[\"min_roll_std_1000\"]))) + ((((data[\"av_change_abs_roll_std_10\"]) + (data[\"classic_sta_lta3_mean\"]))/2.0)))/2.0)))))))))) +\n            0.0399531052*np.tanh((-1.0*((((np.tanh((((data[\"mean_change_abs\"]) * (((((((data[\"mean_change_rate_first_10000\"]) + (((data[\"q95_roll_mean_1000\"]) + (np.tanh((((data[\"q95_roll_mean_1000\"]) * (data[\"mean_change_rate_first_10000\"]))))))))/2.0)) + (data[\"av_change_rate_roll_std_1000\"]))/2.0)))))) * (((1.0) + (data[\"mean_change_rate_first_10000\"])))))))) +\n            0.0306682289*np.tanh((((((((((data[\"min_roll_mean_1000\"]) + (data[\"q99_roll_std_1000\"]))/2.0)) / 2.0)) - (np.tanh((data[\"min_roll_mean_1000\"]))))) - (np.tanh((((data[\"max_to_min\"]) * (((((((data[\"min_roll_mean_1000\"]) - (((data[\"max_to_min\"]) * (data[\"min_roll_mean_1000\"]))))) * 2.0)) * 2.0)))))))) +\n            0.0302149262*np.tanh(((data[\"mean_change_rate_first_10000\"]) * (np.tanh((np.tanh((((data[\"avg_first_10000\"]) + (((data[\"min_roll_std_100\"]) - (((np.tanh(((((data[\"mean_change_rate_first_10000\"]) + (((data[\"avg_first_10000\"]) * (((data[\"mean_change_rate_first_10000\"]) * (((data[\"min_roll_std_10\"]) - (data[\"avg_first_50000\"]))))))))/2.0)))) * 2.0)))))))))))) +\n            0.0370457210*np.tanh(np.tanh((np.tanh((np.tanh((np.tanh((np.tanh(((((((-1.0*((((data[\"min_roll_std_10\"]) * (((data[\"mean_change_rate_last_10000\"]) * (((data[\"min_roll_std_10\"]) * (data[\"mean_change_rate_last_10000\"])))))))))) * (data[\"mean_change_rate_last_10000\"]))) + (np.tanh((data[\"mean_change_rate_last_10000\"]))))))))))))))) +\n            0.0399843678*np.tanh(((np.tanh((np.tanh((((((((((data[\"abs_q05\"]) * 2.0)) * 2.0)) * ((((((((data[\"abs_q05\"]) + (data[\"max_last_10000\"]))/2.0)) + (data[\"av_change_abs_roll_mean_1000\"]))) * 2.0)))) * ((-1.0*((((data[\"max_last_10000\"]) * ((-1.0*((data[\"max_first_50000\"]))))))))))))))) / 2.0)) +\n            0.0398280546*np.tanh(np.tanh((((data[\"std_last_10000\"]) * (((data[\"q95\"]) * (((data[\"MA_700MA_BB_low_mean\"]) * (((((data[\"max_to_min_diff\"]) * 2.0)) + (((data[\"q99_roll_std_10\"]) + (((np.tanh((data[\"med\"]))) + (np.tanh((np.tanh((((data[\"max_to_min_diff\"]) * 2.0)))))))))))))))))))) +\n            0.0399531052*np.tanh(((((((data[\"q01_roll_std_100\"]) - (data[\"min_roll_std_1000\"]))) - (np.tanh((((((((((((((data[\"min_roll_std_1000\"]) - (data[\"q01_roll_std_100\"]))) - (data[\"q01_roll_std_100\"]))) * 2.0)) - (data[\"max_last_10000\"]))) * 2.0)) * 2.0)))))) * (((data[\"Moving_average_6000_mean\"]) - (data[\"avg_last_50000\"]))))) +\n            0.0381086357*np.tanh(((data[\"skew\"]) * (((data[\"ave_roll_std_1000\"]) * (((((data[\"std_last_50000\"]) + (data[\"classic_sta_lta3_mean\"]))) + (((np.tanh((data[\"skew\"]))) + (((np.tanh((np.tanh((data[\"iqr\"]))))) + (((data[\"abs_trend\"]) * (data[\"sum\"]))))))))))))) +\n            0.0399999991*np.tanh((((np.tanh((((data[\"trend\"]) * (data[\"q99_roll_std_100\"]))))) + (((data[\"trend\"]) * (((data[\"q99_roll_std_100\"]) - ((((((((((data[\"trend\"]) * (data[\"q01_roll_std_10\"]))) / 2.0)) + (np.tanh(((-1.0*((data[\"av_change_rate_roll_mean_1000\"])))))))/2.0)) - (data[\"min_roll_mean_100\"]))))))))/2.0)) +\n            0.0399062112*np.tanh(((data[\"med\"]) * (((data[\"min_first_10000\"]) * (((((-1.0*((data[\"abs_max_roll_mean_1000\"])))) + (((data[\"trend\"]) * (((data[\"av_change_abs_roll_mean_100\"]) + ((((((((-1.0*((data[\"ave10\"])))) - (data[\"trend\"]))) * (data[\"trend\"]))) / 2.0)))))))/2.0)))))) +\n            0.0365298949*np.tanh(((((((data[\"q99_roll_mean_100\"]) * (((((data[\"max_to_min_diff\"]) * (data[\"count_big\"]))) - (((data[\"abs_q99\"]) * (data[\"min_roll_std_10\"]))))))) - ((((((((data[\"abs_q99\"]) * (data[\"min_roll_std_10\"]))) * (data[\"min_roll_std_10\"]))) + (data[\"max_to_min_diff\"]))/2.0)))) / 2.0)) +\n            0.0381242670*np.tanh(np.tanh((((((((data[\"av_change_abs_roll_std_10\"]) * (((data[\"min_first_50000\"]) - (((((data[\"av_change_abs_roll_std_10\"]) + (((((data[\"min_first_50000\"]) - (data[\"av_change_abs_roll_std_10\"]))) * (data[\"min_first_50000\"]))))) * (((data[\"max_to_min_diff\"]) * (data[\"classic_sta_lta3_mean\"]))))))))) * 2.0)) * 2.0)))) +\n            0.0399062112*np.tanh((((((data[\"mean_change_rate_first_10000\"]) * (((data[\"av_change_abs_roll_std_100\"]) * ((((data[\"avg_last_10000\"]) + ((((data[\"av_change_abs_roll_std_10\"]) + (((data[\"std_first_10000\"]) + (((data[\"std_first_10000\"]) * 2.0)))))/2.0)))/2.0)))))) + ((-1.0*((((data[\"std_first_10000\"]) + (((((data[\"min_first_10000\"]) / 2.0)) / 2.0))))))))/2.0)) +\n            0.0383899957*np.tanh(((np.tanh((np.tanh((((((((data[\"abs_q05\"]) + (data[\"av_change_rate_roll_std_10\"]))) - (data[\"mean_change_rate_first_50000\"]))) - (((data[\"av_change_rate_roll_std_10\"]) * ((((10.0)) * ((-1.0*((((data[\"q99_roll_std_100\"]) + (((data[\"mean_change_rate_first_50000\"]) * 2.0))))))))))))))))) / 2.0)) +\n            0.0399531052*np.tanh(((np.tanh((np.tanh((np.tanh(((((((((((data[\"std_last_10000\"]) * (data[\"av_change_abs_roll_mean_100\"]))) * (data[\"av_change_abs_roll_mean_100\"]))) + (np.tanh(((((((-1.0*(((((2.0) + (data[\"q95_roll_std_10\"]))/2.0))))) - (data[\"avg_first_10000\"]))) * 2.0)))))/2.0)) * 2.0)))))))) / 2.0)) +\n            0.0399687365*np.tanh((((((data[\"av_change_abs_roll_std_10\"]) * (((np.tanh((data[\"std_last_10000\"]))) * (data[\"av_change_abs_roll_mean_1000\"]))))) + ((((((data[\"std_last_10000\"]) * (np.tanh((data[\"av_change_abs_roll_mean_1000\"]))))) + (np.tanh(((-1.0*((((data[\"av_change_abs_roll_std_10\"]) + ((((data[\"av_change_abs_roll_mean_1000\"]) + (data[\"av_change_abs_roll_std_10\"]))/2.0))))))))))/2.0)))/2.0)) +\n            0.0399999991*np.tanh((((((((data[\"ave_roll_mean_10\"]) * (((data[\"av_change_abs_roll_mean_1000\"]) * (((((data[\"av_change_abs_roll_mean_100\"]) / 2.0)) / 2.0)))))) + (np.tanh((((data[\"av_change_abs_roll_mean_100\"]) * (((data[\"classic_sta_lta4_mean\"]) - (((data[\"abs_q05\"]) * (((data[\"classic_sta_lta4_mean\"]) * (data[\"av_change_abs_roll_mean_100\"]))))))))))))/2.0)) / 2.0)) +\n            0.0399531052*np.tanh(((data[\"mean_change_abs\"]) * (((((data[\"av_change_abs_roll_mean_1000\"]) - (((np.tanh((((((data[\"min_roll_std_1000\"]) + (data[\"min_roll_std_1000\"]))) + ((((-1.0*((data[\"q99_roll_mean_100\"])))) + (data[\"iqr\"]))))))) / 2.0)))) * (((data[\"q95_roll_std_1000\"]) * ((-1.0*((data[\"iqr\"])))))))))) +\n            0.0387182496*np.tanh(np.tanh((((data[\"mean_change_abs\"]) * (((data[\"classic_sta_lta4_mean\"]) * ((((((((data[\"av_change_abs_roll_std_10\"]) - (data[\"mean_change_abs\"]))) + ((((((((data[\"av_change_abs_roll_std_10\"]) * (((data[\"av_change_abs_roll_std_10\"]) * (data[\"kurt\"]))))) + (data[\"classic_sta_lta4_mean\"]))/2.0)) + (data[\"kurt\"]))))/2.0)) / 2.0)))))))) +\n            0.0399687365*np.tanh(((((((((data[\"min_roll_std_10\"]) + (data[\"q01_roll_mean_100\"]))) - (((((data[\"min_first_10000\"]) + (((data[\"min_roll_std_10\"]) + (data[\"min_roll_std_10\"]))))) * (data[\"skew\"]))))) - (((data[\"med\"]) * (data[\"classic_sta_lta1_mean\"]))))) * (((data[\"min_first_10000\"]) * (data[\"av_change_abs_roll_mean_1000\"]))))) +\n            0.0391871817*np.tanh(np.tanh((np.tanh((((((((((((data[\"q01\"]) - (((data[\"q01_roll_mean_10\"]) - (((data[\"q01_roll_mean_100\"]) * (np.tanh((((np.tanh((((((data[\"q01\"]) - (data[\"q01_roll_mean_10\"]))) * 2.0)))) * 2.0)))))))))) * 2.0)) * 2.0)) * 2.0)) * 2.0)))))) +\n            0.0398749523*np.tanh(((((data[\"q99\"]) + ((-1.0*((data[\"q99_roll_std_100\"])))))) * (((data[\"kurt\"]) + ((((-1.0*((data[\"max_roll_std_100\"])))) + (((((((data[\"skew\"]) + (data[\"kurt\"]))) + (((data[\"skew\"]) + (data[\"kurt\"]))))) * (data[\"MA_1000MA_std_mean\"]))))))))) +\n            0.0399999991*np.tanh(((data[\"std_roll_mean_1000\"]) * (np.tanh((((data[\"min_roll_std_10\"]) - (((((((data[\"q95_roll_mean_1000\"]) - (((data[\"mean_change_rate\"]) - (((data[\"min_roll_std_10\"]) * (data[\"classic_sta_lta4_mean\"]))))))) * 2.0)) - (((data[\"min_roll_std_10\"]) - (data[\"mean_change_rate_last_50000\"]))))))))))) +\n            0.0399843678*np.tanh(((((data[\"max_last_50000\"]) * (((data[\"min_first_50000\"]) * ((((data[\"mean_change_rate_first_50000\"]) + (((data[\"min_roll_std_10\"]) * (((((data[\"mean_change_rate_first_10000\"]) + (data[\"mean_change_rate_first_50000\"]))) - ((((-1.0*((((data[\"min_roll_std_10\"]) * (data[\"max_last_50000\"])))))) * (data[\"min_roll_std_10\"]))))))))/2.0)))))) * 2.0)) +\n            0.0399687365*np.tanh(((data[\"std_roll_mean_1000\"]) * ((((-1.0*((data[\"q95\"])))) * (((((data[\"min_roll_std_10\"]) + (np.tanh((data[\"std_last_10000\"]))))) + (((((((data[\"ave_roll_std_10\"]) - (data[\"min_roll_std_10\"]))) - (((data[\"q01\"]) + (data[\"av_change_rate_roll_mean_10\"]))))) * (data[\"mean_change_abs\"]))))))))) +\n            0.0333724096*np.tanh(((((data[\"mean_change_rate_first_10000\"]) + (((data[\"mean_change_rate_last_10000\"]) + (((data[\"mean_change_rate_last_10000\"]) * (((((data[\"classic_sta_lta2_mean\"]) * 2.0)) * 2.0)))))))) * (((data[\"q01_roll_mean_100\"]) * (((data[\"max_roll_mean_10\"]) + (((data[\"max_roll_mean_10\"]) + (data[\"mean_change_rate\"]))))))))) +\n            0.0335599855*np.tanh((((((data[\"av_change_abs_roll_mean_100\"]) * (((data[\"av_change_abs_roll_mean_100\"]) * (np.tanh((((data[\"av_change_abs_roll_mean_100\"]) * (data[\"std_first_50000\"]))))))))) + (((data[\"std_first_10000\"]) * (((data[\"std_first_10000\"]) * (((data[\"std_first_10000\"]) * (((data[\"av_change_abs_roll_mean_100\"]) + (data[\"min_roll_std_100\"]))))))))))/2.0)) +\n            0.0380930044*np.tanh((((((np.tanh((data[\"min_roll_mean_1000\"]))) + (((data[\"skew\"]) * (((data[\"min_first_10000\"]) + ((((((data[\"min_roll_mean_1000\"]) - (data[\"av_change_abs_roll_mean_1000\"]))) + (np.tanh((((data[\"exp_Moving_average_300_mean\"]) * (data[\"skew\"]))))))/2.0)))))))/2.0)) * (((data[\"av_change_abs_roll_mean_1000\"]) - (data[\"av_change_abs_roll_std_100\"]))))) +\n            0.0375302844*np.tanh(((((data[\"mean_change_rate\"]) * (data[\"mean_change_rate\"]))) * (((((data[\"av_change_rate_roll_mean_100\"]) * (data[\"av_change_rate_roll_std_1000\"]))) * (((data[\"std_last_10000\"]) * ((((data[\"exp_Moving_average_30000_mean\"]) + (((data[\"av_change_rate_roll_mean_100\"]) * ((((((data[\"med\"]) + (data[\"count_big\"]))/2.0)) / 2.0)))))/2.0)))))))) +\n            0.0285736602*np.tanh((((data[\"min_roll_mean_10\"]) + (np.tanh((((np.tanh((((((data[\"q99_roll_mean_10\"]) - (((data[\"q01\"]) * (((data[\"max_to_min\"]) * (((data[\"min_roll_std_100\"]) + (((data[\"min_roll_std_100\"]) + (((data[\"mean_change_abs\"]) * (data[\"min_roll_std_100\"]))))))))))))) * 2.0)))) * 2.0)))))/2.0)) +\n            0.0399531052*np.tanh((((((data[\"classic_sta_lta4_mean\"]) + ((((((data[\"q01_roll_std_100\"]) * (((data[\"min_roll_std_10\"]) * (((data[\"min_roll_std_10\"]) * (((data[\"av_change_rate_roll_mean_1000\"]) - (data[\"classic_sta_lta4_mean\"]))))))))) + ((((((data[\"min_roll_std_1000\"]) + (data[\"min_roll_std_10\"]))/2.0)) - (data[\"av_change_rate_roll_mean_1000\"]))))/2.0)))/2.0)) / 2.0)) +\n            0.0394841731*np.tanh((-1.0*((((data[\"min_first_10000\"]) * (np.tanh(((((((((data[\"av_change_abs_roll_mean_1000\"]) + (data[\"max_last_10000\"]))/2.0)) * (data[\"min_roll_std_100\"]))) + ((((((((data[\"max_last_10000\"]) * 2.0)) * (data[\"av_change_abs_roll_mean_1000\"]))) + ((((data[\"mean_change_rate_first_10000\"]) + (data[\"mean_change_rate_first_10000\"]))/2.0)))/2.0))))))))))) +\n            0.0399374738*np.tanh(((data[\"max_first_10000\"]) * (((data[\"max_first_10000\"]) * (((data[\"max_first_10000\"]) * (((data[\"max_first_10000\"]) * (((data[\"max_first_10000\"]) * (((data[\"max_first_10000\"]) * (np.tanh((np.tanh((np.tanh((((data[\"max_last_10000\"]) + (((data[\"Moving_average_1500_mean\"]) / 2.0)))))))))))))))))))))) +\n            0.0399687365*np.tanh(np.tanh((((((data[\"av_change_abs_roll_mean_100\"]) * (((data[\"av_change_abs_roll_std_10\"]) * (((data[\"max_to_min\"]) * (((data[\"max\"]) + ((((((((data[\"max_to_min\"]) * (data[\"MA_700MA_std_mean\"]))) + (((data[\"av_change_abs_roll_mean_100\"]) * (data[\"MA_700MA_BB_low_mean\"]))))) + (data[\"max_roll_std_1000\"]))/2.0)))))))))) * 2.0)))) +\n            0.0399687365*np.tanh((((((data[\"q01_roll_std_10\"]) * ((-1.0*((np.tanh((((((data[\"q01_roll_std_10\"]) * (np.tanh((((((data[\"avg_last_50000\"]) * 2.0)) * 2.0)))))) + (np.tanh((data[\"q05_roll_std_10\"])))))))))))) + (((data[\"q99_roll_std_100\"]) * (np.tanh((((data[\"avg_last_50000\"]) * 2.0)))))))/2.0)) +\n            0.0399843678*np.tanh(((data[\"skew\"]) * ((-1.0*((((data[\"avg_first_50000\"]) * ((-1.0*((((data[\"min_last_10000\"]) - (np.tanh((((data[\"min_last_10000\"]) * ((-1.0*((np.tanh((((data[\"q05_roll_mean_100\"]) - ((-1.0*((((data[\"q05_roll_mean_100\"]) - (data[\"av_change_abs_roll_std_100\"]))))))))))))))))))))))))))))))","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"_uuid":"d4eb2efbe227c2ccbfccee3470f5b62327f96103"},"cell_type":"markdown","source":"We prepare the model."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"64bdc989e8ae6c93a1415f681dbebc91e7b97763"},"cell_type":"code","source":"%%time\nmean_absolute_error(y_tr,GPI(X_train_scaled)) ","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"4c4767242817503f66561409f6fe031459195e77"},"cell_type":"markdown","source":"We use the model for prediction."},{"metadata":{"_kg_hide-input":true,"trusted":true,"_uuid":"69fd8cfb723f943fb10bf0ff91e4759b8b912edf"},"cell_type":"code","source":"predictions = GPI(X_test_scaled).values","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"0fce1845bdc118dea09c917d2322c840426e34e1"},"cell_type":"markdown","source":"# <a id='6'>Submission</a>  \n\nWe set the predicted time to failure in the submission file."},{"metadata":{"trusted":true,"_uuid":"641d4feeb57e87e24c3f4bc29863c35169f9302f"},"cell_type":"code","source":"submission.time_to_failure = predictions\nsubmission.to_csv('submission.csv',index=True)\nsubmission.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"31de440320aa87a962deb1d166abba4ac82e4c04"},"cell_type":"markdown","source":"# <a id='7'>References</a>  \n\n[1] Fast Fourier Transform, https://en.wikipedia.org/wiki/Fast_Fourier_transform   \n[2] Shifting aperture, in Neural network for inverse mapping in eddy current testing, https://www.researchgate.net/publication/3839126_Neural_network_for_inverse_mapping_in_eddy_current_testing   \n[3] Andrews Script plus a Genetic Program Model, https://www.kaggle.com/scirpus/andrews-script-plus-a-genetic-program-model/"}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}