#导入库import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
#读取数据,数据下载链接https://www.kaggle.com/uciml/pima-indians-diabetes-database/data?select=diabetes.csv
data = pd.read_csv('datasets_228_482_diabetes.csv')
data.head()
Pregnancies
Glucose
BloodPressure
SkinThickness
Insulin
BMI
DiabetesPedigreeFunction
Age
Outcome
0
6
148
72
35
0
33.6
0.627
50
1
1
1
85
66
29
0
26.6
0.351
31
0
2
8
183
64
0
0
23.3
0.672
32
1
3
1
89
66
23
94
28.1
0.167
21
0
4
0
137
40
35
168
43.1
2.288
33
1
#划分特征属性x,和目标属性y
x = data.iloc[:,0:8]
x
Pregnancies
Glucose
BloodPressure
SkinThickness
Insulin
BMI
DiabetesPedigreeFunction
Age
0
6
148
72
35
0
33.6
0.627
50
1
1
85
66
29
0
26.6
0.351
31
2
8
183
64
0
0
23.3
0.672
32
3
1
89
66
23
94
28.1
0.167
21
4
0
137
40
35
168
43.1
2.288
33
...
...
...
...
...
...
...
...
...
763
10
101
76
48
180
32.9
0.171
63
764
2
122
70
27
0
36.8
0.340
27
765
5
121
72
23
112
26.2
0.245
30
766
1
126
60
0
0
30.1
0.349
47
767
1
93
70
31
0
30.4
0.315
23
768 rows × 8 columns
y = data.iloc[:,[8]]
y
Outcome
0
1
1
0
2
1
3
0
4
1
...
...
763
0
764
0
765
0
766
1
767
0
768 rows × 1 columns
#特征归一化
x =(x-np.min(x))/(np.max(x)-np.min(x))
x
Pregnancies
Glucose
BloodPressure
SkinThickness
Insulin
BMI
DiabetesPedigreeFunction
Age
0
0.352941
0.743719
0.590164
0.353535
0.000000
0.500745
0.234415
0.483333
1
0.058824
0.427136
0.540984
0.292929
0.000000
0.396423
0.116567
0.166667
2
0.470588
0.919598
0.524590
0.000000
0.000000
0.347243
0.253629
0.183333
3
0.058824
0.447236
0.540984
0.232323
0.111111
0.418778
0.038002
0.000000
4
0.000000
0.688442
0.327869
0.353535
0.198582
0.642325
0.943638
0.200000
...
...
...
...
...
...
...
...
...
763
0.588235
0.507538
0.622951
0.484848
0.212766
0.490313
0.039710
0.700000
764
0.117647
0.613065
0.573770
0.272727
0.000000
0.548435
0.111870
0.100000
765
0.294118
0.608040
0.590164
0.232323
0.132388
0.390462
0.071307
0.150000
766
0.058824
0.633166
0.491803
0.000000
0.000000
0.448584
0.115713
0.433333
767
0.058824
0.467337
0.573770
0.313131
0.000000
0.453055
0.101196
0.033333
768 rows × 8 columns
#划分数据集
xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size=0.25, random_state=42)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\ipykernel_launcher.py:3: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
This is separate from the ipykernel package so we can avoid doing imports until
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
metric_params=None, n_jobs=None, n_neighbors=3, p=2,
weights='uniform')
Fitting 5 folds for each of 72 candidates, totalling 360 fits
[Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurrent workers.
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X_train, y_train, **fit_params)
C:\Users\Qin\.conda\envs\ZeroEnv\lib\site-packages\sklearn\model_selection\_validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
estimator.fit(X