{"cells":[{"metadata":{"slideshow":{"slide_type":"-"}},"cell_type":"markdown","source":"**Exploratory Data Analysis of CHAMPS dataset**\n# PART 1: INTRO and look at the types of couplings"},{"metadata":{"trusted":true},"cell_type":"code","source":"# module imports\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\n# ggplot style visuals\nplt.style.use('ggplot')\n\n# set input directory\nin_dir = '../input/'","execution_count":11,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## What is coupling constant and why should I care?\n\n**NMR** (Nuclear Magnetic Resonance) is technique used in medical imaging, chemistry etc to learn about structure of materials. Certain atoms (notably C-13 and H-1) have intrinsic magnetic dipole (ie tiny magnet). When subjected to external magnetic field these magnets align (which also aligns their bonding electron).\n\nHowever atoms that are next to each other do not like when their shared electrons try to have same spin (Pauli exclusion principle). So, they create a split where atom 1 spin is up and atom 2 spin is down, and vice versa. This is **1J** coupling. Atom 1 affecting spind  of its neighbour atom 2 will also affect atom 3 which is neighbor of atom 2 (**2J**) and so on and so forth. It is the strength of these couplings that needs to be determined (which is usually calculated by simulations for days). \n\nReferences:\n- https://en.wikipedia.org/wiki/Nuclear_magnetic_resonance\n- https://www.chem.wisc.edu/areas/reich/nmr/Notes-05-HMR-v26-part2.pdf\n\n![NMR spectra of two H atoms coupling](https://acdlabs.typepad.com/photos/uncategorized/2008/04/07/metacoupling_apr72008.gif \"J-coupling between two H atoms in benzene and its'fingerprint'\")\n\n*imagee source:* https://acdlabs.typepad.com/elucidation/2008/04/identifying-met.html"},{"metadata":{},"cell_type":"markdown","source":"## Data files provided"},{"metadata":{},"cell_type":"markdown","source":"Let us get familiar with given files. Description from Kaggle\n\n---\n* In this competition, you will be predicting the scalar_coupling_constant between atom pairs in molecules, given the two atom types (e.g., C and H), the coupling type (e.g., 2JHC), and any features you are able to create from the molecule structure (xyz) files.\n* For this competition, you will not be predicting all the atom pairs in each molecule rather, you will only need to predict the pairs that are explicitly listed in the train and test files. For example, some molecules contain Fluorine (F), but you will not be predicting the scalar coupling constant for any pair that includes F.\n* The training and test splits are by molecule, so that no molecule in the training data is found in the test data.\n\n**Files**\n* train.csv - the training set, where the first column (molecule_name) is the name of the molecule where the coupling constant originates (the corresponding XYZ file is located at ./structures/.xyz), the second (atom_index_0) and third column (atom_index_1) is the atom indices of the atom-pair creating the coupling and the fourth column (scalar_coupling_constant) is the scalar coupling constant that we want to be able to predict\n\n* test.csv - the test set; same info as train, without the target variable\n* sample_submission.csv - a sample submission file in the correct format\n* structures.zip - folder containing molecular structure (xyz) files, where the first line is the number of atoms in the molecule, followed by a blank line, and then a line for every atom, where the first column contains the atomic element (H for hydrogen, C for carbon etc.) and the remaining columns contain the X, Y and Z cartesian coordinates (a standard format for chemists and molecular visualization programs)\nstructures.csv - this file contains the same information as the individual xyz structure files, but in a single file\n\n**Additional Data**\n\nNOTE: additional data is provided for the molecules in Train only!\n* dipole_moments.csv - contains the molecular electric dipole moments. These are three dimensional vectors that indicate the charge distribution in the molecule. The first column (molecule_name) are the names of the molecule, the second to fourth column are the X, Y and Z components respectively of the dipole moment.\n\n* magnetic_shielding_tensors.csv - contains the magnetic shielding tensors for all atoms in the molecules. The first column (molecule_name) contains the molecule name, the second column (atom_index) contains the index of the atom in the molecule, the third to eleventh columns contain the XX, YX, ZX, XY, YY, ZY, XZ, YZ and ZZ elements of the tensor/matrix respectively.\n\n* mulliken_charges.csv - contains the mulliken charges for all atoms in the molecules. The first column (molecule_name) contains the name of the molecule, the second column (atom_index) contains the index of the atom in the molecule, the third column (mulliken_charge) contains the mulliken charge of the atom.\n\n* potential_energy.csv - contains the potential energy of the molecules. The first column (molecule_name) contains the name of the molecule, the second column (potential_energy) contains the potential energy of the molecule.\n\n* scalar_coupling_contributions.csv - The scalar coupling constants in train.csv (or corresponding files) are a sum of four terms. scalar_coupling_contributions.csv contain all these terms. The first column (molecule_name) are the name of the molecule, the second (atom_index_0) and third column (atom_index_1) are the atom indices of the atom-pair, the fourth column indicates the type of coupling, the fifth column (fc) is the Fermi Contact contribution, the sixth column (sd) is the Spin-dipolar contribution, the seventh column (pso) is the Paramagnetic spin-orbit contribution and the eighth column (dso) is the Diamagnetic spin-orbit contribution.\n---\n\n"},{"metadata":{},"cell_type":"markdown","source":"**train.csv** and **test.csv**"},{"metadata":{"trusted":true},"cell_type":"code","source":"pd.read_csv(in_dir+'train.csv', nrows=10)","execution_count":12,"outputs":[{"output_type":"execute_result","execution_count":12,"data":{"text/plain":"   id           ...            scalar_coupling_constant\n0   0           ...                             84.8076\n1   1           ...                            -11.2570\n2   2           ...                            -11.2548\n3   3           ...                            -11.2543\n4   4           ...                             84.8074\n5   5           ...                            -11.2541\n6   6           ...                            -11.2548\n7   7           ...                             84.8093\n8   8           ...                            -11.2543\n9   9           ...                             84.8095\n\n[10 rows x 6 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>molecule_name</th>\n      <th>atom_index_0</th>\n      <th>atom_index_1</th>\n      <th>type</th>\n      <th>scalar_coupling_constant</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>0</td>\n      <td>1JHC</td>\n      <td>84.8076</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>1</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>2</td>\n      <td>2JHH</td>\n      <td>-11.2570</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>2</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>3</td>\n      <td>2JHH</td>\n      <td>-11.2548</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>3</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>4</td>\n      <td>2JHH</td>\n      <td>-11.2543</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>4</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>2</td>\n      <td>0</td>\n      <td>1JHC</td>\n      <td>84.8074</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>5</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>2</td>\n      <td>3</td>\n      <td>2JHH</td>\n      <td>-11.2541</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>6</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>2</td>\n      <td>4</td>\n      <td>2JHH</td>\n      <td>-11.2548</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>7</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>3</td>\n      <td>0</td>\n      <td>1JHC</td>\n      <td>84.8093</td>\n    </tr>\n    <tr>\n      <th>8</th>\n      <td>8</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>3</td>\n      <td>4</td>\n      <td>2JHH</td>\n      <td>-11.2543</td>\n    </tr>\n    <tr>\n      <th>9</th>\n      <td>9</td>\n      <td>dsgdb9nsd_000001</td>\n      <td>4</td>\n      <td>0</td>\n      <td>1JHC</td>\n      <td>84.8095</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"# what is type?\npdtrain = pd.read_csv(in_dir+'train.csv')\n# we will need this one later\nTYPES = list(pdtrain[\"type\"].unique())\nprint(TYPES)\ndel pdtrain","execution_count":13,"outputs":[{"output_type":"stream","text":"['1JHC', '2JHH', '1JHN', '2JHN', '2JHC', '3JHH', '3JHC', '3JHN']\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"1JHC means, coupling between H and C through one bond (H-C). Why there is no 1JHH, worth thinking about? :)"},{"metadata":{"trusted":true},"cell_type":"code","source":"# is test.csv different?\npd.read_csv(in_dir+'test.csv', nrows=10)","execution_count":14,"outputs":[{"output_type":"execute_result","execution_count":14,"data":{"text/plain":"        id     molecule_name  atom_index_0  atom_index_1  type\n0  4658147  dsgdb9nsd_000004             2             0  2JHC\n1  4658148  dsgdb9nsd_000004             2             1  1JHC\n2  4658149  dsgdb9nsd_000004             2             3  3JHH\n3  4658150  dsgdb9nsd_000004             3             0  1JHC\n4  4658151  dsgdb9nsd_000004             3             1  2JHC\n5  4658152  dsgdb9nsd_000015             3             0  1JHC\n6  4658153  dsgdb9nsd_000015             3             2  3JHC\n7  4658154  dsgdb9nsd_000015             3             4  2JHH\n8  4658155  dsgdb9nsd_000015             3             5  2JHH\n9  4658156  dsgdb9nsd_000015             4             0  1JHC","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>molecule_name</th>\n      <th>atom_index_0</th>\n      <th>atom_index_1</th>\n      <th>type</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>4658147</td>\n      <td>dsgdb9nsd_000004</td>\n      <td>2</td>\n      <td>0</td>\n      <td>2JHC</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>4658148</td>\n      <td>dsgdb9nsd_000004</td>\n      <td>2</td>\n      <td>1</td>\n      <td>1JHC</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>4658149</td>\n      <td>dsgdb9nsd_000004</td>\n      <td>2</td>\n      <td>3</td>\n      <td>3JHH</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>4658150</td>\n      <td>dsgdb9nsd_000004</td>\n      <td>3</td>\n      <td>0</td>\n      <td>1JHC</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>4658151</td>\n      <td>dsgdb9nsd_000004</td>\n      <td>3</td>\n      <td>1</td>\n      <td>2JHC</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>4658152</td>\n      <td>dsgdb9nsd_000015</td>\n      <td>3</td>\n      <td>0</td>\n      <td>1JHC</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>4658153</td>\n      <td>dsgdb9nsd_000015</td>\n      <td>3</td>\n      <td>2</td>\n      <td>3JHC</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>4658154</td>\n      <td>dsgdb9nsd_000015</td>\n      <td>3</td>\n      <td>4</td>\n      <td>2JHH</td>\n    </tr>\n    <tr>\n      <th>8</th>\n      <td>4658155</td>\n      <td>dsgdb9nsd_000015</td>\n      <td>3</td>\n      <td>5</td>\n      <td>2JHH</td>\n    </tr>\n    <tr>\n      <th>9</th>\n      <td>4658156</td>\n      <td>dsgdb9nsd_000015</td>\n      <td>4</td>\n      <td>0</td>\n      <td>1JHC</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"Seems like **structures.csv** is just a convenience file, so that we do not fiddle with structures folder unless we really want to. Let us check"},{"metadata":{"trusted":true},"cell_type":"code","source":"pd.read_csv(in_dir+'structures.csv', nrows=10)","execution_count":15,"outputs":[{"output_type":"execute_result","execution_count":15,"data":{"text/plain":"      molecule_name  atom_index atom         x         y         z\n0  dsgdb9nsd_000001           0    C -0.012698  1.085804  0.008001\n1  dsgdb9nsd_000001           1    H  0.002150 -0.006031  0.001976\n2  dsgdb9nsd_000001           2    H  1.011731  1.463751  0.000277\n3  dsgdb9nsd_000001           3    H -0.540815  1.447527 -0.876644\n4  dsgdb9nsd_000001           4    H -0.523814  1.437933  0.906397\n5  dsgdb9nsd_000002           0    N -0.040426  1.024108  0.062564\n6  dsgdb9nsd_000002           1    H  0.017257  0.012545 -0.027377\n7  dsgdb9nsd_000002           2    H  0.915789  1.358745 -0.028758\n8  dsgdb9nsd_000002           3    H -0.520278  1.343532 -0.775543\n9  dsgdb9nsd_000003           0    O -0.034360  0.977540  0.007602","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>molecule_name</th>\n      <th>atom_index</th>\n      <th>atom</th>\n      <th>x</th>\n      <th>y</th>\n      <th>z</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>dsgdb9nsd_000001</td>\n      <td>0</td>\n      <td>C</td>\n      <td>-0.012698</td>\n      <td>1.085804</td>\n      <td>0.008001</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>dsgdb9nsd_000001</td>\n      <td>1</td>\n      <td>H</td>\n      <td>0.002150</td>\n      <td>-0.006031</td>\n      <td>0.001976</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>dsgdb9nsd_000001</td>\n      <td>2</td>\n      <td>H</td>\n      <td>1.011731</td>\n      <td>1.463751</td>\n      <td>0.000277</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>dsgdb9nsd_000001</td>\n      <td>3</td>\n      <td>H</td>\n      <td>-0.540815</td>\n      <td>1.447527</td>\n      <td>-0.876644</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>dsgdb9nsd_000001</td>\n      <td>4</td>\n      <td>H</td>\n      <td>-0.523814</td>\n      <td>1.437933</td>\n      <td>0.906397</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>dsgdb9nsd_000002</td>\n      <td>0</td>\n      <td>N</td>\n      <td>-0.040426</td>\n      <td>1.024108</td>\n      <td>0.062564</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>dsgdb9nsd_000002</td>\n      <td>1</td>\n      <td>H</td>\n      <td>0.017257</td>\n      <td>0.012545</td>\n      <td>-0.027377</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>dsgdb9nsd_000002</td>\n      <td>2</td>\n      <td>H</td>\n      <td>0.915789</td>\n      <td>1.358745</td>\n      <td>-0.028758</td>\n    </tr>\n    <tr>\n      <th>8</th>\n      <td>dsgdb9nsd_000002</td>\n      <td>3</td>\n      <td>H</td>\n      <td>-0.520278</td>\n      <td>1.343532</td>\n      <td>-0.775543</td>\n    </tr>\n    <tr>\n      <th>9</th>\n      <td>dsgdb9nsd_000003</td>\n      <td>0</td>\n      <td>O</td>\n      <td>-0.034360</td>\n      <td>0.977540</td>\n      <td>0.007602</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"Seems so. What about **additinoal data**? Description says it is intermediate results of _proper_ physical calculations. We can think about them later. One question that immediately pops up is how much information the **type** field holds?"},{"metadata":{},"cell_type":"markdown","source":"## Types vs coupling constants"},{"metadata":{"trusted":true},"cell_type":"code","source":"dftrain = (pd.read_csv(in_dir+'train.csv')\n           .drop(columns=['id','molecule_name','atom_index_0','atom_index_1']))\ndist_table = dftrain.pivot_table(values='scalar_coupling_constant'\n                                ,columns='type'\n                                ,aggfunc=[np.mean, np.std])","execution_count":16,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# reformat the pivot table\ndist_table = pd.DataFrame({\"MEAN\":dist_table['mean'].loc['scalar_coupling_constant']\n                        ,\"STDEV\":dist_table['std'].loc['scalar_coupling_constant']})","execution_count":17,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"dist_table","execution_count":18,"outputs":[{"output_type":"execute_result","execution_count":18,"data":{"text/plain":"           MEAN      STDEV\ntype                      \n1JHC  94.976153  18.277237\n1JHN  47.479884  10.922172\n2JHC  -0.270624   4.523611\n2JHH -10.286605   3.979607\n2JHN   3.124754   3.673474\n3JHC   3.688470   3.070907\n3JHH   4.771023   3.704984\n3JHN   0.990730   1.315393","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>MEAN</th>\n      <th>STDEV</th>\n    </tr>\n    <tr>\n      <th>type</th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>1JHC</th>\n      <td>94.976153</td>\n      <td>18.277237</td>\n    </tr>\n    <tr>\n      <th>1JHN</th>\n      <td>47.479884</td>\n      <td>10.922172</td>\n    </tr>\n    <tr>\n      <th>2JHC</th>\n      <td>-0.270624</td>\n      <td>4.523611</td>\n    </tr>\n    <tr>\n      <th>2JHH</th>\n      <td>-10.286605</td>\n      <td>3.979607</td>\n    </tr>\n    <tr>\n      <th>2JHN</th>\n      <td>3.124754</td>\n      <td>3.673474</td>\n    </tr>\n    <tr>\n      <th>3JHC</th>\n      <td>3.688470</td>\n      <td>3.070907</td>\n    </tr>\n    <tr>\n      <th>3JHH</th>\n      <td>4.771023</td>\n      <td>3.704984</td>\n    </tr>\n    <tr>\n      <th>3JHN</th>\n      <td>0.990730</td>\n      <td>1.315393</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"**distribution of each type**"},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(10,18))\nfor T,splot in zip(TYPES, range(1,1+len(TYPES))):\n    plt.subplot(len(TYPES),1,splot,sharex=plt.gca())\n    plt.hist(dftrain\n             ['scalar_coupling_constant']\n             [dftrain['type']==T], bins=50,rwidth=0.9,density=True)\n    plt.title(T,loc='right')\n    plt.xticks([])\n_=plt.xticks(np.arange(-50,151,50))","execution_count":19,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 720x1296 with 8 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"* 1J couplings are the strongest and most varied\n* Coupling constant between atoms more than 1 bond away is usually close to 0 (with exception of 2JHH)\n\nHow lucky can we get if we draw from distribution or mean? They seem to be pretty wild, so, probably not good enough. Especially **1JHN** has two peaks"},{"metadata":{"trusted":true},"cell_type":"code","source":"dftrain = pd.read_csv(in_dir+'train.csv').drop(columns=['id','molecule_name','atom_index_0','atom_index_1'])","execution_count":20,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# line 1 draw from normal dist, line 2 predict mean #\n# uncomment whichever you need                      #\n#---------------------------------------------------#\n\n# random_pred = np.random.normal(loc=dist_table['MEAN'].loc[dftrain['type']], scale=dist_table['STDEV'].loc[dftrain['type']]*0.5,)\nrandom_pred = dist_table['MEAN'].loc[dftrain['type']]","execution_count":21,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(10,10))\nplt.subplot(111)\nplt.title('Randomly guessed value according to type vs Real')\nfor T in TYPES:\n    bool_only_T = (dftrain['type']==T).values\n    # do not plot all data (too big)\n    plt.scatter(random_pred[bool_only_T][::150]\n                ,dftrain['scalar_coupling_constant'][bool_only_T][::150]\n                ,label=T,s=4)\n\nplt.ylabel('Real')\nplt.xlabel('Guess')\n\nplt.xlim(plt.ylim()[0], plt.ylim()[1]) # set limits to be same\nminv, maxv = plt.xlim()\nstraight_line, = plt.plot([minv,maxv],[minv,maxv], c='green', alpha=0.5, label='Ideal case')\n_ = plt.legend()","execution_count":22,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 720x720 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"We can see random guessing give *OK* predictions. Types that have coupling constant around 0 are more tight meaning influence is bigger (?). \n\nWe can check the accuracy metrics of our random model, and get good baseline that more sophisticated models should aim to beat"},{"metadata":{"trusted":true},"cell_type":"code","source":"def eval_model(preds, real, ts):\n    score=0\n    for T in TYPES:\n        bool_t = ts==T\n        nt = len(preds[bool_t])\n        temp = np.sum(np.abs(preds[bool_t]-real[bool_t]) / nt)\n        score += np.log(temp)\n    return score/(len(TYPES))\neval_model(random_pred.values,dftrain['scalar_coupling_constant'].values,dftrain['type'].values)","execution_count":23,"outputs":[{"output_type":"execute_result","execution_count":23,"data":{"text/plain":"1.2366001783502583"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"This is pretty bad result. We would like models that can achieve negative results. But hopefully we have achieved good insight to part of dataset. Next I will analyze the realation between xyz coordinates."},{"metadata":{},"cell_type":"markdown","source":"**Question of day:** is it better to feed type as categorical variable *OR* split it into 3 parts (how many bonds, atom 1, atom 2) and use that?"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.5.6"}},"nbformat":4,"nbformat_minor":1}