Skip to content

Instantly share code, notes, and snippets.

@marty1885
Created March 2, 2020 13:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marty1885/6b769de66ccb0464dd7e2535d101dbaf to your computer and use it in GitHub Desktop.
Save marty1885/6b769de66ccb0464dd7e2535d101dbaf to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"if(access(\"train.root\", F_OK ) == -1) {\n",
" auto csv_df = ROOT::RDF::MakeCsvDataFrame(\"train.csv\");\n",
" csv_df.Snapshot(\"data\", \"train.root\");\n",
"}\n",
"train_df = ROOT::RDF::MakeRootDataFrame(\"data\", \"train.root\");"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(ROOT::RDF::RInterface::ColumnNames_t) { \"time\", \"signal\", \"open_channels\" }\n"
]
}
],
"source": [
"train_df.GetColumnNames()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"blue = TColor::GetColor(\"#1f77b4\");\n",
"orange = TColor::GetColor(\"#ff7f0e\");\n",
"green = TColor::GetColor(\"#2ca02c\");\n",
"red = TColor::GetColor(\"#ff0000\");"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"c1 = new TCanvas(\"c1\", \"canvas\", 1800, 460);\n",
"g1 = train_df.Graph(\"time\", \"signal\");\n",
"g2 = train_df.Graph(\"time\", \"open_channels\");\n",
"\n",
"g1->SetLineColor(blue);\n",
"g1->SetMarkerStyle(0);\n",
"g2->SetLineColor(orange);\n",
"\n",
"g1->Draw(\"AL\");\n",
"g2->Draw(\"same L\");\n",
"\n",
"gPad->BuildLegend();\n",
"\n",
"c1->Draw();"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"// Now let's do some feature engineering\n",
"df = train_df\n",
" .Define(\"index\", [](double time)->int{return int(time*10000)-1;}, {\"time\"})\n",
" .Define(\"batch\", [](int index)->int{return index/50000;}, {\"index\"})\n",
" .Define(\"batch_index\", [](int index, int batch)->int{return index - batch*50000;}, {\"index\", \"batch\"});\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"n_batches = int(*df.Max(\"batch\"))+1;\n",
"n_sample_per_batch = 50000;\n",
"\n",
"//HACK: Storing intermid values using gloval values\n",
"batch_means = vector<double>(n_batches);\n",
"batch_maxs = vector<double>(n_batches, -1000);\n",
"batch_mins = vector<double>(n_batches, 1000);\n",
"batch_stds = vector<double>(n_batches);\n",
"\n",
"df.Foreach([&](int batch, double value){\n",
" batch_means[batch] += value;\n",
" batch_maxs[batch] = max(batch_maxs[batch], value);\n",
" batch_mins[batch] = min(batch_mins[batch], value);\n",
"}, {\"batch\", \"signal\"});\n",
"\n",
"for(auto& val : batch_means)\n",
" val /= n_sample_per_batch;\n",
"\n",
"// With the mean avaliable. we can now compute the stddev\n",
"df.Foreach([&](int batch, double value){\n",
" batch_stds[batch] += pow(value - batch_means[batch], 2);\n",
"});\n",
"for(auto& val : batch_stds)\n",
" val /= n_sample_per_batch;\n",
"\n",
"df = df.Define(\"batch_mean\", \"batch_means[batch]\"). \\\n",
" Define(\"batch_maxs\", \"batch_maxs[batch]\"). \\\n",
" Define(\"batch_mins\", \"batch_mins[batch]\"). \\\n",
" Define(\"batch_stds\", \"batch_stds[batch]\");"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(ROOT::RDF::RInterface::ColumnNames_t) { \"time\", \"index\", \"batch\", \"batch_index\", \"time\", \"signal\", \"open_channels\" }\n"
]
}
],
"source": [
"df.GetColumnNames()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"df.Snapshot(\"data\", \"data_with_featutres.root\");"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "ROOT C++",
"language": "c++",
"name": "root"
},
"language_info": {
"codemirror_mode": "text/x-c++src",
"file_extension": ".C",
"mimetype": " text/x-c++src",
"name": "c++"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment