Advertisement

sklearn代码6 6-KNN癌症诊断

阅读量:
复制代码
    import numpy as np
    
    import pandas as pd
    
    from pandas import Series,DataFrame
    
    from sklearn.neighbors import KNeighborsClassifier
    
    from sklearn.model_selection import train_test_split
    
    # grid网格 search搜索 cv:cross_validation
    # 搜索算法最合适的参数
    from sklearn.model_selection import GridSearchCV
复制代码
    cancer = pd.read_csv('./cancer.csv',sep='\t')  # 名字中不可以含有汉字符
    cancer
ID Diagnosis radius_mean texture_mean perimeter_mean area_mean smoothness_mean compactness_mean concavity_mean concave_mean ... radius_max texture_max perimeter_max area_max smoothness_max compactness_max concavity_max concave_max symmetry_max fractal_max
0 842302 M 17.990 10.38 122.80 1001.0 0.11840 0.27760 0.300100 0.147100 ... 25.380 17.33 184.60 2019.0 0.16220 0.66560 0.71190 0.26540 0.4601 0.11890
1 842517 M 20.570 17.77 132.90 1326.0 0.08474 0.07864 0.086900 0.070170 ... 24.990 23.41 158.80 1956.0 0.12380 0.18660 0.24160 0.18600 0.2750 0.08902
2 84300903 M 19.690 21.25 130.00 1203.0 0.10960 0.15990 0.197400 0.127900 ... 23.570 25.53 152.50 1709.0 0.14440 0.42450 0.45040 0.24300 0.3613 0.08758
3 84348301 M 11.420 20.38 77.58 386.1 0.14250 0.28390 0.241400 0.105200 ... 14.910 26.50 98.87 567.7 0.20980 0.86630 0.68690 0.25750 0.6638 0.17300
4 84358402 M 20.290 14.34 135.10 1297.0 0.10030 0.13280 0.198000 0.104300 ... 22.540 16.67 152.20 1575.0 0.13740 0.20500 0.40000 0.16250 0.2364 0.07678
5 843786 M 12.450 15.70 82.57 477.1 0.12780 0.17000 0.157800 0.080890 ... 15.470 23.75 103.40 741.6 0.17910 0.52490 0.53550 0.17410 0.3985 0.12440
6 844359 M 18.250 19.98 119.60 1040.0 0.09463 0.10900 0.112700 0.074000 ... 22.880 27.66 153.20 1606.0 0.14420 0.25760 0.37840 0.19320 0.3063 0.08368
7 84458202 M 13.710 20.83 90.20 577.9 0.11890 0.16450 0.093660 0.059850 ... 17.060 28.14 110.60 897.0 0.16540 0.36820 0.26780 0.15560 0.3196 0.11510
8 844981 M 13.000 21.82 87.50 519.8 0.12730 0.19320 0.185900 0.093530 ... 15.490 30.73 106.20 739.3 0.17030 0.54010 0.53900 0.20600 0.4378 0.10720
9 84501001 M 12.460 24.04 83.97 475.9 0.11860 0.23960 0.227300 0.085430 ... 15.090 40.68 97.65 711.4 0.18530 1.05800 1.10500 0.22100 0.4366 0.20750
10 845636 M 16.020 23.24 102.70 797.8 0.08206 0.06669 0.032990 0.033230 ... 19.190 33.88 123.80 1150.0 0.11810 0.15510 0.14590 0.09975 0.2948 0.08452
11 84610002 M 15.780 17.89 103.60 781.0 0.09710 0.12920 0.099540 0.066060 ... 20.420 27.28 136.50 1299.0 0.13960 0.56090 0.39650 0.18100 0.3792 0.10480
12 846226 M 19.170 24.80 132.40 1123.0 0.09740 0.24580 0.206500 0.111800 ... 20.960 29.94 151.70 1332.0 0.10370 0.39030 0.36390 0.17670 0.3176 0.10230
13 846381 M 15.850 23.95 103.70 782.7 0.08401 0.10020 0.099380 0.053640 ... 16.840 27.66 112.00 876.5 0.11310 0.19240 0.23220 0.11190 0.2809 0.06287
14 84667401 M 13.730 22.61 93.60 578.3 0.11310 0.22930 0.212800 0.080250 ... 15.030 32.01 108.80 697.7 0.16510 0.77250 0.69430 0.22080 0.3596 0.14310
15 84799002 M 14.540 27.54 96.73 658.8 0.11390 0.15950 0.163900 0.073640 ... 17.460 37.13 124.10 943.2 0.16780 0.65770 0.70260 0.17120 0.4218 0.13410
16 848406 M 14.680 20.13 94.74 684.5 0.09867 0.07200 0.073950 0.052590 ... 19.070 30.88 123.40 1138.0 0.14640 0.18710 0.29140 0.16090 0.3029 0.08216
17 84862001 M 16.130 20.68 108.10 798.8 0.11700 0.20220 0.172200 0.102800 ... 20.960 31.48 136.80 1315.0 0.17890 0.42330 0.47840 0.20730 0.3706 0.11420
18 849014 M 19.810 22.15 130.00 1260.0 0.09831 0.10270 0.147900 0.094980 ... 27.320 30.88 186.80 2398.0 0.15120 0.31500 0.53720 0.23880 0.2768 0.07615
19 8510426 B 13.540 14.36 87.46 566.3 0.09779 0.08129 0.066640 0.047810 ... 15.110 19.26 99.70 711.2 0.14400 0.17730 0.23900 0.12880 0.2977 0.07259
20 8510653 B 13.080 15.71 85.63 520.0 0.10750 0.12700 0.045680 0.031100 ... 14.500 20.49 96.09 630.5 0.13120 0.27760 0.18900 0.07283 0.3184 0.08183
21 8510824 B 9.504 12.44 60.34 273.9 0.10240 0.06492 0.029560 0.020760 ... 10.230 15.66 65.13 314.9 0.13240 0.11480 0.08867 0.06227 0.2450 0.07773
22 8511133 M 15.340 14.26 102.50 704.4 0.10730 0.21350 0.207700 0.097560 ... 18.070 19.08 125.10 980.9 0.13900 0.59540 0.63050 0.23930 0.4667 0.09946
23 851509 M 21.160 23.04 137.20 1404.0 0.09428 0.10220 0.109700 0.086320 ... 29.170 35.59 188.00 2615.0 0.14010 0.26000 0.31550 0.20090 0.2822 0.07526
24 852552 M 16.650 21.38 110.00 904.6 0.11210 0.14570 0.152500 0.091700 ... 26.460 31.56 177.00 2215.0 0.18050 0.35780 0.46950 0.20950 0.3613 0.09564
25 852631 M 17.140 16.40 116.00 912.7 0.11860 0.22760 0.222900 0.140100 ... 22.250 21.40 152.40 1461.0 0.15450 0.39490 0.38530 0.25500 0.4066 0.10590
26 852763 M 14.580 21.53 97.41 644.8 0.10540 0.18680 0.142500 0.087830 ... 17.620 33.21 122.40 896.9 0.15250 0.66430 0.55390 0.27010 0.4264 0.12750
27 852781 M 18.610 20.25 122.10 1094.0 0.09440 0.10660 0.149000 0.077310 ... 21.310 27.26 139.90 1403.0 0.13380 0.21170 0.34460 0.14900 0.2341 0.07421
28 852973 M 15.300 25.27 102.40 732.4 0.10820 0.16970 0.168300 0.087510 ... 20.270 36.71 149.30 1269.0 0.16410 0.61100 0.63350 0.20240 0.4027 0.09876
29 853201 M 17.570 15.05 115.00 955.1 0.09847 0.11570 0.098750 0.079530 ... 20.010 19.52 134.90 1227.0 0.12550 0.28120 0.24890 0.14560 0.2756 0.07919
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
539 921362 B 7.691 25.44 48.34 170.4 0.08668 0.11990 0.092520 0.013640 ... 8.678 31.89 54.49 223.6 0.15960 0.30640 0.33930 0.05000 0.2790 0.10660
540 921385 B 11.540 14.44 74.65 402.9 0.09984 0.11200 0.067370 0.025940 ... 12.260 19.68 78.78 457.8 0.13450 0.21180 0.17970 0.06918 0.2329 0.08134
541 921386 B 14.470 24.99 95.81 656.4 0.08837 0.12300 0.100900 0.038900 ... 16.220 31.73 113.50 808.9 0.13400 0.42020 0.40400 0.12050 0.3187 0.10230
542 921644 B 14.740 25.42 94.70 668.6 0.08275 0.07214 0.041050 0.030270 ... 16.510 32.29 107.40 826.4 0.10600 0.13760 0.16110 0.10950 0.2722 0.06956
543 922296 B 13.210 28.06 84.88 538.4 0.08671 0.06877 0.029870 0.032750 ... 14.370 37.17 92.48 629.6 0.10720 0.13810 0.10620 0.07958 0.2473 0.06443
544 922297 B 13.870 20.70 89.77 584.8 0.09578 0.10180 0.036880 0.023690 ... 15.050 24.75 99.17 688.6 0.12640 0.20370 0.13770 0.06845 0.2249 0.08492
545 922576 B 13.620 23.23 87.19 573.2 0.09246 0.06747 0.029740 0.024430 ... 15.350 29.09 97.58 729.8 0.12160 0.15170 0.10490 0.07174 0.2642 0.06953
546 922577 B 10.320 16.35 65.31 324.9 0.09434 0.04994 0.010120 0.005495 ... 11.250 21.77 71.12 384.9 0.12850 0.08842 0.04384 0.02381 0.2681 0.07399
547 922840 B 10.260 16.58 65.85 320.8 0.08877 0.08066 0.043580 0.024380 ... 10.830 22.04 71.08 357.4 0.14610 0.22460 0.17830 0.08333 0.2691 0.09479
548 923169 B 9.683 19.34 61.05 285.7 0.08491 0.05030 0.023370 0.009615 ... 10.930 25.59 69.10 364.2 0.11990 0.09546 0.09350 0.03846 0.2552 0.07920
549 923465 B 10.820 24.21 68.89 361.6 0.08192 0.06602 0.015480 0.008160 ... 13.030 31.45 83.90 505.6 0.12040 0.16330 0.06194 0.03264 0.3059 0.07626
550 923748 B 10.860 21.48 68.51 360.5 0.07431 0.04227 0.000000 0.000000 ... 11.660 24.77 74.08 412.3 0.10010 0.07348 0.00000 0.00000 0.2458 0.06592
551 923780 B 11.130 22.44 71.49 378.4 0.09566 0.08194 0.048240 0.022570 ... 12.020 28.26 77.80 436.6 0.10870 0.17820 0.15640 0.06413 0.3169 0.08032
552 924084 B 12.770 29.43 81.35 507.9 0.08276 0.04234 0.019970 0.014990 ... 13.870 36.00 88.10 594.7 0.12340 0.10640 0.08653 0.06498 0.2407 0.06484
553 924342 B 9.333 21.94 59.01 264.0 0.09240 0.05605 0.039960 0.012820 ... 9.845 25.05 62.86 295.8 0.11030 0.08298 0.07993 0.02564 0.2435 0.07393
554 924632 B 12.880 28.92 82.50 514.3 0.08123 0.05824 0.061950 0.023430 ... 13.890 35.74 88.84 595.7 0.12270 0.16200 0.24390 0.06493 0.2372 0.07242
555 924934 B 10.290 27.61 65.67 321.4 0.09030 0.07658 0.059990 0.027380 ... 10.840 34.91 69.57 357.6 0.13840 0.17100 0.20000 0.09127 0.2226 0.08283
556 924964 B 10.160 19.59 64.73 311.7 0.10030 0.07504 0.005025 0.011160 ... 10.650 22.88 67.88 347.3 0.12650 0.12000 0.01005 0.02232 0.2262 0.06742
557 925236 B 9.423 27.88 59.26 271.3 0.08123 0.04971 0.000000 0.000000 ... 10.490 34.24 66.50 330.6 0.10730 0.07158 0.00000 0.00000 0.2475 0.06969
558 925277 B 14.590 22.68 96.39 657.1 0.08473 0.13300 0.102900 0.037360 ... 15.480 27.27 105.90 733.5 0.10260 0.31710 0.36620 0.11050 0.2258 0.08004
559 925291 B 11.510 23.93 74.52 403.5 0.09261 0.10210 0.111200 0.041050 ... 12.480 37.16 82.28 474.2 0.12980 0.25170 0.36300 0.09653 0.2112 0.08732
560 925292 B 14.050 27.15 91.38 600.4 0.09929 0.11260 0.044620 0.043040 ... 15.300 33.17 100.20 706.7 0.12410 0.22640 0.13260 0.10480 0.2250 0.08321
561 925311 B 11.200 29.37 70.67 386.0 0.07449 0.03558 0.000000 0.000000 ... 11.920 38.30 75.19 439.6 0.09267 0.05494 0.00000 0.00000 0.1566 0.05905
562 925622 M 15.220 30.62 103.40 716.9 0.10480 0.20870 0.255000 0.094290 ... 17.520 42.79 128.70 915.0 0.14170 0.79170 1.17000 0.23560 0.4089 0.14090
563 926125 M 20.920 25.09 143.00 1347.0 0.10990 0.22360 0.317400 0.147400 ... 24.290 29.41 179.10 1819.0 0.14070 0.41860 0.65990 0.25420 0.2929 0.09873
564 926424 M 21.560 22.39 142.00 1479.0 0.11100 0.11590 0.243900 0.138900 ... 25.450 26.40 166.10 2027.0 0.14100 0.21130 0.41070 0.22160 0.2060 0.07115
565 926682 M 20.130 28.25 131.20 1261.0 0.09780 0.10340 0.144000 0.097910 ... 23.690 38.25 155.00 1731.0 0.11660 0.19220 0.32150 0.16280 0.2572 0.06637
566 926954 M 16.600 28.08 108.30 858.1 0.08455 0.10230 0.092510 0.053020 ... 18.980 34.12 126.70 1124.0 0.11390 0.30940 0.34030 0.14180 0.2218 0.07820
567 927241 M 20.600 29.33 140.10 1265.0 0.11780 0.27700 0.351400 0.152000 ... 25.740 39.42 184.60 1821.0 0.16500 0.86810 0.93870 0.26500 0.4087 0.12400
568 92751 B 7.760 24.54 47.92 181.0 0.05263 0.04362 0.000000 0.000000 ... 9.456 30.37 59.16 268.6 0.08996 0.06444 0.00000 0.00000 0.2871 0.07039

