Files
coco 85d885e008 a
2026-07-03 16:29:47 +08:00

2413 lines
117 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 排卵试纸机器学习算法验证"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1. **import moudle**"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd \n",
"import seaborn as sns\n",
"from IPython.display import display\n",
"import matplotlib.pyplot as plt\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"import sklearn\n",
"%matplotlib inline\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2. **load data**"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"load data successful !!!!!\n"
]
}
],
"source": [
"try :\n",
"# data_iphone6p_75_10 = pd.read_csv(\"20170912.pm.csv\")\n",
"# data_iphone6p_1234 = pd.read_csv(\"20170920.pm.csv\")\n",
"# data_iphone6p_5 = pd.read_csv(\"20170922.pm.csv\")\n",
"# data_iphone6p_0 = pd.read_csv(\"20170925.am.csv\")\n",
"# data_iphone6p_0_0 = pd.read_csv(\"20170925.pm.csv\")\n",
"# data_iphone6p_246 = pd.read_csv(\"20171011.pm.csv\")\n",
" \n",
"# data1 = pd.read_csv(\"ovdata_reindex.csv\")\n",
"# data2 = pd.read_csv(\"ovdataMore_reindex.csv\")\n",
"# data3 = pd.read_csv(\"ov_data_2020_reindex.csv\")\n",
" data1 = pd.read_csv(\"pregnancy_iphone.csv\")\n",
" data2 = pd.read_csv(\"pregnancy_iphone1.csv\")\n",
"\n",
"# data4 = pd.read_csv(\"10_25_renew.csv\")\n",
"\n",
"# data_all = pd.read_csv(\"data_all_2019_2020_reindex.csv\")\n",
"# data_all = pd.read_csv(\"ov_data_2020_reindex.csv\")\n",
" \n",
"# data1 = pd.read_csv(\"ovdata.csv\")\n",
"# data2 = pd.read_csv(\"ovdataMore.csv\")\n",
"# data3 = pd.read_csv(\"ov_data_2020.csv\")\n",
"# data_test1 = pd.read_csv(\"./newData/test.csv\")\n",
"# data_test2 = pd.read_csv(\"./newData/nubia_test.csv\")\n",
" \n",
" print (\"load data successful !!!!!\")\n",
"except :\n",
" print (\"load data error !!!!!!!!!!\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"data1.describe()\n",
"data2.describe()\n",
"data = data1.append(data2)\n",
"data_all = data[data[\"whiteBalance\"] == 0]\n",
"data0 = data_all[data_all[\"index\"] == 0]\n",
"data5 = data_all[data_all[\"index\"] == 1]\n",
"data10 = data_all[data_all[\"index\"] == 2]\n",
"data25 = data_all[data_all[\"index\"] == 3]\n",
"data40 = data_all[data_all[\"index\"] == 4]\n",
"data50 = data_all[data_all[\"index\"] == 5]\n",
"data75 = data_all[data_all[\"index\"] == 6]\n",
"data100 = data_all[data_all[\"index\"] == 7]\n",
"\n",
"data0.to_csv('data0.csv')\n",
"data5.to_csv('data5.csv')\n",
"data10.to_csv('data10.csv')\n",
"data25.to_csv('data25.csv')\n",
"data40.to_csv('data40.csv')\n",
"data50.to_csv('data50.csv')\n",
"data75.to_csv('data75.csv')\n",
"data100.to_csv('data100.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 3. **分析数据**"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" left_block_R left_block_G left_block_B left_block_H left_block_S \\\n",
"count 47662.000000 47662.000000 47662.000000 47662.000000 47662.000000 \n",
"mean 180.289098 153.385590 160.582351 178.323906 44.126600 \n",
"std 21.700504 35.551055 32.701433 78.575314 26.848687 \n",
"min 58.000000 33.000000 34.000000 0.000000 0.000000 \n",
"25% 162.000000 122.000000 134.000000 155.000000 18.000000 \n",
"50% 181.000000 153.000000 159.000000 217.000000 45.000000 \n",
"75% 198.000000 188.000000 190.000000 236.000000 68.000000 \n",
"max 255.000000 255.000000 255.000000 250.000000 148.000000 \n",
"\n",
" left_block_V left_block_l left_block_a left_block_b \\\n",
"count 47662.000000 47662.000000 47662.000000 47662.000000 \n",
"mean 181.053984 167.856427 139.075259 127.747241 \n",
"std 22.735616 30.366616 7.378973 3.389799 \n",
"min 58.000000 41.000000 121.000000 114.000000 \n",
"25% 163.000000 142.000000 133.000000 126.000000 \n",
"50% 181.000000 169.000000 140.000000 128.000000 \n",
"75% 198.000000 197.000000 146.000000 130.000000 \n",
"max 255.000000 255.000000 154.000000 144.000000 \n",
"\n",
" left_block_R_stddev ... right_grayMax right_grayMin \\\n",
"count 47662.000000 ... 47662.000000 47662.000000 \n",
"mean 12.002476 ... 194.762725 122.369645 \n",
"std 7.959948 ... 12.987519 18.713574 \n",
"min 0.000000 ... 91.000000 24.000000 \n",
"25% 4.000000 ... 189.000000 110.000000 \n",
"50% 11.000000 ... 196.000000 120.000000 \n",
"75% 19.000000 ... 202.000000 137.000000 \n",
"max 32.000000 ... 255.000000 242.000000 \n",
"\n",
" white_grayValue white_grayStddevValue white_grayHist white_grayMax \\\n",
"count 47662.000000 47662.000000 47662.000000 47662.000000 \n",
"mean 201.867903 0.263627 202.181276 203.812240 \n",
"std 13.437574 0.556166 14.096635 13.327305 \n",
"min 102.000000 0.000000 0.000000 103.000000 \n",
"25% 196.000000 0.000000 196.000000 198.000000 \n",
"50% 202.000000 0.000000 202.000000 204.000000 \n",
"75% 207.000000 0.000000 208.000000 209.000000 \n",
"max 255.000000 17.000000 254.000000 255.000000 \n",
"\n",
" white_grayMin whiteBalance index Unnamed: 0 \n",
"count 47662.000000 47662.0 47662.000000 5714.000000 \n",
"mean 200.900340 0.0 2.187948 1289.203710 \n",
"std 13.602098 0.0 1.380523 850.267883 \n",
"min 101.000000 0.0 0.000000 0.000000 \n",
"25% 194.000000 0.0 1.000000 570.250000 \n",
"50% 201.000000 0.0 2.000000 1146.000000 \n",
"75% 207.000000 0.0 4.000000 1981.500000 \n",
"max 255.000000 0.0 4.000000 3226.000000 \n",
"\n",
"[8 rows x 153 columns]\n"
]
}
],
"source": [
"# data4 = data_iphone6p_246[data_iphone6p_246[\"whiteBalance\"] == 0]\n",
"# data2= data_iphone6p_1234[data_iphone6p_1234[\"whiteBalance\"] == 0 ]\n",
"# data1 = data_iphone6p_75_10[data_iphone6p_75_10[\"whiteBalance\"] == 0 ]\n",
"# data3 = data_iphone6p_5[data_iphone6p_5[\"whiteBalance\"] == 0]\n",
"# data0 = data_iphone6p_0[data_iphone6p_0[\"whiteBalance\"] == 0]\n",
"# data0_0 = data_iphone6p_0_0[data_iphone6p_0_0[\"whiteBalance\"] == 0]\n",
"\n",
"\n",
"#data_all = data2.append(data1[data1[\"index\"] == 5 ]).append(data3).append(data1[data1[\"index\"] == 7 ]).append(data1[data1[\"index\"] == 8 ]).append(data0).append(data0_0).append(data4)\n",
"#data1['index'].replace(4,6,inplace=True)\n",
"#data1['index'].replace(3,5,inplace=True)\n",
"#data1['index'].replace(2,4,inplace=True)\n",
"#data1['index'].replace(1,2,inplace=True)\n",
"\n",
"#data2['index'].replace(4,6,inplace=True)\n",
"#data2['index'].replace(3,5,inplace=True)\n",
"#data2['index'].replace(2,4,inplace=True)\n",
"#data2['index'].replace(1,2,inplace=True)\n",
"\n",
"#data3['index'].replace(4,6,inplace=True)\n",
"#data3['index'].replace(3,5,inplace=True)\n",
"#data3['index'].replace(2,4,inplace=True)\n",
"#data3['index'].replace(1,2,inplace=True)\n",
"\n",
"#data4['index'].replace(2,1,inplace=True)\n",
"#data4['index'].replace(4,2,inplace=True)\n",
"\n",
"#data1_0 = data1[data1[\"whiteBalance\"] == 0]\n",
"#data2_0 = data2[data2[\"whiteBalance\"] == 0]\n",
"#data3_0 = data3[data3[\"whiteBalance\"] == 0]\n",
"\n",
"#data_test_0 = data_test\n",
"\n",
"#data_all =data1_0.append(data2_0);\n",
"#data_all =data1.append(data2).append(data3);\n",
"\n",
"#data_all.to_csv('data_all_2019_2020_reindex.csv')\n",
"#data1.to_csv('ovdata_modifed.csv')\n",
"#data2.to_csv('ovdataMore_modifed.csv')\n",
"#data3.to_csv('ov_data_2020_modifed.csv')\n",
"#data4.to_csv('10_25_renew.csv')\n",
"\n",
"data =data1.append(data2).append(data3).append(data4)\n",
"data_all = data[data[\"whiteBalance\"] == 0]\n",
"print(data_all.describe())\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\n",
"whiteBlock_R_one =data_all[data_all[\"index\"] == 0 ][\"right_block_l_min\"]\n",
"whiteBlock_G_one = data_all[data_all[\"index\"] == 0 ][\"right_block_a_min\"]\n",
"whiteBlock_B_one = data_all[data_all[\"index\"] == 0 ][\"right_block_b_min\"]\n",
"\n",
"whiteBlock_R_two = data_all[data_all[\"index\"] == 1 ][\"right_block_l_min\"]\n",
"whiteBlock_G_two = data_all[data_all[\"index\"] == 1 ][\"right_block_a_min\"]\n",
"whiteBlock_B_two = data_all[data_all[\"index\"] == 1 ][\"right_block_b_min\"]\n",
"\n",
"whiteBlock_R_three = data_all[data_all[\"index\"] == 2 ][\"right_block_l_min\"]\n",
"whiteBlock_G_three = data_all[data_all[\"index\"] == 2 ][\"right_block_a_min\"]\n",
"whiteBlock_B_three = data_all[data_all[\"index\"] == 2 ][\"right_block_b_min\"]\n",
"\n",
"whiteBlock_R_four = data_all[data_all[\"index\"] == 4 ][\"right_block_l_min\"]\n",
"whiteBlock_G_four = data_all[data_all[\"index\"] == 4 ][\"right_block_a_min\"]\n",
"whiteBlock_B_four = data_all[data_all[\"index\"] == 4 ][\"right_block_b_min\"]\n",
"\n",
"\n",
"whiteBlock_R_five = data_all[data_all[\"index\"] == 6 ][\"right_block_l_min\"]\n",
"whiteBlock_G_five = data_all[data_all[\"index\"] == 6 ][\"right_block_a_min\"]\n",
"whiteBlock_B_five = data_all[data_all[\"index\"] == 6 ][\"right_block_b_min\"]\n",
"\n",
"whiteBlock_R_six = data_all[data_all[\"index\"] == 7 ][\"right_block_l_min\"]\n",
"whiteBlock_G_six = data_all[data_all[\"index\"] == 7 ][\"right_block_a_min\"]\n",
"whiteBlock_B_six = data_all[data_all[\"index\"] == 7 ][\"right_block_b_min\"]\n",
"\n",
"fig = plt.figure()\n",
"#plt.rcParams[\"figure.figsize\"] = 20,20\n",
"ax = Axes3D(fig)\n",
"\n",
"ax.set_xlim(0,255)\n",
"ax.set_ylim(0,255)\n",
"ax.set_zlim(0,255)\n",
"ax.set_xlabel('H')\n",
"ax.set_ylabel('S')\n",
"ax.set_zlabel('V')\n",
"ax.set_title('HSV colorspace OV right block max value')\n",
"# ax.scatter(whiteBlock_R_zero, whiteBlock_G_zero, whiteBlock_B_zero,s = 15,c='y')\n",
"ax.scatter(whiteBlock_R_one, whiteBlock_G_one, whiteBlock_B_one,s = 15,c='r')\n",
"\n",
"ax.scatter(whiteBlock_R_two, whiteBlock_G_two, whiteBlock_B_two,s = 15,c='g')\n",
"ax.scatter(whiteBlock_R_three, whiteBlock_G_three, whiteBlock_B_three,s = 15,c='b')\n",
"\n",
"ax.scatter(whiteBlock_R_four, whiteBlock_G_four, whiteBlock_B_four,s = 15,c='y')\n",
"ax.scatter(whiteBlock_R_five, whiteBlock_G_five, whiteBlock_B_five,s = 15,c='pink')\n",
"ax.scatter(whiteBlock_R_six, whiteBlock_G_six, whiteBlock_B_six,s = 15,c='c')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"data_all.columns"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"hsv max min hist value h值要去掉"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 预处理数据"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"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>left_block_R</th>\n",
" <th>left_block_G</th>\n",
" <th>left_block_B</th>\n",
" <th>left_block_H</th>\n",
" <th>left_block_S</th>\n",
" <th>left_block_V</th>\n",
" <th>left_block_l</th>\n",
" <th>left_block_a</th>\n",
" <th>left_block_b</th>\n",
" <th>left_block_R_stddev</th>\n",
" <th>...</th>\n",
" <th>right_grayStddevValue</th>\n",
" <th>right_grayHist</th>\n",
" <th>right_grayMax</th>\n",
" <th>right_grayMin</th>\n",
" <th>white_grayValue</th>\n",
" <th>white_grayStddevValue</th>\n",
" <th>white_grayHist</th>\n",
" <th>white_grayMax</th>\n",
" <th>white_grayMin</th>\n",
" <th>Unnamed: 0</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>...</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>5714.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>180.289098</td>\n",
" <td>153.385590</td>\n",
" <td>160.582351</td>\n",
" <td>178.323906</td>\n",
" <td>44.126600</td>\n",
" <td>181.053984</td>\n",
" <td>167.856427</td>\n",
" <td>139.075259</td>\n",
" <td>127.747241</td>\n",
" <td>12.002476</td>\n",
" <td>...</td>\n",
" <td>19.333809</td>\n",
" <td>153.983719</td>\n",
" <td>194.762725</td>\n",
" <td>122.369645</td>\n",
" <td>201.867903</td>\n",
" <td>0.263627</td>\n",
" <td>202.181276</td>\n",
" <td>203.812240</td>\n",
" <td>200.900340</td>\n",
" <td>1289.203710</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>21.700504</td>\n",
" <td>35.551055</td>\n",
" <td>32.701433</td>\n",
" <td>78.575314</td>\n",
" <td>26.848687</td>\n",
" <td>22.735616</td>\n",
" <td>30.366616</td>\n",
" <td>7.378973</td>\n",
" <td>3.389799</td>\n",
" <td>7.959948</td>\n",
" <td>...</td>\n",
" <td>4.071411</td>\n",
" <td>22.848103</td>\n",
" <td>12.987519</td>\n",
" <td>18.713574</td>\n",
" <td>13.437574</td>\n",
" <td>0.556166</td>\n",
" <td>14.096635</td>\n",
" <td>13.327305</td>\n",
" <td>13.602098</td>\n",
" <td>850.267883</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>58.000000</td>\n",
" <td>33.000000</td>\n",
" <td>34.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>58.000000</td>\n",
" <td>41.000000</td>\n",
" <td>121.000000</td>\n",
" <td>114.000000</td>\n",
" <td>0.000000</td>\n",
" <td>...</td>\n",
" <td>1.000000</td>\n",
" <td>28.000000</td>\n",
" <td>91.000000</td>\n",
" <td>24.000000</td>\n",
" <td>102.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>103.000000</td>\n",
" <td>101.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>162.000000</td>\n",
" <td>122.000000</td>\n",
" <td>134.000000</td>\n",
" <td>155.000000</td>\n",
" <td>18.000000</td>\n",
" <td>163.000000</td>\n",
" <td>142.000000</td>\n",
" <td>133.000000</td>\n",
" <td>126.000000</td>\n",
" <td>4.000000</td>\n",
" <td>...</td>\n",
" <td>16.000000</td>\n",
" <td>139.000000</td>\n",
" <td>189.000000</td>\n",
" <td>110.000000</td>\n",
" <td>196.000000</td>\n",
" <td>0.000000</td>\n",
" <td>196.000000</td>\n",
" <td>198.000000</td>\n",
" <td>194.000000</td>\n",
" <td>570.250000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>181.000000</td>\n",
" <td>153.000000</td>\n",
" <td>159.000000</td>\n",
" <td>217.000000</td>\n",
" <td>45.000000</td>\n",
" <td>181.000000</td>\n",
" <td>169.000000</td>\n",
" <td>140.000000</td>\n",
" <td>128.000000</td>\n",
" <td>11.000000</td>\n",
" <td>...</td>\n",
" <td>19.000000</td>\n",
" <td>151.000000</td>\n",
" <td>196.000000</td>\n",
" <td>120.000000</td>\n",
" <td>202.000000</td>\n",
" <td>0.000000</td>\n",
" <td>202.000000</td>\n",
" <td>204.000000</td>\n",
" <td>201.000000</td>\n",
" <td>1146.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>198.000000</td>\n",
" <td>188.000000</td>\n",
" <td>190.000000</td>\n",
" <td>236.000000</td>\n",
" <td>68.000000</td>\n",
" <td>198.000000</td>\n",
" <td>197.000000</td>\n",
" <td>146.000000</td>\n",
" <td>130.000000</td>\n",
" <td>19.000000</td>\n",
" <td>...</td>\n",
" <td>23.000000</td>\n",
" <td>170.000000</td>\n",
" <td>202.000000</td>\n",
" <td>137.000000</td>\n",
" <td>207.000000</td>\n",
" <td>0.000000</td>\n",
" <td>208.000000</td>\n",
" <td>209.000000</td>\n",
" <td>207.000000</td>\n",
" <td>1981.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>255.000000</td>\n",
" <td>255.000000</td>\n",
" <td>255.000000</td>\n",
" <td>250.000000</td>\n",
" <td>148.000000</td>\n",
" <td>255.000000</td>\n",
" <td>255.000000</td>\n",
" <td>154.000000</td>\n",
" <td>144.000000</td>\n",
" <td>32.000000</td>\n",
" <td>...</td>\n",
" <td>31.000000</td>\n",
" <td>251.000000</td>\n",
" <td>255.000000</td>\n",
" <td>242.000000</td>\n",
" <td>255.000000</td>\n",
" <td>17.000000</td>\n",
" <td>254.000000</td>\n",
" <td>255.000000</td>\n",
" <td>255.000000</td>\n",
" <td>3226.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8 rows × 151 columns</p>\n",
"</div>"
],
"text/plain": [
" left_block_R left_block_G left_block_B left_block_H left_block_S \\\n",
"count 47662.000000 47662.000000 47662.000000 47662.000000 47662.000000 \n",
"mean 180.289098 153.385590 160.582351 178.323906 44.126600 \n",
"std 21.700504 35.551055 32.701433 78.575314 26.848687 \n",
"min 58.000000 33.000000 34.000000 0.000000 0.000000 \n",
"25% 162.000000 122.000000 134.000000 155.000000 18.000000 \n",
"50% 181.000000 153.000000 159.000000 217.000000 45.000000 \n",
"75% 198.000000 188.000000 190.000000 236.000000 68.000000 \n",
"max 255.000000 255.000000 255.000000 250.000000 148.000000 \n",
"\n",
" left_block_V left_block_l left_block_a left_block_b \\\n",
"count 47662.000000 47662.000000 47662.000000 47662.000000 \n",
"mean 181.053984 167.856427 139.075259 127.747241 \n",
"std 22.735616 30.366616 7.378973 3.389799 \n",
"min 58.000000 41.000000 121.000000 114.000000 \n",
"25% 163.000000 142.000000 133.000000 126.000000 \n",
"50% 181.000000 169.000000 140.000000 128.000000 \n",
"75% 198.000000 197.000000 146.000000 130.000000 \n",
"max 255.000000 255.000000 154.000000 144.000000 \n",
"\n",
" left_block_R_stddev ... right_grayStddevValue right_grayHist \\\n",
"count 47662.000000 ... 47662.000000 47662.000000 \n",
"mean 12.002476 ... 19.333809 153.983719 \n",
"std 7.959948 ... 4.071411 22.848103 \n",
"min 0.000000 ... 1.000000 28.000000 \n",
"25% 4.000000 ... 16.000000 139.000000 \n",
"50% 11.000000 ... 19.000000 151.000000 \n",
"75% 19.000000 ... 23.000000 170.000000 \n",
"max 32.000000 ... 31.000000 251.000000 \n",
"\n",
" right_grayMax right_grayMin white_grayValue white_grayStddevValue \\\n",
"count 47662.000000 47662.000000 47662.000000 47662.000000 \n",
"mean 194.762725 122.369645 201.867903 0.263627 \n",
"std 12.987519 18.713574 13.437574 0.556166 \n",
"min 91.000000 24.000000 102.000000 0.000000 \n",
"25% 189.000000 110.000000 196.000000 0.000000 \n",
"50% 196.000000 120.000000 202.000000 0.000000 \n",
"75% 202.000000 137.000000 207.000000 0.000000 \n",
"max 255.000000 242.000000 255.000000 17.000000 \n",
"\n",
" white_grayHist white_grayMax white_grayMin Unnamed: 0 \n",
"count 47662.000000 47662.000000 47662.000000 5714.000000 \n",
"mean 202.181276 203.812240 200.900340 1289.203710 \n",
"std 14.096635 13.327305 13.602098 850.267883 \n",
"min 0.000000 103.000000 101.000000 0.000000 \n",
"25% 196.000000 198.000000 194.000000 570.250000 \n",
"50% 202.000000 204.000000 201.000000 1146.000000 \n",
"75% 208.000000 209.000000 207.000000 1981.500000 \n",
"max 254.000000 255.000000 255.000000 3226.000000 \n",
"\n",
"[8 rows x 151 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"\n",
"train_labels = data_all[\"index\"]\n",
"train_features = data_all.drop(\"dateTime\",axis=1)\n",
"train_features = train_features.drop(\"index\",axis=1)\n",
"train_features = train_features.drop(\"whiteBalance\",axis=1)\n",
"\n",
"\n",
"\n",
"train_features.describe()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\n",
"#这一节的代码,不要执行\n",
"\n",
"train_features = train_features.drop(\"left_block_H\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V\",axis=1)\n",
"\n",
"\n",
"train_features = train_features.drop(\"left_block_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_H_hist\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S_hist\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H_hist\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S_hist\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H_hist\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S_hist\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_H_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_H_min\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S_min\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V_min\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H_min\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S_min\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V_min\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H_min\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S_min\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V_min\",axis=1)\n",
"\n",
"\n",
"\n",
"train_features['lelf_right_R'] = train_features['left_block_R'] - train_features['right_block_R']\n",
"train_features['lelf_right_G'] = train_features['left_block_G'] - train_features['right_block_G']\n",
"train_features['lelf_right_B'] = train_features['left_block_B'] - train_features['right_block_B']\n",
"\n",
"# train_features['lelf_right_H'] = train_features['left_block_H'] - train_features['right_block_H']\n",
"# train_features['lelf_right_S'] = train_features['left_block_S'] - train_features['right_block_S']\n",
"# train_features['lelf_right_V'] = train_features['left_block_V'] - train_features['right_block_V']\n",
"\n",
"train_features['lelf_right_l'] = train_features['left_block_l'] - train_features['right_block_l']\n",
"train_features['lelf_right_a'] = train_features['left_block_a'] - train_features['right_block_a']\n",
"train_features['lelf_right_b'] = train_features['left_block_b'] - train_features['right_block_b']\n",
"\n",
"train_features['lelf_right_R_stddev'] = train_features['left_block_R_stddev'] - train_features['right_block_R_stddev']\n",
"train_features['lelf_right_G_stddev'] = train_features['left_block_G_stddev'] - train_features['right_block_G_stddev']\n",
"train_features['lelf_right_B_stddev'] = train_features['left_block_B_stddev'] - train_features['right_block_B_stddev']\n",
"\n",
"# train_features['lelf_right_H_stddev'] = train_features['left_block_H_stddev'] - train_features['right_block_H_stddev']\n",
"# train_features['lelf_right_S_stddev'] = train_features['left_block_S_stddev'] - train_features['right_block_S_stddev']\n",
"# train_features['lelf_right_V_stddev'] = train_features['left_block_V_stddev'] - train_features['right_block_V_stddev']\n",
"\n",
"train_features['lelf_right_l_stddev'] = train_features['left_block_l_stddev'] - train_features['right_block_l_stddev']\n",
"train_features['lelf_right_a_stddev'] = train_features['left_block_a_stddev'] - train_features['right_block_a_stddev']\n",
"train_features['lelf_right_b_stddev'] = train_features['left_block_b_stddev'] - train_features['right_block_b_stddev']\n",
"\n",
"train_features['lelf_right_R_hist'] = train_features['left_block_R_hist'] - train_features['right_block_R_hist']\n",
"train_features['lelf_right_G_hist'] = train_features['left_block_G_hist'] - train_features['right_block_G_hist']\n",
"train_features['lelf_right_B_hist'] = train_features['left_block_B_hist'] - train_features['right_block_B_hist']\n",
"\n",
"# train_features['lelf_right_H_hist'] = train_features['left_block_H_hist'] - train_features['right_block_H_hist']\n",
"# train_features['lelf_right_S_hist'] = train_features['left_block_S_hist'] - train_features['right_block_S_hist']\n",
"# train_features['lelf_right_V_hist'] = train_features['left_block_V_hist'] - train_features['right_block_V_hist']\n",
"\n",
"train_features['lelf_right_l_hist'] = train_features['left_block_l_hist'] - train_features['right_block_l_hist']\n",
"train_features['lelf_right_a_hist'] = train_features['left_block_a_hist'] - train_features['right_block_a_hist']\n",
"train_features['lelf_right_b_hist'] = train_features['left_block_b_hist'] - train_features['right_block_b_hist']\n",
"\n",
"train_features['lelf_right_R_max'] = train_features['left_block_R_max'] - train_features['right_block_R_max']\n",
"train_features['lelf_right_G_max'] = train_features['left_block_G_max'] - train_features['right_block_G_max']\n",
"train_features['lelf_right_B_max'] = train_features['left_block_B_max'] - train_features['right_block_B_max']\n",
"\n",
"# train_features['lelf_right_H_max'] = train_features['left_block_H_max'] - train_features['right_block_H_max']\n",
"# train_features['lelf_right_S_max'] = train_features['left_block_S_max'] - train_features['right_block_S_max']\n",
"# train_features['lelf_right_V_max'] = train_features['left_block_V_max'] - train_features['right_block_V_max']\n",
"\n",
"train_features['lelf_right_l_max'] = train_features['left_block_l_max'] - train_features['right_block_l_max']\n",
"train_features['lelf_right_a_max'] = train_features['left_block_a_max'] - train_features['right_block_a_max']\n",
"train_features['lelf_right_b_max'] = train_features['left_block_b_max'] - train_features['right_block_b_max']\n",
"\n",
"\n",
"\n",
"train_features['lelf_right_R_min'] = train_features['left_block_R_min'] - train_features['right_block_R_min']\n",
"train_features['lelf_right_G_min'] = train_features['left_block_G_min'] - train_features['right_block_G_min']\n",
"train_features['lelf_right_B_min'] = train_features['left_block_B_min'] - train_features['right_block_B_min']\n",
"\n",
"# train_features['lelf_right_H_min'] = train_features['left_block_H_min'] - train_features['right_block_H_min']\n",
"# train_features['lelf_right_S_min'] = train_features['left_block_S_min'] - train_features['right_block_S_min']\n",
"# train_features['lelf_right_V_min'] = train_features['left_block_V_min'] - train_features['right_block_V_min']\n",
"\n",
"train_features['lelf_right_l_min'] = train_features['left_block_l_min'] - train_features['right_block_l_min']\n",
"train_features['lelf_right_a_min'] = train_features['left_block_a_min'] - train_features['right_block_a_min']\n",
"train_features['lelf_right_b_min'] = train_features['left_block_b_min'] - train_features['right_block_b_min']\n",
"\n",
"train_features['lelf_right_gray_value'] = train_features['left_grayValue'] - train_features['right_grayValue']\n",
"train_features['lelf_right_gray_stddev'] = train_features['left_grayStddevValue'] - train_features['right_grayStddevValue']\n",
"train_features['lelf_right_gray_hist'] = train_features['left_grayHist'] - train_features['right_grayHist']\n",
"train_features['lelf_right_gray_max'] = train_features['left_grayMax'] - train_features['right_grayMax']\n",
"train_features['lelf_right_gray_min'] = train_features['left_grayMin'] - train_features['right_grayMin']\n",
"train_features.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# train_features_9是真正的训练数据"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"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>lelf_right_R</th>\n",
" <th>lelf_right_G</th>\n",
" <th>lelf_right_B</th>\n",
" <th>lelf_right_H</th>\n",
" <th>lelf_right_S</th>\n",
" <th>lelf_right_V</th>\n",
" <th>lelf_right_l</th>\n",
" <th>lelf_right_a</th>\n",
" <th>lelf_right_b</th>\n",
" <th>lelf_right_R_stddev</th>\n",
" <th>...</th>\n",
" <th>lelf_right_S_min</th>\n",
" <th>lelf_right_V_min</th>\n",
" <th>lelf_right_l_min</th>\n",
" <th>lelf_right_a_min</th>\n",
" <th>lelf_right_b_min</th>\n",
" <th>lelf_right_gray_value</th>\n",
" <th>lelf_right_gray_stddev</th>\n",
" <th>lelf_right_gray_hist</th>\n",
" <th>lelf_right_gray_max</th>\n",
" <th>lelf_right_gray_min</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>...</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" <td>47662.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>1.524611</td>\n",
" <td>7.414355</td>\n",
" <td>4.993936</td>\n",
" <td>-29.645441</td>\n",
" <td>-4.300512</td>\n",
" <td>2.048382</td>\n",
" <td>5.319017</td>\n",
" <td>-2.462255</td>\n",
" <td>0.554404</td>\n",
" <td>-1.499895</td>\n",
" <td>...</td>\n",
" <td>-9.937833</td>\n",
" <td>-0.313226</td>\n",
" <td>12.762725</td>\n",
" <td>-0.956968</td>\n",
" <td>0.740821</td>\n",
" <td>5.371596</td>\n",
" <td>-2.692417</td>\n",
" <td>-2.581889</td>\n",
" <td>0.880219</td>\n",
" <td>12.910872</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>19.877693</td>\n",
" <td>32.676594</td>\n",
" <td>26.320205</td>\n",
" <td>69.628184</td>\n",
" <td>23.357776</td>\n",
" <td>20.539508</td>\n",
" <td>27.817984</td>\n",
" <td>6.565894</td>\n",
" <td>1.498175</td>\n",
" <td>8.691766</td>\n",
" <td>...</td>\n",
" <td>41.795104</td>\n",
" <td>6.608920</td>\n",
" <td>43.965507</td>\n",
" <td>2.272874</td>\n",
" <td>2.203069</td>\n",
" <td>28.070441</td>\n",
" <td>11.119842</td>\n",
" <td>46.145429</td>\n",
" <td>9.529551</td>\n",
" <td>43.804821</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-37.000000</td>\n",
" <td>-52.000000</td>\n",
" <td>-45.000000</td>\n",
" <td>-242.000000</td>\n",
" <td>-60.000000</td>\n",
" <td>-37.000000</td>\n",
" <td>-46.000000</td>\n",
" <td>-17.000000</td>\n",
" <td>-3.000000</td>\n",
" <td>-21.000000</td>\n",
" <td>...</td>\n",
" <td>-124.000000</td>\n",
" <td>-24.000000</td>\n",
" <td>-74.000000</td>\n",
" <td>-9.000000</td>\n",
" <td>-5.000000</td>\n",
" <td>-46.000000</td>\n",
" <td>-27.000000</td>\n",
" <td>-251.000000</td>\n",
" <td>-28.000000</td>\n",
" <td>-70.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>-18.000000</td>\n",
" <td>-25.000000</td>\n",
" <td>-21.000000</td>\n",
" <td>-41.000000</td>\n",
" <td>-26.000000</td>\n",
" <td>-18.000000</td>\n",
" <td>-22.000000</td>\n",
" <td>-9.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-8.000000</td>\n",
" <td>...</td>\n",
" <td>-47.000000</td>\n",
" <td>-5.000000</td>\n",
" <td>-28.000000</td>\n",
" <td>-3.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>-22.000000</td>\n",
" <td>-12.000000</td>\n",
" <td>-42.000000</td>\n",
" <td>-6.000000</td>\n",
" <td>-28.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>2.000000</td>\n",
" <td>8.000000</td>\n",
" <td>7.000000</td>\n",
" <td>-2.000000</td>\n",
" <td>-7.000000</td>\n",
" <td>2.000000</td>\n",
" <td>6.000000</td>\n",
" <td>-2.000000</td>\n",
" <td>0.000000</td>\n",
" <td>-3.000000</td>\n",
" <td>...</td>\n",
" <td>-13.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>16.000000</td>\n",
" <td>-1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>6.000000</td>\n",
" <td>-4.000000</td>\n",
" <td>2.000000</td>\n",
" <td>1.000000</td>\n",
" <td>15.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>21.000000</td>\n",
" <td>41.000000</td>\n",
" <td>31.000000</td>\n",
" <td>6.000000</td>\n",
" <td>18.000000</td>\n",
" <td>22.000000</td>\n",
" <td>34.000000</td>\n",
" <td>4.000000</td>\n",
" <td>2.000000</td>\n",
" <td>6.000000</td>\n",
" <td>...</td>\n",
" <td>29.000000</td>\n",
" <td>4.000000</td>\n",
" <td>49.000000</td>\n",
" <td>1.000000</td>\n",
" <td>2.000000</td>\n",
" <td>34.000000</td>\n",
" <td>8.000000</td>\n",
" <td>39.000000</td>\n",
" <td>9.000000</td>\n",
" <td>50.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>41.000000</td>\n",
" <td>66.000000</td>\n",
" <td>51.000000</td>\n",
" <td>140.000000</td>\n",
" <td>68.000000</td>\n",
" <td>50.000000</td>\n",
" <td>56.000000</td>\n",
" <td>11.000000</td>\n",
" <td>7.000000</td>\n",
" <td>18.000000</td>\n",
" <td>...</td>\n",
" <td>138.000000</td>\n",
" <td>29.000000</td>\n",
" <td>101.000000</td>\n",
" <td>7.000000</td>\n",
" <td>10.000000</td>\n",
" <td>56.000000</td>\n",
" <td>20.000000</td>\n",
" <td>101.000000</td>\n",
" <td>39.000000</td>\n",
" <td>100.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8 rows × 50 columns</p>\n",
"</div>"
],
"text/plain": [
" lelf_right_R lelf_right_G lelf_right_B lelf_right_H lelf_right_S \\\n",
"count 47662.000000 47662.000000 47662.000000 47662.000000 47662.000000 \n",
"mean 1.524611 7.414355 4.993936 -29.645441 -4.300512 \n",
"std 19.877693 32.676594 26.320205 69.628184 23.357776 \n",
"min -37.000000 -52.000000 -45.000000 -242.000000 -60.000000 \n",
"25% -18.000000 -25.000000 -21.000000 -41.000000 -26.000000 \n",
"50% 2.000000 8.000000 7.000000 -2.000000 -7.000000 \n",
"75% 21.000000 41.000000 31.000000 6.000000 18.000000 \n",
"max 41.000000 66.000000 51.000000 140.000000 68.000000 \n",
"\n",
" lelf_right_V lelf_right_l lelf_right_a lelf_right_b \\\n",
"count 47662.000000 47662.000000 47662.000000 47662.000000 \n",
"mean 2.048382 5.319017 -2.462255 0.554404 \n",
"std 20.539508 27.817984 6.565894 1.498175 \n",
"min -37.000000 -46.000000 -17.000000 -3.000000 \n",
"25% -18.000000 -22.000000 -9.000000 -1.000000 \n",
"50% 2.000000 6.000000 -2.000000 0.000000 \n",
"75% 22.000000 34.000000 4.000000 2.000000 \n",
"max 50.000000 56.000000 11.000000 7.000000 \n",
"\n",
" lelf_right_R_stddev ... lelf_right_S_min lelf_right_V_min \\\n",
"count 47662.000000 ... 47662.000000 47662.000000 \n",
"mean -1.499895 ... -9.937833 -0.313226 \n",
"std 8.691766 ... 41.795104 6.608920 \n",
"min -21.000000 ... -124.000000 -24.000000 \n",
"25% -8.000000 ... -47.000000 -5.000000 \n",
"50% -3.000000 ... -13.000000 -1.000000 \n",
"75% 6.000000 ... 29.000000 4.000000 \n",
"max 18.000000 ... 138.000000 29.000000 \n",
"\n",
" lelf_right_l_min lelf_right_a_min lelf_right_b_min \\\n",
"count 47662.000000 47662.000000 47662.000000 \n",
"mean 12.762725 -0.956968 0.740821 \n",
"std 43.965507 2.272874 2.203069 \n",
"min -74.000000 -9.000000 -5.000000 \n",
"25% -28.000000 -3.000000 -1.000000 \n",
"50% 16.000000 -1.000000 0.000000 \n",
"75% 49.000000 1.000000 2.000000 \n",
"max 101.000000 7.000000 10.000000 \n",
"\n",
" lelf_right_gray_value lelf_right_gray_stddev lelf_right_gray_hist \\\n",
"count 47662.000000 47662.000000 47662.000000 \n",
"mean 5.371596 -2.692417 -2.581889 \n",
"std 28.070441 11.119842 46.145429 \n",
"min -46.000000 -27.000000 -251.000000 \n",
"25% -22.000000 -12.000000 -42.000000 \n",
"50% 6.000000 -4.000000 2.000000 \n",
"75% 34.000000 8.000000 39.000000 \n",
"max 56.000000 20.000000 101.000000 \n",
"\n",
" lelf_right_gray_max lelf_right_gray_min \n",
"count 47662.000000 47662.000000 \n",
"mean 0.880219 12.910872 \n",
"std 9.529551 43.804821 \n",
"min -28.000000 -70.000000 \n",
"25% -6.000000 -28.000000 \n",
"50% 1.000000 15.000000 \n",
"75% 9.000000 50.000000 \n",
"max 39.000000 100.000000 \n",
"\n",
"[8 rows x 50 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_features_9 = pd.DataFrame()\n",
"train_features_9['lelf_right_R'] = train_features['left_block_R'] - train_features['right_block_R']\n",
"train_features_9['lelf_right_G'] = train_features['left_block_G'] - train_features['right_block_G']\n",
"train_features_9['lelf_right_B'] = train_features['left_block_B'] - train_features['right_block_B']\n",
"\n",
"train_features_9['lelf_right_H'] = train_features['left_block_H'] - train_features['right_block_H']\n",
"train_features_9['lelf_right_S'] = train_features['left_block_S'] - train_features['right_block_S']\n",
"train_features_9['lelf_right_V'] = train_features['left_block_V'] - train_features['right_block_V']\n",
"\n",
"train_features_9['lelf_right_l'] = train_features['left_block_l'] - train_features['right_block_l']\n",
"train_features_9['lelf_right_a'] = train_features['left_block_a'] - train_features['right_block_a']\n",
"train_features_9['lelf_right_b'] = train_features['left_block_b'] - train_features['right_block_b']\n",
"\n",
"train_features_9['lelf_right_R_stddev'] = train_features['left_block_R_stddev'] - train_features['right_block_R_stddev']\n",
"train_features_9['lelf_right_G_stddev'] = train_features['left_block_G_stddev'] - train_features['right_block_G_stddev']\n",
"train_features_9['lelf_right_B_stddev'] = train_features['left_block_B_stddev'] - train_features['right_block_B_stddev']\n",
"\n",
"train_features_9['lelf_right_H_stddev'] = train_features['left_block_H_stddev'] - train_features['right_block_H_stddev']\n",
"train_features_9['lelf_right_S_stddev'] = train_features['left_block_S_stddev'] - train_features['right_block_S_stddev']\n",
"train_features_9['lelf_right_V_stddev'] = train_features['left_block_V_stddev'] - train_features['right_block_V_stddev']\n",
"\n",
"train_features_9['lelf_right_l_stddev'] = train_features['left_block_l_stddev'] - train_features['right_block_l_stddev']\n",
"train_features_9['lelf_right_a_stddev'] = train_features['left_block_a_stddev'] - train_features['right_block_a_stddev']\n",
"train_features_9['lelf_right_b_stddev'] = train_features['left_block_b_stddev'] - train_features['right_block_b_stddev']\n",
"\n",
"train_features_9['lelf_right_R_hist'] = train_features['left_block_R_hist'] - train_features['right_block_R_hist']\n",
"train_features_9['lelf_right_G_hist'] = train_features['left_block_G_hist'] - train_features['right_block_G_hist']\n",
"train_features_9['lelf_right_B_hist'] = train_features['left_block_B_hist'] - train_features['right_block_B_hist']\n",
"\n",
"train_features_9['lelf_right_H_hist'] = train_features['left_block_H_hist'] - train_features['right_block_H_hist']\n",
"train_features_9['lelf_right_S_hist'] = train_features['left_block_S_hist'] - train_features['right_block_S_hist']\n",
"train_features_9['lelf_right_V_hist'] = train_features['left_block_V_hist'] - train_features['right_block_V_hist']\n",
"\n",
"train_features_9['lelf_right_l_hist'] = train_features['left_block_l_hist'] - train_features['right_block_l_hist']\n",
"train_features_9['lelf_right_a_hist'] = train_features['left_block_a_hist'] - train_features['right_block_a_hist']\n",
"train_features_9['lelf_right_b_hist'] = train_features['left_block_b_hist'] - train_features['right_block_b_hist']\n",
"\n",
"train_features_9['lelf_right_R_max'] = train_features['left_block_R_max'] - train_features['right_block_R_max']\n",
"train_features_9['lelf_right_G_max'] = train_features['left_block_G_max'] - train_features['right_block_G_max']\n",
"train_features_9['lelf_right_B_max'] = train_features['left_block_B_max'] - train_features['right_block_B_max']\n",
"\n",
"train_features_9['lelf_right_H_max'] = train_features['left_block_H_max'] - train_features['right_block_H_max']\n",
"train_features_9['lelf_right_S_max'] = train_features['left_block_S_max'] - train_features['right_block_S_max']\n",
"train_features_9['lelf_right_V_max'] = train_features['left_block_V_max'] - train_features['right_block_V_max']\n",
"\n",
"train_features_9['lelf_right_l_max'] = train_features['left_block_l_max'] - train_features['right_block_l_max']\n",
"train_features_9['lelf_right_a_max'] = train_features['left_block_a_max'] - train_features['right_block_a_max']\n",
"train_features_9['lelf_right_b_max'] = train_features['left_block_b_max'] - train_features['right_block_b_max']\n",
"\n",
"train_features_9['lelf_right_R_min'] = train_features['left_block_R_min'] - train_features['right_block_R_min']\n",
"train_features_9['lelf_right_G_min'] = train_features['left_block_G_min'] - train_features['right_block_G_min']\n",
"train_features_9['lelf_right_B_min'] = train_features['left_block_B_min'] - train_features['right_block_B_min']\n",
"\n",
"train_features_9['lelf_right_H_min'] = train_features['left_block_H_min'] - train_features['right_block_H_min']\n",
"train_features_9['lelf_right_S_min'] = train_features['left_block_S_min'] - train_features['right_block_S_min']\n",
"train_features_9['lelf_right_V_min'] = train_features['left_block_V_min'] - train_features['right_block_V_min']\n",
"\n",
"train_features_9['lelf_right_l_min'] = train_features['left_block_l_min'] - train_features['right_block_l_min']\n",
"train_features_9['lelf_right_a_min'] = train_features['left_block_a_min'] - train_features['right_block_a_min']\n",
"train_features_9['lelf_right_b_min'] = train_features['left_block_b_min'] - train_features['right_block_b_min']\n",
"\n",
"# train_features_9['left_grayValue']= train_features['left_grayValue'];\n",
"# train_features_9['left_grayStddevValue']= train_features['left_grayStddevValue'];\n",
"# train_features_9['left_grayHist']= train_features['left_grayHist'];\n",
"# train_features_9['left_grayMax']= train_features['left_grayMax'];\n",
"# train_features_9['left_grayMin']= train_features['left_grayMin'];\n",
"\n",
"# train_features_9['right_grayValue']= train_features['right_grayValue'];\n",
"# train_features_9['right_grayStddevValue']= train_features['right_grayStddevValue'];\n",
"# train_features_9['right_grayHist']= train_features['right_grayHist'];\n",
"# train_features_9['right_grayMax']= train_features['right_grayMax'];\n",
"# train_features_9['right_grayMin']= train_features['right_grayMin'];\n",
"\n",
"# train_features_9['lelf_R_stddev'] = train_features['left_block_R_stddev'] \n",
"# train_features_9['lelf_G_stddev'] = train_features['left_block_G_stddev'] \n",
"# train_features_9['lelf_B_stddev'] = train_features['left_block_B_stddev'] \n",
"\n",
"# train_features_9['left_block_R_min'] = train_features['left_block_R_min'] \n",
"# train_features_9['left_block_G_min'] = train_features['left_block_G_min'] \n",
"# train_features_9['left_block_B_min'] = train_features['left_block_B_min'] \n",
"\n",
"\n",
"train_features_9['lelf_right_gray_value'] = train_features['left_grayValue'] - train_features['right_grayValue']\n",
"train_features_9['lelf_right_gray_stddev'] = train_features['left_grayStddevValue'] - train_features['right_grayStddevValue']\n",
"train_features_9['lelf_right_gray_hist'] = train_features['left_grayHist'] - train_features['right_grayHist']\n",
"train_features_9['lelf_right_gray_max'] = train_features['left_grayMax'] - train_features['right_grayMax']\n",
"train_features_9['lelf_right_gray_min'] = train_features['left_grayMin'] - train_features['right_grayMin']\n",
"#train_features_9['index'] = train_labels\n",
"train_features_9.describe()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**去掉左边块的方差和白块和右边块的特征**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"# train_features = train_features.drop(\"left_block_R\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_G\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_B\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"left_block_R_hist\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_G_hist\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_B_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_R_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_G_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_B_stddev\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"left_block_R_max\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_G_max\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_B_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_H\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_H_hist\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S_hist\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_H_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_l\",axis=1)\n",
"train_features = train_features.drop(\"left_block_a\",axis=1)\n",
"train_features = train_features.drop(\"left_block_b\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_l_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_a_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_b_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_l_hist\",axis=1)\n",
"train_features = train_features.drop(\"left_block_a_hist\",axis=1)\n",
"train_features = train_features.drop(\"left_block_b_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_l_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_a_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_b_max\",axis=1)\n",
"##################################################################\n",
"\n",
"# train_features = train_features.drop(\"right_block_R\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_G\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_B\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_R_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_G_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_B_stddev\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"right_block_R_hist\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_G_hist\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_B_hist\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"right_block_R_max\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_G_max\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_B_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H_hist\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S_hist\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_l\",axis=1)\n",
"train_features = train_features.drop(\"right_block_a\",axis=1)\n",
"train_features = train_features.drop(\"right_block_b\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_l_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_a_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_b_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_l_hist\",axis=1)\n",
"train_features = train_features.drop(\"right_block_a_hist\",axis=1)\n",
"train_features = train_features.drop(\"right_block_b_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_l_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_a_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_b_max\",axis=1)\n",
"\n",
"####################################################################\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_R\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_G\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_B\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_R_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_G_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_B_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_R_hist\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_G_hist\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_B_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_R_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_G_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_B_max\",axis=1)\n",
"\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H_hist\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S_hist\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V_max\",axis=1)\n",
"\n",
"\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_l\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_a\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_b\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_l_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_a_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_b_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_l_hist\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_a_hist\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_b_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_l_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_a_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_b_max\",axis=1)\n",
"\n",
"##################################################################\n",
"\n",
"\n",
"\n",
"train_features.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**去掉所有块的方差特征**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\n",
"train_features = train_features.drop(\"left_block_R_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_G_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_B_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_l_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_a_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_b_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_R_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_G_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_B_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_l_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_a_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_b_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_R_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_G_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_B_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_l_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_a_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_b_stddev\",axis=1)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# train_features = train_features.drop(\"left_block_R\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_G\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_B\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"left_block_H\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_S\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_V\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"left_block_l\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_a\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_b\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"right_block_R\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_G\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_B\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"right_block_H\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_S\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_V\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"right_block_l\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_a\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_b\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"whiteBlock_R\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_G\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_B\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"whiteBlock_H\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_S\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_V\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"whiteBlock_l\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_a\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_b\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"left_block_R_hist\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_G_hist\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_B_hist\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"left_block_H_hist\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_S_hist\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_V_hist\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"left_block_l_hist\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_a_hist\",axis=1)\n",
"# train_features = train_features.drop(\"left_block_b_hist\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"right_block_R_hist\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_G_hist\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_B_hist\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"right_block_H_hist\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_S_hist\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_V_hist\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"right_block_l_hist\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_a_hist\",axis=1)\n",
"# train_features = train_features.drop(\"right_block_b_hist\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"whiteBlock_R_hist\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_G_hist\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_B_hist\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"whiteBlock_H_hist\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_S_hist\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_V_hist\",axis=1)\n",
"\n",
"# train_features = train_features.drop(\"whiteBlock_l_hist\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_a_hist\",axis=1)\n",
"# train_features = train_features.drop(\"whiteBlock_b_hist\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_R_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_G_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_B_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_l_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_a_stddev\",axis=1)\n",
"train_features = train_features.drop(\"left_block_b_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_R_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_G_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_B_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_l_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_a_stddev\",axis=1)\n",
"train_features = train_features.drop(\"right_block_b_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_R_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_G_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_B_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_l_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_a_stddev\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_b_stddev\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_R_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_G_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_B_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_H_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_S_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_V_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"left_block_l_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_a_max\",axis=1)\n",
"train_features = train_features.drop(\"left_block_b_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_R_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_G_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_B_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_H_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_S_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_V_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"right_block_l_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_a_max\",axis=1)\n",
"train_features = train_features.drop(\"right_block_b_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_R_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_G_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_B_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_H_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_S_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_V_max\",axis=1)\n",
"\n",
"train_features = train_features.drop(\"whiteBlock_l_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_a_max\",axis=1)\n",
"train_features = train_features.drop(\"whiteBlock_b_max\",axis=1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"train_features.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# svc支持向量机算法"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#from sklearn.model_selection import KFold\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.metrics import accuracy_score\n",
"from sklearn.svm import SVC\n",
"from sklearn.metrics import f1_score\n",
"from sklearn.metrics import precision_score\n",
"from sklearn.metrics import recall_score\n",
"#集成学习(Ensemble Learning) \n",
"from sklearn.ensemble import ExtraTreesClassifier\n",
"from sklearn.ensemble import AdaBoostClassifier\n",
"\n",
"#报错:ModuleNotFoundError: No module named 'sklearn.cross_validation'\n",
"#原因:当前 sklearn 版本中 cross_validation 已经替换成了 model_selection,但其中的函数功能并没有变化\n",
"#from sklearn.cross_validation import train_test_split\n",
"from sklearn.model_selection import train_test_split\n",
"X_train ,X_test,y_train,y_test = train_test_split(train_features_9,train_labels,test_size = 0.3, random_state = 20)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##fit_transform,fit,transform区别和作用详解\n",
"###fit和transform没有任何关系,仅仅是数据处理的两个不同环节,之所以出来fit_transform这个函数名,仅仅是为了写代码方便,会高效一点。\n",
"###sklearn里的封装好的各种算法使用前都要fit,fit相对于整个代码而言,为后续API服务。fit之后,然后调用各种API方法,transform只是其中一个API方法,所以当你调用transform之外的方法,也必须要先fit。\n",
"###fit原义指的是安装、使适合的意思,其实有点train的含义,但是和train不同的是,它并不是一个训练的过程,而是一个适配的过程,过程都是确定的,最后得到一个可用于转换的有价值的信息。\n",
"###https://blog.csdn.net/weixin_38278334/article/details/82971752\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"##这个不需要了!\n",
"X = train_features.values\n",
"y = train_labels.values\n",
"\n",
"kf = KFold(n_splits=5)\n",
"kf.get_n_splits(X)\n",
"\n",
"print(kf) \n",
"\n",
"for train_index, test_index in kf.split(X):\n",
" print(\"TRAIN:\", train_index, \"TEST:\", test_index)\n",
" X_train, X_test = X[train_index], X[test_index]\n",
" y_train, y_test = y[train_index], y[test_index]\n",
" \n",
" \n",
" from datetime import datetime\n",
" trarining_start_time = datetime.now()\n",
"\n",
" clf_svm_linear = SVC(kernel = 'linear',gamma=0.00001,C=0.1)\n",
" clf_svm_linear = clf_svm_linear.fit(X_train, y_train)\n",
" pred = clf_svm_linear.predict(X_test)\n",
" print \"svm linear accuracy score:\" , accuracy_score(y_test,pred)\n",
" print \"f1 score:\" , f1_score(y_test,pred,average='micro')\n",
"\n",
"\n",
" training_stop_time = datetime.now()\n",
"\n",
" print \"runing time:\",(training_stop_time - trarining_start_time)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import StratifiedKFold #交叉验证\n",
"from sklearn.model_selection import GridSearchCV #网格搜索\n",
"from sklearn.model_selection import train_test_split #将数据集分开成训练集和测试集\n",
"from xgboost import XGBClassifier #xgboost\n",
"\n",
"#这个不需要了!\n",
"model = XGBClassifier()\n",
"learning_rate = [0.0001,0.001,0.01,0.1,0.2,0.3] #学习率\n",
"gamma = [1, 0.1, 0.01, 0.001]\n",
"param_grid = dict(learning_rate = learning_rate,gamma = gamma)#转化为字典格式,网络搜索要求\n",
"kflod = StratifiedKFold(n_splits=10, shuffle = True,random_state=7)#将训练/测试数据集划分10个互斥子集,\n",
"grid_search = GridSearchCV(model,param_grid,scoring = 'neg_log_loss',n_jobs = -1,cv = kflod)\n",
"#scoring指定损失函数类型,n_jobs指定全部cpu跑,cv指定交叉验证\n",
"grid_result = grid_search.fit(X_train, y_train) #运行网格搜索\n",
"print(\"Best: %f using %s\" % (grid_result.best_score_,grid_search.best_params_))\n",
"#grid_scores_:给出不同参数情况下的评价结果。best_params_:描述了已取得最佳结果的参数的组合\n",
"#best_score_:成员提供优化过程期间观察到的最好的评分\n",
"#具有键作为列标题和值作为列的dict,可以导入到DataFrame中。\n",
"#注意,“params”键用于存储所有参数候选项的参数设置列表。\n",
"means = grid_result.cv_results_['mean_test_score']\n",
"params = grid_result.cv_results_['params']\n",
"for mean,param in zip(means,params):\n",
" print(\"%f with: %r\" % (mean,param))\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import StratifiedKFold #交叉验证\n",
"from sklearn.model_selection import GridSearchCV #网格搜索\n",
"from sklearn.model_selection import GridSearchCV\n",
"from sklearn import metrics \n",
"#https://blog.csdn.net/WJWFighting/article/details/80983022\n",
"thresholds=np.linspace(0,0.1,20)#设置gamma参数列表,生成等差数列\n",
"thresholds\n",
"param_grid={'gamma':thresholds}\n",
"clf=GridSearchCV(SVC(kernel='rbf'),param_grid,cv=5)\n",
"clf.fit(X_train, y_train)\n",
"\n",
"print(\"best param: {0}\\nbest score: {1}\".format(clf.best_params_, clf.best_score_))\n",
"\n",
"y_pred = clf.predict(X_test)\n",
"\n",
"print(\"查准率:\",metrics.precision_score(y_pred, y_test))\n",
"print(\"召回率:\",metrics.recall_score(y_pred, y_test))\n",
"print(\"F1\",metrics.f1_score(y_pred, y_test))\n",
"\n",
"print(\"最佳效果:%0.3f\"% clf.best_score_)\n",
"print(\"最优参数组合:\")\n",
"best_parameters=clf.best_estimator_.get_params()\n",
"for param_name in sorted(param_grid.keys()):\n",
" print('\\t%s:%r' %(param_name,best_parameters[param_name]))\n",
"\n",
"#print(\"训练集评分:\",clf.score(x_train,y_train))\n",
"#print(\"测试集评分:\",clf.score(x_test,y_test))\n",
"\n",
"\"\"\"\n",
"SVC方法。常用的参数如下:\n",
"C:默认为1.0,是对于错误的惩罚项。\n",
"kernel:指定算法的核函数,默认为'rbf',常用的有'linear''poly''rbf''sigmoid''precomputed'。\n",
"degree:多项式核函数的次数('poly'),默认为3。 其他核函数会将其忽略。\n",
"gamma'rbf''poly'和'sigmoid'的核系数。 如果gamma是'auto',那么将使用1 / n_features。\n",
"\"\"\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"#X_train = train_features_9\n",
"#y_train = train_labels\n",
"# X_test = test_features\n",
"# y_test = test_labels\n",
"#clf_svm_linear = SVC(kernel = 'linear',gamma=0.00001,C=0.01)\n",
"#clf_svm_linear = SVC(kernel = 'linear',gamma=0.01,C=0.01)\n",
"#svm linear accuracy score: 0.9746101835242169\n",
"clf_svm_linear = SVC(kernel = 'linear',C=0.1)\n",
"#svm linear accuracy score: 0.974885004599816\n",
"clf_svm_linear = clf_svm_linear.fit(X_train, y_train)\n",
"# pred = clf_svm_linear.predict(X_test)\n",
"# print \"svm linear accuracy score:\" , accuracy_score(y_test,pred)\n",
"# print \"f1 score:\" , f1_score(y_test,pred,average='micro')\n",
"pred = clf_svm_linear.predict(X_test)\n",
"print (\"svm linear accuracy score:\" , accuracy_score(y_test,pred))\n",
"print (\"f1 score :\" , f1_score(y_test,pred,average=None))\n",
"print (\"precision_score:\" , precision_score(y_test,pred,average=None))\n",
"print (\"recall_score :\" , recall_score(y_test,pred,average=None))\n",
"print(\"preds:\",pred[:10])\n",
"print('trues:\\n',y_test[:10])\n",
"print(\"\\n\")\n",
"###针对同一份数据,\n",
"clf_svc_poly = SVC(kernel='poly',degree=3,gamma=0.001,C=0.1)\n",
"#clf_svc_poly = SVC(kernel='poly',degree=3,gamma=0.00001,C=0.1)\n",
"\n",
"##svm polynomial accuracy score: 0.37460901563937443\n",
"clf_svc_poly.fit(X_train, y_train)\n",
"pred_poly = clf_svc_poly.predict(X_test)\n",
"print (\"svm polynomial accuracy score:\" , accuracy_score(y_test,pred_poly))\n",
"print (\"f1 score :\" , f1_score(y_test,pred_poly,average=None))\n",
"print (\"precision_score:\" , precision_score(y_test,pred_poly,average=None))\n",
"print (\"recall_score :\" , recall_score(y_test,pred_poly,average=None))\n",
"\n",
"clf_svc_rbf = SVC(kernel='rbf', gamma=0.05,C=0.1)\n",
"##svm rbf accuracy score: 0.284360625574977\n",
"clf_svc_rbf.fit(X_train, y_train)\n",
"pred_rbf = clf_svc_rbf.predict(X_test)\n",
"print (\"svm rbf accuracy score:\" , accuracy_score(y_test,pred_rbf))\n",
"print (\"f1 score :\" , f1_score(y_test,pred_rbf,average=None))\n",
"print (\"precision_score:\" , precision_score(y_test,pred_rbf,average=None))\n",
"print (\"recall_score :\" , recall_score(y_test,pred_rbf,average=None))\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sklearn_porter import Porter\n",
"\n",
"porter_clf_svm_linear = Porter(clf_svm_linear, language='c').export()\n",
"#porter_clf_svm_poly = Porter(clf_svm_poly, language='c').export()\n",
"# porter_clf_forest = Porter(clf_randomForest, language='c').export()\n",
"#porter_clf_extra_forest = Porter(clf_extra_forest, language='c').export()\n",
"\n",
"#print(porter_clf_svm_linear)\n",
"f = open(\"clf/clf_svm_linear_50features_2020.cpp\",'wb')\n",
"#f = open(\"clf/clf_svm_linear_50features_20171207.txt\",'wb')\n",
"#f = open(\"clf_svm_linear_125100_low_feature_data.txt\",'wb')\n",
"f.write(porter_clf_svm_linear.encode())\n",
"f.close()\n",
"#f = open(\"clf_svm_poly_2457100_data.txt\",'wb')\n",
"#f.write(porter_clf_svm_poly)\n",
"#f.close()\n",
"# f = open(\"clf/clf_randomForest_27features_stddev_c_0_01.txt\",'wb')\n",
"# f.write(porter_clf_forest)\n",
"# f.close()\n",
"# f = open(\"oclf_extra_forest_2457100_data_0824.txt\",'wb')\n",
"# f.write(porter_clf_extra_forest)\n",
"# f.close()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 随机森林算法"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"#from sklearn.model_selection import KFold\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.metrics import accuracy_score\n",
"from sklearn.svm import SVC\n",
"from sklearn.metrics import f1_score\n",
"from sklearn.metrics import precision_score\n",
"from sklearn.metrics import recall_score\n",
"\n",
"\n",
"from sklearn.ensemble import ExtraTreesClassifier\n",
"from sklearn.ensemble import AdaBoostClassifier\n",
"\n",
"from sklearn.model_selection import train_test_split\n",
"X_train ,X_test,y_train,y_test = train_test_split(train_features_9,train_labels,test_size = 0.3, random_state = 20)\n",
"#X_train ,X_test,y_train,y_test = train_test_split(train_features_9,train_labels,test_size = 0.2, random_state = 20)\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.99 0.98 0.99 1698\n",
" 1 0.99 0.99 0.99 3791\n",
" 2 0.99 0.99 0.99 2548\n",
" 3 0.96 0.97 0.96 2693\n",
" 4 0.98 0.97 0.97 3569\n",
"\n",
" accuracy 0.98 14299\n",
" macro avg 0.98 0.98 0.98 14299\n",
"weighted avg 0.98 0.98 0.98 14299\n",
"\n",
"[[1663 33 1 1 0]\n",
" [ 11 3760 19 1 0]\n",
" [ 1 11 2531 5 0]\n",
" [ 0 0 6 2612 75]\n",
" [ 0 0 0 104 3465]]\n",
"---------------------------------\n",
"\n",
"Accuracy of prediction: 0.379\n",
"RandomForest accuracy score: 0.9812574305895517\n",
"---------------------------------\n",
"\n",
"f1 score: 0.9812574305895517\n",
"precision_score: 0.9812574305895517\n",
"recall_score: 0.9812574305895517\n"
]
}
],
"source": [
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.metrics import classification_report\n",
"from sklearn.metrics import classification_report,confusion_matrix\n",
"from sklearn.metrics import f1_score\n",
"from sklearn.metrics import precision_score\n",
"from sklearn.metrics import recall_score\n",
"\n",
"#rfc = RandomForestClassifier(n_estimators=600)\n",
"\n",
"#rfc = RandomForestClassifier(n_estimators=50)\n",
"#RandomForest accuracy score: 0.9955591300090916\n",
"\n",
"rfc = RandomForestClassifier(n_estimators=50,min_samples_leaf=20)\n",
"#RandomForest accuracy score: 0.9772012028813204/0.9803133086229806/0.9811874956290649/0.9852786908175397\n",
"\n",
"#rfc = RandomForestClassifier(n_estimators=50)\n",
"#RandomForest accuracy score: 0.9955940974893349\n",
"\n",
"#rfc = RandomForestClassifier(n_estimators=100,min_samples_leaf=50)\n",
"#RandomForest accuracy score: 0.97688649555913\n",
"\n",
"#rfc = RandomForestClassifier(n_estimators=50,min_samples_leaf=100)\n",
"#RandomForest accuracy score: 0.9669906986502552\n",
"\n",
"\n",
"rfc.fit(X_train, y_train)\n",
"rfc_pred = rfc.predict(X_test)\n",
"cr = classification_report(y_test,rfc_pred)\n",
"print(cr)\n",
"cm = confusion_matrix(y_test,rfc_pred)\n",
"print(cm)\n",
"\n",
"print(\"---------------------------------\\n\")\n",
"print (\"Accuracy of prediction:\",round((cm[0,0]+cm[1,1])/cm.sum(),3))\n",
"print (\"RandomForest accuracy score:\" , accuracy_score(y_test,rfc_pred))\n",
"print(\"---------------------------------\\n\")\n",
"print (\"f1 score:\" , f1_score(y_test,rfc_pred,average='micro'))\n",
"print (\"precision_score:\" , precision_score(y_test,rfc_pred,average='micro'))\n",
"print (\"recall_score:\" , recall_score(y_test,rfc_pred,average='micro'))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"from sklearn_porter import Porter\n",
"\n",
"porter_clf_rfc = Porter(rfc, language='c').export()\n",
"#porter_clf_svm_poly = Porter(clf_svm_poly, language='c').export()\n",
"# porter_clf_forest = Porter(clf_randomForest, language='c').export()\n",
"#porter_clf_extra_forest = Porter(clf_extra_forest, language='c').export()\n",
"\n",
"#print(porter_clf_svm_linear)\n",
"f = open(\"clf/ov_rtree50_f20_2020428.cpp\",'wb')\n",
"#f = open(\"clf/clf_svm_linear_50features_20171207.txt\",'wb')\n",
"#f = open(\"clf_svm_linear_125100_low_feature_data.txt\",'wb')\n",
"f.write(porter_clf_rfc.encode())\n",
"f.close()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import KFold\n",
"\n",
"X = train_features_9.values\n",
"y = train_labels.values\n",
"\n",
"kf = KFold(n_splits=5)\n",
"kf.get_n_splits(X)\n",
"\n",
"print(kf) \n",
"\n",
"for train_index, test_index in kf.split(X):\n",
" print(\"TRAIN:\", train_index, \"TEST:\", test_index)\n",
" X_train, X_test = X[train_index], X[test_index]\n",
" y_train, y_test = y[train_index], y[test_index]\n",
" \n",
" \n",
" from datetime import datetime\n",
" trarining_start_time = datetime.now()\n",
"\n",
" rfc = RandomForestClassifier(n_estimators=600)\n",
" rfc.fit(X_train, y_train)\n",
" rfc_pred = rfc.predict(X_test) \n",
" print (\"svm linear accuracy score:\" , accuracy_score(y_test,rfc_pred))\n",
" print (\"f1 score:\" , f1_score(y_test,rfc_pred,average='micro'))\n",
" print (\"precision_score:\" , precision_score(y_test,rfc_pred,average='micro'))\n",
" print (\"recall_score:\" , recall_score(y_test,rfc_pred,average='micro'))\n",
"\n",
" training_stop_time = datetime.now()\n",
"\n",
" print (\"runing time:\",(training_stop_time - trarining_start_time))\n",
" print(\"\\n\\n\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"nsimu = 21\n",
"accuracy=[0]*nsimu\n",
"ntree = [0]*nsimu\n",
"for i in range(1,nsimu):\n",
" rfc = RandomForestClassifier(n_estimators=i*5,min_samples_split=10,max_depth=None,criterion='gini')\n",
" rfc.fit(X_train, y_train)\n",
" rfc_pred = rfc.predict(X_test)\n",
" cm = confusion_matrix(y_test,rfc_pred)\n",
" accuracy[i] = (cm[0,0]+cm[1,1])/cm.sum()\n",
" ntree[i]=i*5\n",
"\n",
" print (\"RandomForest accuracy score:\" , accuracy_score(y_test,rfc_pred))\n",
" print (\"f1 score:\" , f1_score(y_test,rfc_pred,average='micro')) \n",
" print (\"Accuracy of prediction:\",round((cm[0,0]+cm[1,1])/cm.sum(),3))\n",
"\n",
" \n",
"plt.figure(figsize=(10,6))\n",
"plt.scatter(x=ntree[1:nsimu],y=accuracy[1:nsimu],s=60,c='red')\n",
"plt.title(\"Number of trees in the Random Forest vs. prediction accuracy (criterion: 'gini')\", fontsize=18)\n",
"plt.xlabel(\"Number of trees\", fontsize=15)\n",
"plt.ylabel(\"Prediction accuracy from confusion matrix\", fontsize=15)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"from sklearn.utils import shuffle\n",
"\n",
"\n",
"# data_shuffle1 = shuffle(data1)\n",
"# #data_shuffle = data_all;\n",
"# test_labels = data_shuffle1[\"index\"]\n",
"# test_features = data_shuffle1.drop(\"dateTime\",axis=1)\n",
"# test_features = test_features.drop(\"index\",axis=1)\n",
"# test_features = test_features.drop(\"whiteBalance\",axis=1)\n",
"\n",
"\n",
"# test_features = test_features.drop(\"left_block_R_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"left_block_G_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"left_block_B_stddev\",axis=1)\n",
"\n",
"# test_features = test_features.drop(\"left_block_H_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"left_block_S_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"left_block_V_stddev\",axis=1)\n",
"\n",
"# test_features = test_features.drop(\"left_block_l_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"left_block_a_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"left_block_b_stddev\",axis=1)\n",
"\n",
"# test_features = test_features.drop(\"right_block_R_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"right_block_G_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"right_block_B_stddev\",axis=1)\n",
"\n",
"# test_features = test_features.drop(\"right_block_H_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"right_block_S_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"right_block_V_stddev\",axis=1)\n",
"\n",
"# test_features = test_features.drop(\"right_block_l_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"right_block_a_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"right_block_b_stddev\",axis=1)\n",
"\n",
"# test_features = test_features.drop(\"whiteBlock_R_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"whiteBlock_G_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"whiteBlock_B_stddev\",axis=1)\n",
"\n",
"# test_features = test_features.drop(\"whiteBlock_H_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"whiteBlock_S_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"whiteBlock_V_stddev\",axis=1)\n",
"\n",
"# test_features = test_features.drop(\"whiteBlock_l_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"whiteBlock_a_stddev\",axis=1)\n",
"# test_features = test_features.drop(\"whiteBlock_b_stddev\",axis=1)\n",
"\n",
"train_features_10 = pd.DataFrame()\n",
"train_features_10['lelf_right_R'] = test_features['left_block_R'] - test_features['right_block_R']\n",
"train_features_10['lelf_right_G'] = test_features['left_block_G'] - test_features['right_block_G']\n",
"train_features_10['lelf_right_B'] = test_features['left_block_B'] - test_features['right_block_B']\n",
"\n",
"train_features_10['lelf_right_H'] = test_features['left_block_H'] - test_features['right_block_H']\n",
"# train_features_10['lelf_right_S'] = test_features['left_block_S'] - test_features['right_block_S']\n",
"train_features_10['lelf_right_V'] = test_features['left_block_V'] - test_features['right_block_V']\n",
"\n",
"train_features_10['lelf_right_l'] = test_features['left_block_l'] - test_features['right_block_l']\n",
"train_features_10['lelf_right_a'] = test_features['left_block_a'] - test_features['right_block_a']\n",
"train_features_10['lelf_right_b'] = test_features['left_block_b'] - test_features['right_block_b']\n",
"\n",
"train_features_10['lelf_right_R_stddev'] = test_features['left_block_R_stddev'] - test_features['right_block_R_stddev']\n",
"train_features_10['lelf_right_G_stddev'] = test_features['left_block_G_stddev'] - test_features['right_block_G_stddev']\n",
"train_features_10['lelf_right_B_stddev'] = test_features['left_block_B_stddev'] - test_features['right_block_B_stddev']\n",
"\n",
"train_features_10['lelf_right_H_stddev'] = test_features['left_block_H_stddev'] - test_features['right_block_H_stddev']\n",
"# train_features_10['lelf_right_S_stddev'] = test_features['left_block_S_stddev'] - test_features['right_block_S_stddev']\n",
"train_features_10['lelf_right_V_stddev'] = test_features['left_block_V_stddev'] - test_features['right_block_V_stddev']\n",
"\n",
"train_features_10['lelf_right_l_stddev'] = test_features['left_block_l_stddev'] - test_features['right_block_l_stddev']\n",
"train_features_10['lelf_right_a_stddev'] = test_features['left_block_a_stddev'] - test_features['right_block_a_stddev']\n",
"train_features_10['lelf_right_b_stddev'] = test_features['left_block_b_stddev'] - test_features['right_block_b_stddev']\n",
"\n",
"train_features_10['lelf_right_R_hist'] = test_features['left_block_R_hist'] - test_features['right_block_R_hist']\n",
"train_features_10['lelf_right_G_hist'] = test_features['left_block_G_hist'] - test_features['right_block_G_hist']\n",
"train_features_10['lelf_right_B_hist'] = test_features['left_block_B_hist'] - test_features['right_block_B_hist']\n",
"\n",
"train_features_10['lelf_right_H_hist'] = test_features['left_block_H_hist'] - test_features['right_block_H_hist']\n",
"# train_features_10['lelf_right_S_hist'] = test_features['left_block_S_hist'] - test_features['right_block_S_hist']\n",
"train_features_10['lelf_right_V_hist'] = test_features['left_block_V_hist'] - test_features['right_block_V_hist']\n",
"\n",
"train_features_10['lelf_right_l_hist'] = test_features['left_block_l_hist'] - test_features['right_block_l_hist']\n",
"train_features_10['lelf_right_a_hist'] = test_features['left_block_a_hist'] - test_features['right_block_a_hist']\n",
"train_features_10['lelf_right_b_hist'] = test_features['left_block_b_hist'] - test_features['right_block_b_hist']\n",
"\n",
"train_features_10['lelf_right_R_max'] = test_features['left_block_R_max'] - test_features['right_block_R_max']\n",
"train_features_10['lelf_right_G_max'] = test_features['left_block_G_max'] - test_features['right_block_G_max']\n",
"train_features_10['lelf_right_B_max'] = test_features['left_block_B_max'] - test_features['right_block_B_max']\n",
"\n",
"train_features_10['lelf_right_H_max'] = test_features['left_block_H_max'] - test_features['right_block_H_max']\n",
"# train_features_10['lelf_right_S_max'] = test_features['left_block_S_max'] - test_features['right_block_S_max']\n",
"train_features_10['lelf_right_V_max'] = test_features['left_block_V_max'] - test_features['right_block_V_max']\n",
"\n",
"train_features_10['lelf_right_l_max'] = test_features['left_block_l_max'] - test_features['right_block_l_max']\n",
"train_features_10['lelf_right_a_max'] = test_features['left_block_a_max'] - test_features['right_block_a_max']\n",
"train_features_10['lelf_right_b_max'] = test_features['left_block_b_max'] - test_features['right_block_b_max']\n",
"\n",
"\n",
"train_features_10['lelf_right_R_min'] = test_features['left_block_R_min'] - test_features['right_block_R_min']\n",
"train_features_10['lelf_right_G_min'] = test_features['left_block_G_min'] - test_features['right_block_G_min']\n",
"train_features_10['lelf_right_B_min'] = test_features['left_block_B_min'] - test_features['right_block_B_min']\n",
"\n",
"train_features_10['lelf_right_H_min'] = test_features['left_block_H_min'] - test_features['right_block_H_min']\n",
"# train_features_10['lelf_right_S_min'] = test_features['left_block_S_min'] - test_features['right_block_S_min']\n",
"train_features_10['lelf_right_V_min'] = test_features['left_block_V_min'] - test_features['right_block_V_min']\n",
"\n",
"train_features_10['lelf_right_l_min'] = test_features['left_block_l_min'] - test_features['right_block_l_min']\n",
"train_features_10['lelf_right_a_min'] = test_features['left_block_a_min'] - test_features['right_block_a_min']\n",
"train_features_10['lelf_right_b_min'] = test_features['left_block_b_min'] - test_features['right_block_b_min']\n",
"\n",
"# train_features_10['left_grayValue']= test_features['left_grayValue'];\n",
"# train_features_10['left_grayStddevValue']= test_features['left_grayStddevValue'];\n",
"# train_features_10['left_grayHist']= test_features['left_grayHist'];\n",
"# train_features_10['left_grayMax']= test_features['left_grayMax'];\n",
"# train_features_10['left_grayMin']= test_features['left_grayMin'];\n",
"\n",
"# train_features_10['right_grayValue']= test_features['right_grayValue'];\n",
"# train_features_10['right_grayStddevValue']= test_features['right_grayStddevValue'];\n",
"# train_features_10['right_grayHist']= test_features['right_grayHist'];\n",
"# train_features_10['right_grayMax']= test_features['right_grayMax'];\n",
"# train_features_10['right_grayMin']= test_features['right_grayMin'];\n",
"\n",
"# train_features_10['lelf_R_stddev'] = test_features['left_block_R_stddev'] \n",
"# train_features_10['lelf_G_stddev'] = test_features['left_block_G_stddev'] \n",
"# train_features_10['lelf_B_stddev'] = test_features['left_block_B_stddev'] \n",
"\n",
"# train_features_10['left_block_R_min'] = test_features['left_block_R_min'] \n",
"# train_features_10['left_block_G_min'] = test_features['left_block_G_min'] \n",
"# train_features_10['left_block_B_min'] = test_features['left_block_B_min'] \n",
"\n",
"\n",
"\n",
"train_features_10['lelf_right_gray_value'] = test_features['left_grayValue'] - test_features['right_grayValue']\n",
"train_features_10['lelf_right_gray_stddev'] = test_features['left_grayStddevValue'] - test_features['right_grayStddevValue']\n",
"train_features_10['lelf_right_gray_hist'] = test_features['left_grayHist'] - test_features['right_grayHist']\n",
"train_features_10['lelf_right_gray_max'] = test_features['left_grayMax'] - test_features['right_grayMax']\n",
"train_features_10['lelf_right_gray_min'] = test_features['left_grayMin'] - test_features['right_grayMin']\n",
"\n",
"train_features_10.describe()\n",
"\n",
"\n",
"# feature = feature.drop(\"left_block_H_hist\",axis=1)\n",
"# feature = feature.drop(\"right_block_H_hist\",axis=1)\n",
"# feature = feature.drop(\"whiteBlock_H_hist\",axis=1)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
" \n",
"test_features = test_features.drop(\"left_block_H\",axis=1)\n",
"test_features = test_features.drop(\"left_block_S\",axis=1)\n",
"test_features = test_features.drop(\"left_block_V\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"right_block_H\",axis=1)\n",
"test_features = test_features.drop(\"right_block_S\",axis=1)\n",
"test_features = test_features.drop(\"right_block_V\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"whiteBlock_H\",axis=1)\n",
"test_features = test_features.drop(\"whiteBlock_S\",axis=1)\n",
"test_features = test_features.drop(\"whiteBlock_V\",axis=1)\n",
"\n",
"\n",
"test_features = test_features.drop(\"left_block_H_stddev\",axis=1)\n",
"test_features = test_features.drop(\"left_block_S_stddev\",axis=1)\n",
"test_features = test_features.drop(\"left_block_V_stddev\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"right_block_H_stddev\",axis=1)\n",
"test_features = test_features.drop(\"right_block_S_stddev\",axis=1)\n",
"test_features = test_features.drop(\"right_block_V_stddev\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"whiteBlock_H_stddev\",axis=1)\n",
"test_features = test_features.drop(\"whiteBlock_S_stddev\",axis=1)\n",
"test_features = test_features.drop(\"whiteBlock_V_stddev\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"left_block_H_hist\",axis=1)\n",
"test_features = test_features.drop(\"left_block_S_hist\",axis=1)\n",
"test_features = test_features.drop(\"left_block_V_hist\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"right_block_H_hist\",axis=1)\n",
"test_features = test_features.drop(\"right_block_S_hist\",axis=1)\n",
"test_features = test_features.drop(\"right_block_V_hist\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"whiteBlock_H_hist\",axis=1)\n",
"test_features = test_features.drop(\"whiteBlock_S_hist\",axis=1)\n",
"test_features = test_features.drop(\"whiteBlock_V_hist\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"left_block_H_max\",axis=1)\n",
"test_features = test_features.drop(\"left_block_S_max\",axis=1)\n",
"test_features = test_features.drop(\"left_block_V_max\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"right_block_H_max\",axis=1)\n",
"test_features = test_features.drop(\"right_block_S_max\",axis=1)\n",
"test_features = test_features.drop(\"right_block_V_max\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"whiteBlock_H_max\",axis=1)\n",
"test_features = test_features.drop(\"whiteBlock_S_max\",axis=1)\n",
"test_features = test_features.drop(\"whiteBlock_V_max\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"left_block_H_min\",axis=1)\n",
"test_features = test_features.drop(\"left_block_S_min\",axis=1)\n",
"test_features = test_features.drop(\"left_block_V_min\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"right_block_H_min\",axis=1)\n",
"test_features = test_features.drop(\"right_block_S_min\",axis=1)\n",
"test_features = test_features.drop(\"right_block_V_min\",axis=1)\n",
"\n",
"test_features = test_features.drop(\"whiteBlock_H_min\",axis=1)\n",
"test_features = test_features.drop(\"whiteBlock_S_min\",axis=1)\n",
"test_features = test_features.drop(\"whiteBlock_V_min\",axis=1)\n",
" \n",
" \n",
"test_features['lelf_right_R'] = test_features['left_block_R'] - test_features['right_block_R']\n",
"test_features['lelf_right_G'] = test_features['left_block_G'] - test_features['right_block_G']\n",
"test_features['lelf_right_B'] = test_features['left_block_B'] - test_features['right_block_B']\n",
"\n",
"# test_features['lelf_right_H'] = test_features['left_block_H'] - test_features['right_block_H']\n",
"# test_features['lelf_right_S'] = test_features['left_block_S'] - test_features['right_block_S']\n",
"# test_features['lelf_right_V'] = test_features['left_block_V'] - test_features['right_block_V']\n",
"\n",
"# test_features['lelf_right_l'] = test_features['left_block_l'] - test_features['right_block_l']\n",
"# test_features['lelf_right_a'] = test_features['left_block_a'] - test_features['right_block_a']\n",
"# test_features['lelf_right_b'] = test_features['left_block_b'] - test_features['right_block_b']\n",
"\n",
"# test_features['lelf_right_R_stddev'] = test_features['left_block_R_stddev'] - test_features['right_block_R_stddev']\n",
"# test_features['lelf_right_G_stddev'] = test_features['left_block_G_stddev'] - test_features['right_block_G_stddev']\n",
"# test_features['lelf_right_B_stddev'] = test_features['left_block_B_stddev'] - test_features['right_block_B_stddev']\n",
"\n",
"# test_features['lelf_right_H_stddev'] = test_features['left_block_H_stddev'] - test_features['right_block_H_stddev']\n",
"# test_features['lelf_right_S_stddev'] = test_features['left_block_S_stddev'] - test_features['right_block_S_stddev']\n",
"# test_features['lelf_right_V_stddev'] = test_features['left_block_V_stddev'] - test_features['right_block_V_stddev']\n",
"\n",
"# test_features['lelf_right_l_stddev'] = test_features['left_block_l_stddev'] - test_features['right_block_l_stddev']\n",
"# test_features['lelf_right_a_stddev'] = test_features['left_block_a_stddev'] - test_features['right_block_a_stddev']\n",
"# test_features['lelf_right_b_stddev'] = test_features['left_block_b_stddev'] - test_features['right_block_b_stddev']\n",
"\n",
"# test_features['lelf_right_R_hist'] = test_features['left_block_R_hist'] - test_features['right_block_R_hist']\n",
"# test_features['lelf_right_G_hist'] = test_features['left_block_G_hist'] - test_features['right_block_G_hist']\n",
"# test_features['lelf_right_B_hist'] = test_features['left_block_B_hist'] - test_features['right_block_B_hist']\n",
"\n",
"# test_features['lelf_right_H_hist'] = test_features['left_block_H_hist'] - test_features['right_block_H_hist']\n",
"# test_features['lelf_right_S_hist'] = test_features['left_block_S_hist'] - test_features['right_block_S_hist']\n",
"# test_features['lelf_right_V_hist'] = test_features['left_block_V_hist'] - test_features['right_block_V_hist']\n",
"\n",
"# test_features['lelf_right_l_hist'] = test_features['left_block_l_hist'] - test_features['right_block_l_hist']\n",
"# test_features['lelf_right_a_hist'] = test_features['left_block_a_hist'] - test_features['right_block_a_hist']\n",
"# test_features['lelf_right_b_hist'] = test_features['left_block_b_hist'] - test_features['right_block_b_hist']\n",
"\n",
"# test_features['lelf_right_R_max'] = test_features['left_block_R_max'] - test_features['right_block_R_max']\n",
"# test_features['lelf_right_G_max'] = test_features['left_block_G_max'] - test_features['right_block_G_max']\n",
"# test_features['lelf_right_B_max'] = test_features['left_block_B_max'] - test_features['right_block_B_max']\n",
"\n",
"# test_features['lelf_right_H_max'] = test_features['left_block_H_max'] - test_features['right_block_H_max']\n",
"# test_features['lelf_right_S_max'] = test_features['left_block_S_max'] - test_features['right_block_S_max']\n",
"# test_features['lelf_right_V_max'] = test_features['left_block_V_max'] - test_features['right_block_V_max']\n",
"\n",
"# test_features['lelf_right_l_max'] = test_features['left_block_l_max'] - test_features['right_block_l_max']\n",
"# test_features['lelf_right_a_max'] = test_features['left_block_a_max'] - test_features['right_block_a_max']\n",
"# test_features['lelf_right_b_max'] = test_features['left_block_b_max'] - test_features['right_block_b_max']\n",
"\n",
"\n",
"\n",
"# test_features['lelf_right_R_min'] = test_features['left_block_R_min'] - test_features['right_block_R_min']\n",
"# test_features['lelf_right_G_min'] = test_features['left_block_G_min'] - test_features['right_block_G_min']\n",
"# test_features['lelf_right_B_min'] = test_features['left_block_B_min'] - test_features['right_block_B_min']\n",
"\n",
"# test_features['lelf_right_H_min'] = test_features['left_block_H_min'] - test_features['right_block_H_min']\n",
"# test_features['lelf_right_S_min'] = test_features['left_block_S_min'] - test_features['right_block_S_min']\n",
"# test_features['lelf_right_V_min'] = test_features['left_block_V_min'] - test_features['right_block_V_min']\n",
"\n",
"# test_features['lelf_right_l_min'] = test_features['left_block_l_min'] - test_features['right_block_l_min']\n",
"# test_features['lelf_right_a_min'] = test_features['left_block_a_min'] - test_features['right_block_a_min']\n",
"# test_features['lelf_right_b_min'] = test_features['left_block_b_min'] - test_features['right_block_b_min']\n",
"\n",
"test_features['lelf_right_gray_value'] = test_features['left_grayValue'] - test_features['right_grayValue']\n",
"test_features['lelf_right_gray_stddev'] = test_features['left_grayStddevValue'] - test_features['right_grayStddevValue']\n",
"test_features['lelf_right_gray_hist'] = test_features['left_grayHist'] - test_features['right_grayHist']\n",
"test_features['lelf_right_gray_max'] = test_features['left_grayMax'] - test_features['right_grayMax']\n",
"test_features['lelf_right_gray_min'] = test_features['left_grayMin'] - test_features['right_grayMin']\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"pred = clf_svm_linear.predict(train_features_10)\n",
"test_features_gray_stddev = test_features['left_grayStddevValue']\n",
"test_features_np = np.ndarray(test_features_gray_stddev.shape,dtype = np.float32)\n",
"\n",
"test_features_np = test_features_gray_stddev.values\n",
"print \"svm linear accuracy score:\" , accuracy_score(test_labels,pred)\n",
"print \"f1 score:\" , f1_score(test_labels,pred,average='micro')\n",
"print \"recall_score :\" , recall_score(test_labels,pred,average='micro')\n",
"print \"precision_score :\" , precision_score(test_labels,pred,average='micro')\n",
"\n",
"for i in range(0, len(test_features_np)):\n",
" if test_features_np[i] < 3:\n",
" pred[i] =0\n",
"print \"svm linear accuracy score:\" , accuracy_score(test_labels,pred)\n",
"print \"f1 score:\" , f1_score(test_labels,pred,average='micro')\n",
"print \"recall_score :\" , recall_score(test_labels,pred,average='micro')\n",
"print \"precision_score :\" , precision_score(test_labels,pred,average='micro')\n",
"\n",
"\n",
"print(\"preds:\",pred[120:130])\n",
"print('trues:\\n',test_labels[120:130])\n",
"test_labels_np = np.ndarray(test_labels.shape,dtype= np.int32)\n",
"test_labels_np = test_labels.values\n",
"print(test_labels_np[0])\n",
"all_counter = 0\n",
"counter = 0\n",
"for i in range(0 ,len(pred) ):\n",
" if (pred[i] == 4 or (pred[i] == 4 and test_labels_np[i] ==4 )or test_labels_np[i] ==4 ) :\n",
" all_counter = all_counter + 1\n",
" if pred[i] != test_labels_np[i] :\n",
" counter = counter+1\n",
" print(pred[i] , test_labels_np[i])\n",
"print(len(pred),all_counter, counter) \n",
"all_counter = 0\n",
"counter = 0\n",
"for i in range(0 ,len(pred) ):\n",
" if pred[i] != test_labels_np[i] :\n",
" counter = counter+1\n",
" print(pred[i] , test_labels_np[i])\n",
"print(len(pred),all_counter, counter) \n",
"\n",
"# print \"svm linear accuracy score:\" , accuracy_score(test_labels,pred)\n",
"# print \"f1 score:\" , f1_score(test_labels,pred,average='micro')\n",
"# print \"recall_score :\" , recall_score(test_labels,pred,average='micro')\n",
"# print \"precision_score :\" , precision_score(test_labels,pred,average='micro')\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## from sklearn.metrics import recall_score\n",
"from sklearn.metrics import precision_score\n",
"print \"accuracy score:\" , accuracy_score(y_test,pred)\n",
"print \"recall_score :\" , recall_score(y_test,pred,average='macro')\n",
"print \"precision_score :\" , precision_score(y_test,pred,average='macro')\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sklearn_porter import Porter\n",
"\n",
"porter_java = Porter(clf_svm, language='java').export()\n",
"porter_c = Porter(clf_svm, language='c').export()\n",
"\n",
"f = open(\"Protein_c.txt\",'wb')\n",
"f.write(porter_c)\n",
"f.close()\n",
"\n",
"f = open(\"Protein_svm_java.txt\",'wb')\n",
"f.write(porter_java)\n",
"f.close()"
]
}
],
"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.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}