Saving your data and model is very handy to continue your work on in-memory objects over long time and multiple machines.
Video Tutorial:
joblib library is available in external model inside scikit-learn library. This allows to store in memory objects as pickle files.
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier
from sklearn.externals import joblib
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data"
columns = ["Sex", "Length", "Diameter", "Height", "Whole weight", "Shucked weight",
"Viscera weight", "Shell weight", "Rings"]
csv_data = pd.read_csv(url, names = columns)
csv_data
Sex | Length | Diameter | Height | Whole weight | Shucked weight | Viscera weight | Shell weight | Rings | |
---|---|---|---|---|---|---|---|---|---|
0 | M | 0.455 | 0.365 | 0.095 | 0.5140 | 0.2245 | 0.1010 | 0.150 | 15 |
1 | M | 0.350 | 0.265 | 0.090 | 0.2255 | 0.0995 | 0.0485 | 0.070 | 7 |
2 | F | 0.530 | 0.420 | 0.135 | 0.6770 | 0.2565 | 0.1415 | 0.210 | 9 |
3 | M | 0.440 | 0.365 | 0.125 | 0.5160 | 0.2155 | 0.1140 | 0.155 | 10 |
4 | I | 0.330 | 0.255 | 0.080 | 0.2050 | 0.0895 | 0.0395 | 0.055 | 7 |
5 | I | 0.425 | 0.300 | 0.095 | 0.3515 | 0.1410 | 0.0775 | 0.120 | 8 |
6 | F | 0.530 | 0.415 | 0.150 | 0.7775 | 0.2370 | 0.1415 | 0.330 | 20 |
7 | F | 0.545 | 0.425 | 0.125 | 0.7680 | 0.2940 | 0.1495 | 0.260 | 16 |
8 | M | 0.475 | 0.370 | 0.125 | 0.5095 | 0.2165 | 0.1125 | 0.165 | 9 |
9 | F | 0.550 | 0.440 | 0.150 | 0.8945 | 0.3145 | 0.1510 | 0.320 | 19 |
10 | F | 0.525 | 0.380 | 0.140 | 0.6065 | 0.1940 | 0.1475 | 0.210 | 14 |
11 | M | 0.430 | 0.350 | 0.110 | 0.4060 | 0.1675 | 0.0810 | 0.135 | 10 |
12 | M | 0.490 | 0.380 | 0.135 | 0.5415 | 0.2175 | 0.0950 | 0.190 | 11 |
13 | F | 0.535 | 0.405 | 0.145 | 0.6845 | 0.2725 | 0.1710 | 0.205 | 10 |
14 | F | 0.470 | 0.355 | 0.100 | 0.4755 | 0.1675 | 0.0805 | 0.185 | 10 |
15 | M | 0.500 | 0.400 | 0.130 | 0.6645 | 0.2580 | 0.1330 | 0.240 | 12 |
16 | I | 0.355 | 0.280 | 0.085 | 0.2905 | 0.0950 | 0.0395 | 0.115 | 7 |
17 | F | 0.440 | 0.340 | 0.100 | 0.4510 | 0.1880 | 0.0870 | 0.130 | 10 |
18 | M | 0.365 | 0.295 | 0.080 | 0.2555 | 0.0970 | 0.0430 | 0.100 | 7 |
19 | M | 0.450 | 0.320 | 0.100 | 0.3810 | 0.1705 | 0.0750 | 0.115 | 9 |
20 | M | 0.355 | 0.280 | 0.095 | 0.2455 | 0.0955 | 0.0620 | 0.075 | 11 |
21 | I | 0.380 | 0.275 | 0.100 | 0.2255 | 0.0800 | 0.0490 | 0.085 | 10 |
22 | F | 0.565 | 0.440 | 0.155 | 0.9395 | 0.4275 | 0.2140 | 0.270 | 12 |
23 | F | 0.550 | 0.415 | 0.135 | 0.7635 | 0.3180 | 0.2100 | 0.200 | 9 |
24 | F | 0.615 | 0.480 | 0.165 | 1.1615 | 0.5130 | 0.3010 | 0.305 | 10 |
25 | F | 0.560 | 0.440 | 0.140 | 0.9285 | 0.3825 | 0.1880 | 0.300 | 11 |
26 | F | 0.580 | 0.450 | 0.185 | 0.9955 | 0.3945 | 0.2720 | 0.285 | 11 |
27 | M | 0.590 | 0.445 | 0.140 | 0.9310 | 0.3560 | 0.2340 | 0.280 | 12 |
28 | M | 0.605 | 0.475 | 0.180 | 0.9365 | 0.3940 | 0.2190 | 0.295 | 15 |
29 | M | 0.575 | 0.425 | 0.140 | 0.8635 | 0.3930 | 0.2270 | 0.200 | 11 |
30 | M | 0.580 | 0.470 | 0.165 | 0.9975 | 0.3935 | 0.2420 | 0.330 | 10 |
31 | F | 0.680 | 0.560 | 0.165 | 1.6390 | 0.6055 | 0.2805 | 0.460 | 15 |
32 | M | 0.665 | 0.525 | 0.165 | 1.3380 | 0.5515 | 0.3575 | 0.350 | 18 |
33 | F | 0.680 | 0.550 | 0.175 | 1.7980 | 0.8150 | 0.3925 | 0.455 | 19 |
34 | F | 0.705 | 0.550 | 0.200 | 1.7095 | 0.6330 | 0.4115 | 0.490 | 13 |
35 | M | 0.465 | 0.355 | 0.105 | 0.4795 | 0.2270 | 0.1240 | 0.125 | 8 |
36 | F | 0.540 | 0.475 | 0.155 | 1.2170 | 0.5305 | 0.3075 | 0.340 | 16 |
37 | F | 0.450 | 0.355 | 0.105 | 0.5225 | 0.2370 | 0.1165 | 0.145 | 8 |
38 | F | 0.575 | 0.445 | 0.135 | 0.8830 | 0.3810 | 0.2035 | 0.260 | 11 |
39 | M | 0.355 | 0.290 | 0.090 | 0.3275 | 0.1340 | 0.0860 | 0.090 | 9 |
40 | F | 0.450 | 0.335 | 0.105 | 0.4250 | 0.1865 | 0.0910 | 0.115 | 9 |
41 | F | 0.550 | 0.425 | 0.135 | 0.8515 | 0.3620 | 0.1960 | 0.270 | 14 |
42 | I | 0.240 | 0.175 | 0.045 | 0.0700 | 0.0315 | 0.0235 | 0.020 | 5 |
43 | I | 0.205 | 0.150 | 0.055 | 0.0420 | 0.0255 | 0.0150 | 0.012 | 5 |
44 | I | 0.210 | 0.150 | 0.050 | 0.0420 | 0.0175 | 0.0125 | 0.015 | 4 |
45 | I | 0.390 | 0.295 | 0.095 | 0.2030 | 0.0875 | 0.0450 | 0.075 | 7 |
46 | M | 0.470 | 0.370 | 0.120 | 0.5795 | 0.2930 | 0.2270 | 0.140 | 9 |
47 | F | 0.460 | 0.375 | 0.120 | 0.4605 | 0.1775 | 0.1100 | 0.150 | 7 |
48 | I | 0.325 | 0.245 | 0.070 | 0.1610 | 0.0755 | 0.0255 | 0.045 | 6 |
49 | F | 0.525 | 0.425 | 0.160 | 0.8355 | 0.3545 | 0.2135 | 0.245 | 9 |
50 | I | 0.520 | 0.410 | 0.120 | 0.5950 | 0.2385 | 0.1110 | 0.190 | 8 |
51 | M | 0.400 | 0.320 | 0.095 | 0.3030 | 0.1335 | 0.0600 | 0.100 | 7 |
52 | M | 0.485 | 0.360 | 0.130 | 0.5415 | 0.2595 | 0.0960 | 0.160 | 10 |
53 | F | 0.470 | 0.360 | 0.120 | 0.4775 | 0.2105 | 0.1055 | 0.150 | 10 |
54 | M | 0.405 | 0.310 | 0.100 | 0.3850 | 0.1730 | 0.0915 | 0.110 | 7 |
55 | F | 0.500 | 0.400 | 0.140 | 0.6615 | 0.2565 | 0.1755 | 0.220 | 8 |
56 | M | 0.445 | 0.350 | 0.120 | 0.4425 | 0.1920 | 0.0955 | 0.135 | 8 |
57 | M | 0.470 | 0.385 | 0.135 | 0.5895 | 0.2765 | 0.1200 | 0.170 | 8 |
58 | I | 0.245 | 0.190 | 0.060 | 0.0860 | 0.0420 | 0.0140 | 0.025 | 4 |
59 | F | 0.505 | 0.400 | 0.125 | 0.5830 | 0.2460 | 0.1300 | 0.175 | 7 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
4177 rows × 9 columns
features = csv_data.drop("Sex", 1)
sex_dict = {"M":0, "I":1, "F":2}
results = csv_data["Sex"].map(sex_dict)
trained_model = KNeighborsClassifier(n_neighbors=5, weights='uniform')
trained_model.fit(features, results)
trained_model
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski', n_neighbors=5, p=2, weights='uniform')
joblib.dump(csv_data, "data.pkl")
joblib.dump(trained_model, "model.pkl");
ls
2. Pickle Data and Model.ipynb model.pkl model.pkl_06.npy Folder Management.ipynb model.pkl_01.npy model.pkl_07.npy data.pkl model.pkl_02.npy model.pkl_08.npy data.pkl_01.npy model.pkl_03.npy model.pkl_09.npy data.pkl_02.npy model.pkl_04.npy data.pkl_03.npy model.pkl_05.npy
loaded_data = joblib.load("data.pkl")
loaded_model = joblib.load("model.pkl")
loaded_data
Sex | Length | Diameter | Height | Whole weight | Shucked weight | Viscera weight | Shell weight | Rings | |
---|---|---|---|---|---|---|---|---|---|
0 | M | 0.455 | 0.365 | 0.095 | 0.5140 | 0.2245 | 0.1010 | 0.150 | 15 |
1 | M | 0.350 | 0.265 | 0.090 | 0.2255 | 0.0995 | 0.0485 | 0.070 | 7 |
2 | F | 0.530 | 0.420 | 0.135 | 0.6770 | 0.2565 | 0.1415 | 0.210 | 9 |
3 | M | 0.440 | 0.365 | 0.125 | 0.5160 | 0.2155 | 0.1140 | 0.155 | 10 |
4 | I | 0.330 | 0.255 | 0.080 | 0.2050 | 0.0895 | 0.0395 | 0.055 | 7 |
5 | I | 0.425 | 0.300 | 0.095 | 0.3515 | 0.1410 | 0.0775 | 0.120 | 8 |
6 | F | 0.530 | 0.415 | 0.150 | 0.7775 | 0.2370 | 0.1415 | 0.330 | 20 |
7 | F | 0.545 | 0.425 | 0.125 | 0.7680 | 0.2940 | 0.1495 | 0.260 | 16 |
8 | M | 0.475 | 0.370 | 0.125 | 0.5095 | 0.2165 | 0.1125 | 0.165 | 9 |
9 | F | 0.550 | 0.440 | 0.150 | 0.8945 | 0.3145 | 0.1510 | 0.320 | 19 |
10 | F | 0.525 | 0.380 | 0.140 | 0.6065 | 0.1940 | 0.1475 | 0.210 | 14 |
11 | M | 0.430 | 0.350 | 0.110 | 0.4060 | 0.1675 | 0.0810 | 0.135 | 10 |
12 | M | 0.490 | 0.380 | 0.135 | 0.5415 | 0.2175 | 0.0950 | 0.190 | 11 |
13 | F | 0.535 | 0.405 | 0.145 | 0.6845 | 0.2725 | 0.1710 | 0.205 | 10 |
14 | F | 0.470 | 0.355 | 0.100 | 0.4755 | 0.1675 | 0.0805 | 0.185 | 10 |
15 | M | 0.500 | 0.400 | 0.130 | 0.6645 | 0.2580 | 0.1330 | 0.240 | 12 |
16 | I | 0.355 | 0.280 | 0.085 | 0.2905 | 0.0950 | 0.0395 | 0.115 | 7 |
17 | F | 0.440 | 0.340 | 0.100 | 0.4510 | 0.1880 | 0.0870 | 0.130 | 10 |
18 | M | 0.365 | 0.295 | 0.080 | 0.2555 | 0.0970 | 0.0430 | 0.100 | 7 |
19 | M | 0.450 | 0.320 | 0.100 | 0.3810 | 0.1705 | 0.0750 | 0.115 | 9 |
20 | M | 0.355 | 0.280 | 0.095 | 0.2455 | 0.0955 | 0.0620 | 0.075 | 11 |
21 | I | 0.380 | 0.275 | 0.100 | 0.2255 | 0.0800 | 0.0490 | 0.085 | 10 |
22 | F | 0.565 | 0.440 | 0.155 | 0.9395 | 0.4275 | 0.2140 | 0.270 | 12 |
23 | F | 0.550 | 0.415 | 0.135 | 0.7635 | 0.3180 | 0.2100 | 0.200 | 9 |
24 | F | 0.615 | 0.480 | 0.165 | 1.1615 | 0.5130 | 0.3010 | 0.305 | 10 |
25 | F | 0.560 | 0.440 | 0.140 | 0.9285 | 0.3825 | 0.1880 | 0.300 | 11 |
26 | F | 0.580 | 0.450 | 0.185 | 0.9955 | 0.3945 | 0.2720 | 0.285 | 11 |
27 | M | 0.590 | 0.445 | 0.140 | 0.9310 | 0.3560 | 0.2340 | 0.280 | 12 |
28 | M | 0.605 | 0.475 | 0.180 | 0.9365 | 0.3940 | 0.2190 | 0.295 | 15 |
29 | M | 0.575 | 0.425 | 0.140 | 0.8635 | 0.3930 | 0.2270 | 0.200 | 11 |
30 | M | 0.580 | 0.470 | 0.165 | 0.9975 | 0.3935 | 0.2420 | 0.330 | 10 |
31 | F | 0.680 | 0.560 | 0.165 | 1.6390 | 0.6055 | 0.2805 | 0.460 | 15 |
32 | M | 0.665 | 0.525 | 0.165 | 1.3380 | 0.5515 | 0.3575 | 0.350 | 18 |
33 | F | 0.680 | 0.550 | 0.175 | 1.7980 | 0.8150 | 0.3925 | 0.455 | 19 |
34 | F | 0.705 | 0.550 | 0.200 | 1.7095 | 0.6330 | 0.4115 | 0.490 | 13 |
35 | M | 0.465 | 0.355 | 0.105 | 0.4795 | 0.2270 | 0.1240 | 0.125 | 8 |
36 | F | 0.540 | 0.475 | 0.155 | 1.2170 | 0.5305 | 0.3075 | 0.340 | 16 |
37 | F | 0.450 | 0.355 | 0.105 | 0.5225 | 0.2370 | 0.1165 | 0.145 | 8 |
38 | F | 0.575 | 0.445 | 0.135 | 0.8830 | 0.3810 | 0.2035 | 0.260 | 11 |
39 | M | 0.355 | 0.290 | 0.090 | 0.3275 | 0.1340 | 0.0860 | 0.090 | 9 |
40 | F | 0.450 | 0.335 | 0.105 | 0.4250 | 0.1865 | 0.0910 | 0.115 | 9 |
41 | F | 0.550 | 0.425 | 0.135 | 0.8515 | 0.3620 | 0.1960 | 0.270 | 14 |
42 | I | 0.240 | 0.175 | 0.045 | 0.0700 | 0.0315 | 0.0235 | 0.020 | 5 |
43 | I | 0.205 | 0.150 | 0.055 | 0.0420 | 0.0255 | 0.0150 | 0.012 | 5 |
44 | I | 0.210 | 0.150 | 0.050 | 0.0420 | 0.0175 | 0.0125 | 0.015 | 4 |
45 | I | 0.390 | 0.295 | 0.095 | 0.2030 | 0.0875 | 0.0450 | 0.075 | 7 |
46 | M | 0.470 | 0.370 | 0.120 | 0.5795 | 0.2930 | 0.2270 | 0.140 | 9 |
47 | F | 0.460 | 0.375 | 0.120 | 0.4605 | 0.1775 | 0.1100 | 0.150 | 7 |
48 | I | 0.325 | 0.245 | 0.070 | 0.1610 | 0.0755 | 0.0255 | 0.045 | 6 |
49 | F | 0.525 | 0.425 | 0.160 | 0.8355 | 0.3545 | 0.2135 | 0.245 | 9 |
50 | I | 0.520 | 0.410 | 0.120 | 0.5950 | 0.2385 | 0.1110 | 0.190 | 8 |
51 | M | 0.400 | 0.320 | 0.095 | 0.3030 | 0.1335 | 0.0600 | 0.100 | 7 |
52 | M | 0.485 | 0.360 | 0.130 | 0.5415 | 0.2595 | 0.0960 | 0.160 | 10 |
53 | F | 0.470 | 0.360 | 0.120 | 0.4775 | 0.2105 | 0.1055 | 0.150 | 10 |
54 | M | 0.405 | 0.310 | 0.100 | 0.3850 | 0.1730 | 0.0915 | 0.110 | 7 |
55 | F | 0.500 | 0.400 | 0.140 | 0.6615 | 0.2565 | 0.1755 | 0.220 | 8 |
56 | M | 0.445 | 0.350 | 0.120 | 0.4425 | 0.1920 | 0.0955 | 0.135 | 8 |
57 | M | 0.470 | 0.385 | 0.135 | 0.5895 | 0.2765 | 0.1200 | 0.170 | 8 |
58 | I | 0.245 | 0.190 | 0.060 | 0.0860 | 0.0420 | 0.0140 | 0.025 | 4 |
59 | F | 0.505 | 0.400 | 0.125 | 0.5830 | 0.2460 | 0.1300 | 0.175 | 7 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
4177 rows × 9 columns
loaded_model
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski', n_neighbors=5, p=2, weights='uniform')