569 rows × 32 columns

复制代码
    cancer.drop('ID',axis = 1,inplace=True)
复制代码
    X = cancer.iloc[:,1:]
    X.head()
radius_mean texture_mean perimeter_mean area_mean smoothness_mean compactness_mean concavity_mean concave_mean symmetry_mean fractal_mean ... radius_max texture_max perimeter_max area_max smoothness_max compactness_max concavity_max concave_max symmetry_max fractal_max
0 17.99 10.38 122.80 1001.0 0.11840 0.27760 0.3001 0.14710 0.2419 0.07871 ... 25.38 17.33 184.60 2019.0 0.1622 0.6656 0.7119 0.2654 0.4601 0.11890
1 20.57 17.77 132.90 1326.0 0.08474 0.07864 0.0869 0.07017 0.1812 0.05667 ... 24.99 23.41 158.80 1956.0 0.1238 0.1866 0.2416 0.1860 0.2750 0.08902
2 19.69 21.25 130.00 1203.0 0.10960 0.15990 0.1974 0.12790 0.2069 0.05999 ... 23.57 25.53 152.50 1709.0 0.1444 0.4245 0.4504 0.2430 0.3613 0.08758
3 11.42 20.38 77.58 386.1 0.14250 0.28390 0.2414 0.10520 0.2597 0.09744 ... 14.91 26.50 98.87 567.7 0.2098 0.8663 0.6869 0.2575 0.6638 0.17300
4 20.29 14.34 135.10 1297.0 0.10030 0.13280 0.1980 0.10430 0.1809 0.05883 ... 22.54 16.67 152.20 1575.0 0.1374 0.2050 0.4000 0.1625 0.2364 0.07678

5 rows × 30 columns

复制代码
    y = cancer['Diagnosis']
    y.head()
复制代码
    0    M
    1    M
    2    M
    3    M
    4    M
    Name: Diagnosis, dtype: object
复制代码
    X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2)
复制代码
    knn = KNeighborsClassifier()
    
    params = {'n_neighbors':[i for i in range(1,30)],
         'weights':['distance','uniform'],
         'p':[1,2]}
    gcv = GridSearchCV(knn,params,scoring='accuracy',cv = 6)
复制代码
    gcv.fit(X_train,y_train)
复制代码
    GridSearchCV(cv=6, error_score='raise',
       estimator=KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=5, p=2,
           weights='uniform'),
       fit_params=None, iid=True, n_jobs=1,
       param_grid={'n_neighbors': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], 'weights': ['distance', 'uniform'], 'p': [1, 2]},
       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',
       scoring='accuracy', verbose=0)
复制代码
    gcv.best_params_
复制代码
    {'n_neighbors': 3, 'p': 1, 'weights': 'distance'}
复制代码
    gcv.best_estimator_
复制代码
    KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=3, p=1,
           weights='distance')
复制代码
    gcv.best_score_
复制代码
94065934065934065

全部评论 (0)

还没有任何评论哟~