{ "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": [ "
| \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", " | lelf_right_R | \n", "lelf_right_G | \n", "lelf_right_B | \n", "lelf_right_H | \n", "lelf_right_S | \n", "lelf_right_V | \n", "lelf_right_l | \n", "lelf_right_a | \n", "lelf_right_b | \n", "lelf_right_R_stddev | \n", "... | \n", "lelf_right_S_min | \n", "lelf_right_V_min | \n", "lelf_right_l_min | \n", "lelf_right_a_min | \n", "lelf_right_b_min | \n", "lelf_right_gray_value | \n", "lelf_right_gray_stddev | \n", "lelf_right_gray_hist | \n", "lelf_right_gray_max | \n", "lelf_right_gray_min | \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", "47662.000000 | \n", "
| mean | \n", "1.524611 | \n", "7.414355 | \n", "4.993936 | \n", "-29.645441 | \n", "-4.300512 | \n", "2.048382 | \n", "5.319017 | \n", "-2.462255 | \n", "0.554404 | \n", "-1.499895 | \n", "... | \n", "-9.937833 | \n", "-0.313226 | \n", "12.762725 | \n", "-0.956968 | \n", "0.740821 | \n", "5.371596 | \n", "-2.692417 | \n", "-2.581889 | \n", "0.880219 | \n", "12.910872 | \n", "
| std | \n", "19.877693 | \n", "32.676594 | \n", "26.320205 | \n", "69.628184 | \n", "23.357776 | \n", "20.539508 | \n", "27.817984 | \n", "6.565894 | \n", "1.498175 | \n", "8.691766 | \n", "... | \n", "41.795104 | \n", "6.608920 | \n", "43.965507 | \n", "2.272874 | \n", "2.203069 | \n", "28.070441 | \n", "11.119842 | \n", "46.145429 | \n", "9.529551 | \n", "43.804821 | \n", "
| min | \n", "-37.000000 | \n", "-52.000000 | \n", "-45.000000 | \n", "-242.000000 | \n", "-60.000000 | \n", "-37.000000 | \n", "-46.000000 | \n", "-17.000000 | \n", "-3.000000 | \n", "-21.000000 | \n", "... | \n", "-124.000000 | \n", "-24.000000 | \n", "-74.000000 | \n", "-9.000000 | \n", "-5.000000 | \n", "-46.000000 | \n", "-27.000000 | \n", "-251.000000 | \n", "-28.000000 | \n", "-70.000000 | \n", "
| 25% | \n", "-18.000000 | \n", "-25.000000 | \n", "-21.000000 | \n", "-41.000000 | \n", "-26.000000 | \n", "-18.000000 | \n", "-22.000000 | \n", "-9.000000 | \n", "-1.000000 | \n", "-8.000000 | \n", "... | \n", "-47.000000 | \n", "-5.000000 | \n", "-28.000000 | \n", "-3.000000 | \n", "-1.000000 | \n", "-22.000000 | \n", "-12.000000 | \n", "-42.000000 | \n", "-6.000000 | \n", "-28.000000 | \n", "
| 50% | \n", "2.000000 | \n", "8.000000 | \n", "7.000000 | \n", "-2.000000 | \n", "-7.000000 | \n", "2.000000 | \n", "6.000000 | \n", "-2.000000 | \n", "0.000000 | \n", "-3.000000 | \n", "... | \n", "-13.000000 | \n", "-1.000000 | \n", "16.000000 | \n", "-1.000000 | \n", "0.000000 | \n", "6.000000 | \n", "-4.000000 | \n", "2.000000 | \n", "1.000000 | \n", "15.000000 | \n", "
| 75% | \n", "21.000000 | \n", "41.000000 | \n", "31.000000 | \n", "6.000000 | \n", "18.000000 | \n", "22.000000 | \n", "34.000000 | \n", "4.000000 | \n", "2.000000 | \n", "6.000000 | \n", "... | \n", "29.000000 | \n", "4.000000 | \n", "49.000000 | \n", "1.000000 | \n", "2.000000 | \n", "34.000000 | \n", "8.000000 | \n", "39.000000 | \n", "9.000000 | \n", "50.000000 | \n", "
| max | \n", "41.000000 | \n", "66.000000 | \n", "51.000000 | \n", "140.000000 | \n", "68.000000 | \n", "50.000000 | \n", "56.000000 | \n", "11.000000 | \n", "7.000000 | \n", "18.000000 | \n", "... | \n", "138.000000 | \n", "29.000000 | \n", "101.000000 | \n", "7.000000 | \n", "10.000000 | \n", "56.000000 | \n", "20.000000 | \n", "101.000000 | \n", "39.000000 | \n", "100.000000 | \n", "
8 rows × 50 columns
\n", "