{ "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(\"ovdata.csv\")\n", " data2 = pd.read_csv(\"ovdataMore.csv\")\n", " data3 = pd.read_csv(\"ov_data_2020.csv\")\n", " data4 = pd.read_csv(\"data10more.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": "markdown", "metadata": {}, "source": [ "# 3. **分析数据**" ] }, { "cell_type": "code", "execution_count": 3, "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 = pd.concat([data1, data2, data3, data4], ignore_index=True)\n", "data_all = data[data[\"whiteBalance\"] == 0]\n", "print(data_all.describe())\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "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", "fig = plt.figure(figsize=(10,8))\n", "ax = fig.add_subplot(111, projection='3d')\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, "jupyter": { "outputs_hidden": true } }, "source": [ "hsv max min hist value h值要去掉" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 预处理数据" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
| \n", " | left_block_R | \n", "left_block_G | \n", "left_block_B | \n", "left_block_H | \n", "left_block_S | \n", "left_block_V | \n", "left_block_l | \n", "left_block_a | \n", "left_block_b | \n", "left_block_R_stddev | \n", "... | \n", "right_grayStddevValue | \n", "right_grayHist | \n", "right_grayMax | \n", "right_grayMin | \n", "white_grayValue | \n", "white_grayStddevValue | \n", "white_grayHist | \n", "white_grayMax | \n", "white_grayMin | \n", "Unnamed: 0 | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "... | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "5714.000000 | \n", "
| mean | \n", "180.289098 | \n", "153.385590 | \n", "160.582351 | \n", "178.323906 | \n", "44.126600 | \n", "181.053984 | \n", "167.856427 | \n", "139.075259 | \n", "127.747241 | \n", "12.002476 | \n", "... | \n", "19.333809 | \n", "153.983719 | \n", "194.762725 | \n", "122.369645 | \n", "201.867903 | \n", "0.263627 | \n", "202.181276 | \n", "203.812240 | \n", "200.900340 | \n", "1289.203710 | \n", "
| std | \n", "21.700504 | \n", "35.551055 | \n", "32.701433 | \n", "78.575314 | \n", "26.848687 | \n", "22.735616 | \n", "30.366616 | \n", "7.378973 | \n", "3.389799 | \n", "7.959948 | \n", "... | \n", "4.071411 | \n", "22.848103 | \n", "12.987519 | \n", "18.713574 | \n", "13.437574 | \n", "0.556166 | \n", "14.096635 | \n", "13.327305 | \n", "13.602098 | \n", "850.267883 | \n", "
| min | \n", "58.000000 | \n", "33.000000 | \n", "34.000000 | \n", "0.000000 | \n", "0.000000 | \n", "58.000000 | \n", "41.000000 | \n", "121.000000 | \n", "114.000000 | \n", "0.000000 | \n", "... | \n", "1.000000 | \n", "28.000000 | \n", "91.000000 | \n", "24.000000 | \n", "102.000000 | \n", "0.000000 | \n", "0.000000 | \n", "103.000000 | \n", "101.000000 | \n", "0.000000 | \n", "
| 25% | \n", "162.000000 | \n", "122.000000 | \n", "134.000000 | \n", "155.000000 | \n", "18.000000 | \n", "163.000000 | \n", "142.000000 | \n", "133.000000 | \n", "126.000000 | \n", "4.000000 | \n", "... | \n", "16.000000 | \n", "139.000000 | \n", "189.000000 | \n", "110.000000 | \n", "196.000000 | \n", "0.000000 | \n", "196.000000 | \n", "198.000000 | \n", "194.000000 | \n", "570.250000 | \n", "
| 50% | \n", "181.000000 | \n", "153.000000 | \n", "159.000000 | \n", "217.000000 | \n", "45.000000 | \n", "181.000000 | \n", "169.000000 | \n", "140.000000 | \n", "128.000000 | \n", "11.000000 | \n", "... | \n", "19.000000 | \n", "151.000000 | \n", "196.000000 | \n", "120.000000 | \n", "202.000000 | \n", "0.000000 | \n", "202.000000 | \n", "204.000000 | \n", "201.000000 | \n", "1146.000000 | \n", "
| 75% | \n", "198.000000 | \n", "188.000000 | \n", "190.000000 | \n", "236.000000 | \n", "68.000000 | \n", "198.000000 | \n", "197.000000 | \n", "146.000000 | \n", "130.000000 | \n", "19.000000 | \n", "... | \n", "23.000000 | \n", "170.000000 | \n", "202.000000 | \n", "137.000000 | \n", "207.000000 | \n", "0.000000 | \n", "208.000000 | \n", "209.000000 | \n", "207.000000 | \n", "1981.500000 | \n", "
| max | \n", "255.000000 | \n", "255.000000 | \n", "255.000000 | \n", "250.000000 | \n", "148.000000 | \n", "255.000000 | \n", "255.000000 | \n", "154.000000 | \n", "144.000000 | \n", "32.000000 | \n", "... | \n", "31.000000 | \n", "251.000000 | \n", "255.000000 | \n", "242.000000 | \n", "255.000000 | \n", "17.000000 | \n", "254.000000 | \n", "255.000000 | \n", "255.000000 | \n", "3226.000000 | \n", "
8 rows × 151 columns
\n", "| \n", " | left_block_H | \n", "left_block_S | \n", "left_block_V | \n", "left_block_H_stddev | \n", "left_block_S_stddev | \n", "left_block_V_stddev | \n", "left_block_H_hist | \n", "left_block_S_hist | \n", "left_block_V_hist | \n", "left_block_H_max | \n", "... | \n", "right_grayStddevValue | \n", "right_grayHist | \n", "right_grayMax | \n", "right_grayMin | \n", "white_grayValue | \n", "white_grayStddevValue | \n", "white_grayHist | \n", "white_grayMax | \n", "white_grayMin | \n", "Unnamed: 0 | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "... | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "47662.000000 | \n", "5714.000000 | \n", "
| mean | \n", "178.323906 | \n", "44.126600 | \n", "181.053984 | \n", "43.021065 | \n", "15.540305 | \n", "12.169422 | \n", "190.262473 | \n", "46.346733 | \n", "175.487516 | \n", "223.877953 | \n", "... | \n", "19.333809 | \n", "153.983719 | \n", "194.762725 | \n", "122.369645 | \n", "201.867903 | \n", "0.263627 | \n", "202.181276 | \n", "203.812240 | \n", "200.900340 | \n", "1289.203710 | \n", "
| std | \n", "78.575314 | \n", "26.848687 | \n", "22.735616 | \n", "40.288076 | \n", "12.172598 | \n", "7.836819 | \n", "90.841316 | \n", "35.802194 | \n", "31.034195 | \n", "68.285041 | \n", "... | \n", "4.071411 | \n", "22.848103 | \n", "12.987519 | \n", "18.713574 | \n", "13.437574 | \n", "0.556166 | \n", "14.096635 | \n", "13.327305 | \n", "13.602098 | \n", "850.267883 | \n", "
| min | \n", "0.000000 | \n", "0.000000 | \n", "58.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "0.000000 | \n", "... | \n", "1.000000 | \n", "28.000000 | \n", "91.000000 | \n", "24.000000 | \n", "102.000000 | \n", "0.000000 | \n", "0.000000 | \n", "103.000000 | \n", "101.000000 | \n", "0.000000 | \n", "
| 25% | \n", "155.000000 | \n", "18.000000 | \n", "163.000000 | \n", "5.000000 | \n", "4.000000 | \n", "5.000000 | \n", "187.000000 | \n", "19.000000 | \n", "153.000000 | \n", "242.000000 | \n", "... | \n", "16.000000 | \n", "139.000000 | \n", "189.000000 | \n", "110.000000 | \n", "196.000000 | \n", "0.000000 | \n", "196.000000 | \n", "198.000000 | \n", "194.000000 | \n", "570.250000 | \n", "
| 50% | \n", "217.000000 | \n", "45.000000 | \n", "181.000000 | \n", "31.000000 | \n", "15.000000 | \n", "11.000000 | \n", "239.000000 | \n", "33.000000 | \n", "182.000000 | \n", "253.000000 | \n", "... | \n", "19.000000 | \n", "151.000000 | \n", "196.000000 | \n", "120.000000 | \n", "202.000000 | \n", "0.000000 | \n", "202.000000 | \n", "204.000000 | \n", "201.000000 | \n", "1146.000000 | \n", "
| 75% | \n", "236.000000 | \n", "68.000000 | \n", "198.000000 | \n", "75.000000 | \n", "26.000000 | \n", "19.000000 | \n", "244.000000 | \n", "72.000000 | \n", "200.000000 | \n", "254.000000 | \n", "... | \n", "23.000000 | \n", "170.000000 | \n", "202.000000 | \n", "137.000000 | \n", "207.000000 | \n", "0.000000 | \n", "208.000000 | \n", "209.000000 | \n", "207.000000 | \n", "1981.500000 | \n", "
| max | \n", "250.000000 | \n", "148.000000 | \n", "255.000000 | \n", "125.000000 | \n", "64.000000 | \n", "32.000000 | \n", "254.000000 | \n", "236.000000 | \n", "254.000000 | \n", "255.000000 | \n", "... | \n", "31.000000 | \n", "251.000000 | \n", "255.000000 | \n", "242.000000 | \n", "255.000000 | \n", "17.000000 | \n", "254.000000 | \n", "255.000000 | \n", "255.000000 | \n", "3226.000000 | \n", "
8 rows × 61 columns
\n", "