{ "cells": [ { "cell_type": "code", "execution_count": 18, "id": "00aa9915-e89f-4f4f-a7ec-7a8b89a266dd", "metadata": { "ExecuteTime": { "start_time": "2023-06-28T16:22:58.703948200Z" }, "datalink": { "c0e05319-2c92-4c1f-9aa8-fcb4c980e2a5": { "applied_filters": [], "dataframe_info": { "default_index_used": true, "orig_num_cols": 49, "orig_num_rows": 5, "orig_size_bytes": 2000, "truncated_num_cols": 49, "truncated_num_rows": 5, "truncated_size_bytes": 2000, "truncated_string_columns": [] }, "display_id": "c0e05319-2c92-4c1f-9aa8-fcb4c980e2a5", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T15:51:41.459116", "user_variable_name": null, "variable_name": "unk_dataframe_62d2139b273f4aed93cfc08dceb1d1cc" } }, "is_executing": true, "noteable": { "cell_type": "code" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TECTONIC SETTINGLATITUDELONGITUDELAND OR SEASAMPLE NAMESIO2(WT%)TIO2(WT%)AL2O3(WT%)Fe2O3T(WT%)CAO(WT%)...GD(PPM)TB(PPM)DY(PPM)HO(PPM)ER(PPM)TM(PPM)YB(PPM)LU(PPM)HF(PPM)TA(PPM)
0CONVERGENT MARGIN34.0000131.5000SAEs_1 [4742]46.671.9613.1410.4578.87...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1OCEAN ISLAND-21.2500-159.7500SAEs_R40 [4683]45.972.9111.8611.4209.74...8.2430.935.150.842.030.261.43NaN5.72NaN
2CONVERGENT MARGIN47.1200152.2300SAEs_V-17-603 [7321] / s_V17-603 [4190]51.53NaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3CONVERGENT MARGIN47.1200152.2300SAEs_V15-307 [6818] / s_V-15-307 [3042]58.220.6716.308.5877.04...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4OCEAN ISLAND27.6149-16.1633SAQs_157-956B-44R-4,G1 [4750]NaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

5 rows × 49 columns

\n", "
" ], "text/plain": [ " TECTONIC SETTING LATITUDE LONGITUDE LAND OR SEA \\\n", "0 CONVERGENT MARGIN 34.0000 131.5000 SAE \n", "1 OCEAN ISLAND -21.2500 -159.7500 SAE \n", "2 CONVERGENT MARGIN 47.1200 152.2300 SAE \n", "3 CONVERGENT MARGIN 47.1200 152.2300 SAE \n", "4 OCEAN ISLAND 27.6149 -16.1633 SAQ \n", "\n", " SAMPLE NAME SIO2(WT%) TIO2(WT%) AL2O3(WT%) \\\n", "0 s_1 [4742] 46.67 1.96 13.14 \n", "1 s_R40 [4683] 45.97 2.91 11.86 \n", "2 s_V-17-603 [7321] / s_V17-603 [4190] 51.53 NaN NaN \n", "3 s_V15-307 [6818] / s_V-15-307 [3042] 58.22 0.67 16.30 \n", "4 s_157-956B-44R-4,G1 [4750] NaN NaN NaN \n", "\n", " Fe2O3T(WT%) CAO(WT%) ... GD(PPM) TB(PPM) DY(PPM) HO(PPM) ER(PPM) \\\n", "0 10.457 8.87 ... NaN NaN NaN NaN NaN \n", "1 11.420 9.74 ... 8.243 0.93 5.15 0.84 2.03 \n", "2 NaN NaN ... NaN NaN NaN NaN NaN \n", "3 8.587 7.04 ... NaN NaN NaN NaN NaN \n", "4 NaN NaN ... NaN NaN NaN NaN NaN \n", "\n", " TM(PPM) YB(PPM) LU(PPM) HF(PPM) TA(PPM) \n", "0 NaN NaN NaN NaN NaN \n", "1 0.26 1.43 NaN 5.72 NaN \n", "2 NaN NaN NaN NaN NaN \n", "3 NaN NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN NaN \n", "\n", "[5 rows x 49 columns]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "# Load the data\n", "df = pd.read_csv('basalt_pre.csv')\n", "\n", "# Display the first few rows of the dataframe\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 19, "id": "a94b5ae4-919b-43bc-83cf-74fa59fa1bd1", "metadata": { "ExecuteTime": { "end_time": "2023-06-28T15:52:24.353704+00:00", "start_time": "2023-06-28T15:52:23.700431+00:00" }, "datalink": { "edaa1142-a9d4-45db-92be-bdbb2257856a": { "applied_filters": [], "dataframe_info": { "default_index_used": false, "orig_num_cols": 49, "orig_num_rows": 11, "orig_size_bytes": 4400, "truncated_num_cols": 49, "truncated_num_rows": 11, "truncated_size_bytes": 4400, "truncated_string_columns": [] }, "display_id": "edaa1142-a9d4-45db-92be-bdbb2257856a", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T15:52:24.186734", "user_variable_name": null, "variable_name": "unk_dataframe_833188ae7e1c44d2adf928fd96bc2c94" } }, "noteable": { "cell_type": "code" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dataframe shape: (83362, 49)\n", "\n", "Column names: ['TECTONIC SETTING', 'LATITUDE', 'LONGITUDE', 'LAND OR SEA', 'SAMPLE NAME', 'SIO2(WT%)', 'TIO2(WT%)', 'AL2O3(WT%)', 'Fe2O3T(WT%)', 'CAO(WT%)', 'MGO(WT%)', 'MNO(WT%)', 'K2O(WT%)', 'NA2O(WT%)', 'P2O5(WT%)', 'Fe2O3T', 'H2OT(WT%)', 'CO2(WT%)', 'LOI(WT%)', 'NI(PPM)', 'CU(PPM)', 'ZN(PPM)', 'SC(PPM)', 'V(PPM)', 'CR(PPM)', 'CO(PPM)', 'RB(PPM)', 'SR(PPM)', 'Y(PPM)', 'ZR(PPM)', 'NB(PPM)', 'CS(PPM)', 'BA(PPM)', 'LA(PPM)', 'CE(PPM)', 'PR(PPM)', 'ND(PPM)', 'SM(PPM)', 'EU(PPM)', 'GD(PPM)', 'TB(PPM)', 'DY(PPM)', 'HO(PPM)', 'ER(PPM)', 'TM(PPM)', 'YB(PPM)', 'LU(PPM)', 'HF(PPM)', 'TA(PPM)']\n", "\n", "Data types: TECTONIC SETTING object\n", "LATITUDE float64\n", "LONGITUDE float64\n", "LAND OR SEA object\n", "SAMPLE NAME object\n", "SIO2(WT%) float64\n", "TIO2(WT%) float64\n", "AL2O3(WT%) float64\n", "Fe2O3T(WT%) float64\n", "CAO(WT%) float64\n", "MGO(WT%) float64\n", "MNO(WT%) float64\n", "K2O(WT%) float64\n", "NA2O(WT%) float64\n", "P2O5(WT%) float64\n", "Fe2O3T float64\n", "H2OT(WT%) float64\n", "CO2(WT%) float64\n", "LOI(WT%) float64\n", "NI(PPM) float64\n", "CU(PPM) float64\n", "ZN(PPM) float64\n", "SC(PPM) float64\n", "V(PPM) float64\n", "CR(PPM) float64\n", "CO(PPM) float64\n", "RB(PPM) float64\n", "SR(PPM) float64\n", "Y(PPM) float64\n", "ZR(PPM) float64\n", "NB(PPM) float64\n", "CS(PPM) float64\n", "BA(PPM) float64\n", "LA(PPM) float64\n", "CE(PPM) float64\n", "PR(PPM) float64\n", "ND(PPM) float64\n", "SM(PPM) float64\n", "EU(PPM) float64\n", "GD(PPM) float64\n", "TB(PPM) float64\n", "DY(PPM) float64\n", "HO(PPM) float64\n", "ER(PPM) float64\n", "TM(PPM) float64\n", "YB(PPM) float64\n", "LU(PPM) float64\n", "HF(PPM) float64\n", "TA(PPM) float64\n", "dtype: object\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TECTONIC SETTINGLATITUDELONGITUDELAND OR SEASAMPLE NAMESIO2(WT%)TIO2(WT%)AL2O3(WT%)Fe2O3T(WT%)CAO(WT%)...GD(PPM)TB(PPM)DY(PPM)HO(PPM)ER(PPM)TM(PPM)YB(PPM)LU(PPM)HF(PPM)TA(PPM)
count8312683326.00000083326.000000833258332668901.00000068423.00000067894.00000068281.00000067935.000000...29347.00000032835.00000028941.00000025884.00000028460.00000023000.00000037444.00000035001.00000031849.00000029225.000000
unique13NaNNaN479531NaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
topCONVERGENT MARGINNaNNaNSAEs_121-758A-2H-4W, 42-43 [20965]NaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
freq19986NaNNaN7030833NaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
meanNaN20.8616840.072988NaNNaN49.1600641.91722914.93631211.1741579.607987...5.4483030.9070215.0354670.9835072.6504660.3818312.4399390.4494943.8991834.304624
stdNaN31.834860106.817620NaNNaN3.6916040.9898462.2839102.3635902.210575...4.2779951.2051539.7904800.9526264.2471020.2872983.6945035.3000314.521555130.297900
minNaN-87.070000-185.930800NaNNaN0.4000000.0000000.0300000.0200000.000000...0.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000
25%NaN0.647200-94.414075NaNNaN47.1400001.08000013.6600009.7200008.550000...3.5000000.6000003.6000000.7300001.9600000.2800001.7200000.2500002.1000000.270000
50%NaN26.0500000.058000NaNNaN49.1500001.80000014.85000011.1400009.800000...5.0000000.8042554.5900000.9000002.3900000.3400002.1300000.3160993.4500000.850000
75%NaN43.850000100.250000NaNNaN50.9800002.60000016.35000012.51400010.950000...6.8000001.0400005.7400001.1000002.9700000.4300002.7100000.4080005.0000002.131000
maxNaN83.520000181.470000NaNNaN92.21000018.23000072.23000032.46000048.770000...500.00000049.300000939.00000029.706960391.00000012.600000277.000000602.000000499.0000009486.000000
\n", "

11 rows × 49 columns

\n", "
" ], "text/plain": [ " TECTONIC SETTING LATITUDE LONGITUDE LAND OR SEA \\\n", "count 83126 83326.000000 83326.000000 83325 \n", "unique 13 NaN NaN 4 \n", "top CONVERGENT MARGIN NaN NaN SAE \n", "freq 19986 NaN NaN 70308 \n", "mean NaN 20.861684 0.072988 NaN \n", "std NaN 31.834860 106.817620 NaN \n", "min NaN -87.070000 -185.930800 NaN \n", "25% NaN 0.647200 -94.414075 NaN \n", "50% NaN 26.050000 0.058000 NaN \n", "75% NaN 43.850000 100.250000 NaN \n", "max NaN 83.520000 181.470000 NaN \n", "\n", " SAMPLE NAME SIO2(WT%) TIO2(WT%) \\\n", "count 83326 68901.000000 68423.000000 \n", "unique 79531 NaN NaN \n", "top s_121-758A-2H-4W, 42-43 [20965] NaN NaN \n", "freq 33 NaN NaN \n", "mean NaN 49.160064 1.917229 \n", "std NaN 3.691604 0.989846 \n", "min NaN 0.400000 0.000000 \n", "25% NaN 47.140000 1.080000 \n", "50% NaN 49.150000 1.800000 \n", "75% NaN 50.980000 2.600000 \n", "max NaN 92.210000 18.230000 \n", "\n", " AL2O3(WT%) Fe2O3T(WT%) CAO(WT%) ... GD(PPM) \\\n", "count 67894.000000 68281.000000 67935.000000 ... 29347.000000 \n", "unique NaN NaN NaN ... NaN \n", "top NaN NaN NaN ... NaN \n", "freq NaN NaN NaN ... NaN \n", "mean 14.936312 11.174157 9.607987 ... 5.448303 \n", "std 2.283910 2.363590 2.210575 ... 4.277995 \n", "min 0.030000 0.020000 0.000000 ... 0.000000 \n", "25% 13.660000 9.720000 8.550000 ... 3.500000 \n", "50% 14.850000 11.140000 9.800000 ... 5.000000 \n", "75% 16.350000 12.514000 10.950000 ... 6.800000 \n", "max 72.230000 32.460000 48.770000 ... 500.000000 \n", "\n", " TB(PPM) DY(PPM) HO(PPM) ER(PPM) TM(PPM) \\\n", "count 32835.000000 28941.000000 25884.000000 28460.000000 23000.000000 \n", "unique NaN NaN NaN NaN NaN \n", "top NaN NaN NaN NaN NaN \n", "freq NaN NaN NaN NaN NaN \n", "mean 0.907021 5.035467 0.983507 2.650466 0.381831 \n", "std 1.205153 9.790480 0.952626 4.247102 0.287298 \n", "min 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "25% 0.600000 3.600000 0.730000 1.960000 0.280000 \n", "50% 0.804255 4.590000 0.900000 2.390000 0.340000 \n", "75% 1.040000 5.740000 1.100000 2.970000 0.430000 \n", "max 49.300000 939.000000 29.706960 391.000000 12.600000 \n", "\n", " YB(PPM) LU(PPM) HF(PPM) TA(PPM) \n", "count 37444.000000 35001.000000 31849.000000 29225.000000 \n", "unique NaN NaN NaN NaN \n", "top NaN NaN NaN NaN \n", "freq NaN NaN NaN NaN \n", "mean 2.439939 0.449494 3.899183 4.304624 \n", "std 3.694503 5.300031 4.521555 130.297900 \n", "min 0.000000 0.000000 0.000000 0.000000 \n", "25% 1.720000 0.250000 2.100000 0.270000 \n", "50% 2.130000 0.316099 3.450000 0.850000 \n", "75% 2.710000 0.408000 5.000000 2.131000 \n", "max 277.000000 602.000000 499.000000 9486.000000 \n", "\n", "[11 rows x 49 columns]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display the shape of the dataframe\n", "print('Dataframe shape:', df.shape)\n", "\n", "# Display the column names\n", "print('\\nColumn names:', df.columns.tolist())\n", "\n", "# Display the data types of each column\n", "print('\\nData types:', df.dtypes)\n", "\n", "# Display basic statistical details like percentile, mean, std etc. of a data frame\n", "df.describe(include='all')" ] }, { "cell_type": "code", "execution_count": 20, "id": "04e495b9-92b9-4ae8-9fe5-d65384663591", "metadata": { "ExecuteTime": { "end_time": "2023-06-28T15:53:17.552695+00:00", "start_time": "2023-06-28T15:53:17.319119+00:00" }, "datalink": { "e5bc1e5e-3c5f-48a2-a9d3-defbee743e8b": { "applied_filters": [], "dataframe_info": { "default_index_used": false, "orig_num_cols": 1, "orig_num_rows": 49, "orig_size_bytes": 784, "truncated_num_cols": 1, "truncated_num_rows": 49, "truncated_size_bytes": 784, "truncated_string_columns": [] }, "display_id": "e5bc1e5e-3c5f-48a2-a9d3-defbee743e8b", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T15:53:17.396262", "user_variable_name": null, "variable_name": "unk_dataframe_1e9409e304d04eb6af9f5877dedc56eb" } }, "noteable": { "cell_type": "code" } }, "outputs": [ { "data": { "text/plain": [ "TECTONIC SETTING 236\n", "LATITUDE 36\n", "LONGITUDE 36\n", "LAND OR SEA 37\n", "SAMPLE NAME 36\n", "SIO2(WT%) 14461\n", "TIO2(WT%) 14939\n", "AL2O3(WT%) 15468\n", "Fe2O3T(WT%) 15081\n", "CAO(WT%) 15427\n", "MGO(WT%) 14418\n", "MNO(WT%) 17012\n", "K2O(WT%) 13636\n", "NA2O(WT%) 15319\n", "P2O5(WT%) 17290\n", "Fe2O3T 15109\n", "H2OT(WT%) 83362\n", "CO2(WT%) 77215\n", "LOI(WT%) 50411\n", "NI(PPM) 33021\n", "CU(PPM) 53571\n", "ZN(PPM) 51814\n", "SC(PPM) 48800\n", "V(PPM) 41738\n", "CR(PPM) 35291\n", "CO(PPM) 53507\n", "RB(PPM) 28068\n", "SR(PPM) 25611\n", "Y(PPM) 31865\n", "ZR(PPM) 29186\n", "NB(PPM) 34597\n", "CS(PPM) 63293\n", "BA(PPM) 30998\n", "LA(PPM) 38845\n", "CE(PPM) 39229\n", "PR(PPM) 57816\n", "ND(PPM) 42582\n", "SM(PPM) 43711\n", "EU(PPM) 46014\n", "GD(PPM) 54015\n", "TB(PPM) 50527\n", "DY(PPM) 54421\n", "HO(PPM) 57478\n", "ER(PPM) 54902\n", "TM(PPM) 60362\n", "YB(PPM) 45918\n", "LU(PPM) 48361\n", "HF(PPM) 51513\n", "TA(PPM) 54137\n", "dtype: int64" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check for missing values in each column\n", "df.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 21, "id": "22b490d7-330c-49df-809d-80ebfce557d5", "metadata": { "ExecuteTime": { "end_time": "2023-06-28T15:54:41.943604+00:00", "start_time": "2023-06-28T15:54:41.404054+00:00" }, "datalink": { "25f0544c-7c45-46be-8a1e-ec6c01772d19": { "applied_filters": [], "dataframe_info": { "default_index_used": false, "orig_num_cols": 1, "orig_num_rows": 49, "orig_size_bytes": 784, "truncated_num_cols": 1, "truncated_num_rows": 49, "truncated_size_bytes": 784, "truncated_string_columns": [] }, "display_id": "25f0544c-7c45-46be-8a1e-ec6c01772d19", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T15:54:41.788037", "user_variable_name": null, "variable_name": "unk_dataframe_58f7c27386664fb789931e6b1b3a71f9" } }, "noteable": { "cell_type": "code" } }, "outputs": [ { "data": { "text/plain": [ "TECTONIC SETTING 236\n", "LATITUDE 0\n", "LONGITUDE 0\n", "LAND OR SEA 37\n", "SAMPLE NAME 36\n", "SIO2(WT%) 0\n", "TIO2(WT%) 0\n", "AL2O3(WT%) 0\n", "Fe2O3T(WT%) 0\n", "CAO(WT%) 0\n", "MGO(WT%) 0\n", "MNO(WT%) 0\n", "K2O(WT%) 0\n", "NA2O(WT%) 0\n", "P2O5(WT%) 0\n", "Fe2O3T 0\n", "H2OT(WT%) 83362\n", "CO2(WT%) 29\n", "LOI(WT%) 1\n", "NI(PPM) 1\n", "CU(PPM) 2\n", "ZN(PPM) 2\n", "SC(PPM) 1\n", "V(PPM) 1\n", "CR(PPM) 1\n", "CO(PPM) 3\n", "RB(PPM) 1\n", "SR(PPM) 1\n", "Y(PPM) 1\n", "ZR(PPM) 1\n", "NB(PPM) 1\n", "CS(PPM) 2\n", "BA(PPM) 1\n", "LA(PPM) 1\n", "CE(PPM) 1\n", "PR(PPM) 1\n", "ND(PPM) 1\n", "SM(PPM) 1\n", "EU(PPM) 1\n", "GD(PPM) 1\n", "TB(PPM) 1\n", "DY(PPM) 1\n", "HO(PPM) 1\n", "ER(PPM) 1\n", "TM(PPM) 1\n", "YB(PPM) 1\n", "LU(PPM) 8\n", "HF(PPM) 1\n", "TA(PPM) 8\n", "dtype: int64" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Fill missing values using interpolation\n", "df = df.interpolate()\n", "\n", "# Check for missing values again to confirm\n", "df.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 22, "id": "dd24206f-2ad6-4058-9f90-4fd7ed5d337e", "metadata": { "ExecuteTime": { "end_time": "2023-06-28T15:55:35.649644+00:00", "start_time": "2023-06-28T15:55:35.369597+00:00" }, "datalink": { "f42e5309-44b7-4e30-ad4f-759b8d22c260": { "applied_filters": [], "dataframe_info": { "default_index_used": false, "orig_num_cols": 1, "orig_num_rows": 49, "orig_size_bytes": 784, "truncated_num_cols": 1, "truncated_num_rows": 49, "truncated_size_bytes": 784, "truncated_string_columns": [] }, "display_id": "f42e5309-44b7-4e30-ad4f-759b8d22c260", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T15:55:35.494191", "user_variable_name": null, "variable_name": "unk_dataframe_5918954f4eea47b4b07c28e48bb5db00" } }, "noteable": { "cell_type": "code" } }, "outputs": [ { "data": { "text/plain": [ "TECTONIC SETTING 0\n", "LATITUDE 0\n", "LONGITUDE 0\n", "LAND OR SEA 0\n", "SAMPLE NAME 0\n", "SIO2(WT%) 0\n", "TIO2(WT%) 0\n", "AL2O3(WT%) 0\n", "Fe2O3T(WT%) 0\n", "CAO(WT%) 0\n", "MGO(WT%) 0\n", "MNO(WT%) 0\n", "K2O(WT%) 0\n", "NA2O(WT%) 0\n", "P2O5(WT%) 0\n", "Fe2O3T 0\n", "H2OT(WT%) 83362\n", "CO2(WT%) 29\n", "LOI(WT%) 1\n", "NI(PPM) 1\n", "CU(PPM) 2\n", "ZN(PPM) 2\n", "SC(PPM) 1\n", "V(PPM) 1\n", "CR(PPM) 1\n", "CO(PPM) 3\n", "RB(PPM) 1\n", "SR(PPM) 1\n", "Y(PPM) 1\n", "ZR(PPM) 1\n", "NB(PPM) 1\n", "CS(PPM) 2\n", "BA(PPM) 1\n", "LA(PPM) 1\n", "CE(PPM) 1\n", "PR(PPM) 1\n", "ND(PPM) 1\n", "SM(PPM) 1\n", "EU(PPM) 1\n", "GD(PPM) 1\n", "TB(PPM) 1\n", "DY(PPM) 1\n", "HO(PPM) 1\n", "ER(PPM) 1\n", "TM(PPM) 1\n", "YB(PPM) 1\n", "LU(PPM) 8\n", "HF(PPM) 1\n", "TA(PPM) 8\n", "dtype: int64" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Fill missing values in categorical columns with the mode\n", "for column in ['TECTONIC SETTING', 'LAND OR SEA', 'SAMPLE NAME']:\n", " df[column].fillna(df[column].mode()[0], inplace=True)\n", "\n", "# Check for missing values again to confirm\n", "df.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 23, "id": "20e89145-b771-4ee1-96ae-9d199b2e7c8e", "metadata": { "ExecuteTime": { "end_time": "2023-06-28T15:57:15.764179+00:00", "start_time": "2023-06-28T15:57:13.024051+00:00" }, "noteable": { "cell_type": "code" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import numpy as np\n", "# Compute the correlation matrix\n", "corr = df.corr()\n", "\n", "# Generate a mask for the upper triangle\n", "mask = np.triu(np.ones_like(corr, dtype=bool))\n", "\n", "# Set up the matplotlib figure\n", "f, ax = plt.subplots(figsize=(11, 9))\n", "\n", "# Generate a custom diverging colormap\n", "cmap = sns.diverging_palette(230, 20, as_cmap=True)\n", "\n", "# Draw the heatmap with the mask and correct aspect ratio\n", "sns.heatmap(corr, mask=mask, cmap=cmap, vmax=.3, center=0,\n", " square=True, linewidths=.5, cbar_kws={\"shrink\": .5})" ] }, { "cell_type": "code", "execution_count": 24, "id": "e346404b-e9f5-4182-adb7-0d1409167f65", "metadata": { "ExecuteTime": { "end_time": "2023-06-28T15:58:41.637895+00:00", "start_time": "2023-06-28T15:58:38.726706+00:00" }, "noteable": { "cell_type": "code" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdAAAAGDCAYAAACbR0FZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAb9UlEQVR4nO3de5RdZZnn8e9DKjHBKJCAiIka7XgZ7FaUNN7QQVqmE8DRnunlZdlNdUuPY9sTojjDQgmrEkzQHhsVMvY4DHRbcdTWQW0vIQwgF8FG7SBXE1rKmMglQKgAEoid2zN/7H2Kk5OqStVbl5NKvp+1snLOfvfe73N27bN/Z1/O2ZGZSJKk4Tmk3QVIkjQRGaCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVBpARGREzB2HfiIi/j4iHouIn451f0MREUdFxD0RMa3NdRwdEesi4lntrEPqjwGq/V5EbIiIbRGxtQ6ZVRHxwnbX1RARfxYRN49gFicCpwCzM/OEfuY/JSIuioj762WwISI+39S+ISLe3vR8dkR8JSJ6I+KpiPhpRJze1P68iPhaRDwYEU9ExI8i4vUt3Z4LfCkzt0XE+yJiXUtN1www7Ny6xsa/3U1/u60R8f6I+IOI+FVEPBQR722a/vCI+FlEPKcxLDMfBq4HPjjMZSqNOQNUE8U7MnM6cAzwMLCizfWMphcDGzLzqQHaPw7MA04AngOcBPysvxEjYgZwM7AdeBVwJPA54KsR8cf1aNOBfwaOB2YA3cCqiJhez+NZQCfwf+rxfwi8MiKOqts7gNcA01qGvRH4YWZOb/wDfk39t6v/fQX4PPAO4A+Bv42ISXU/nwI+nZlPtrysrwD/eYBlI7WNAaoJJTN/C1wBHNsYFhGHRcTKiNgcERsjYnFEHBIRM+q9tnfU402PiJ6IOKN+/qWI+GK95/RkRNwYES/ur99B+vg3wBeBN9Z7WI8PMP0LIuK7EbGlruE/1cPPBC5rmn5pP5P/PvDtzHwwKxsyc+UAi+ijwFbgzMx8KDO3ZebXgOXARRERmbk+Mz+bmZsyc1dmXgpMAV5Rz+P1wOOZeX+9zB8A1gNvrdtfB/wcuLFl2CFUwbwvz87MuzPzDqqgnxkRJwAvycxv9DP+T4CXDvS3kdqlo90FSMMREYcC7wF+3DR4BXAY8FJgJnA1sCkzL4+IDwArI+LVVCFye0v4vB84jWoj/d+p9nZO7Kfrwfr4EPAXmdnfdA3/ANwNvAB4JXBNRPyynn7XPqb/MXB2RGwHbgLuzoF/g/MU4JuZubtl+DeATwMvB/6luSEijqMK0J560O+1jkO1F/pW4Jv1/zcB97UM+3Fm7higrmaPRMRr6se7gceA71Dt9e4lM3dGRA/VXu/GIcxfGhcGqCaKf4yIncCzgc1Uh/+oD/+9FziuPvT3ZERcBPwpcHlmXh0R/xf4AdXhyle3zHdVZv6wntd5wBMR8cLMvK8xwr762Ffh9fnaNwOn1XvQt0fEZcAZwHVDeO2fogqZ91Mdju2NiI9nZnc/4x4JbOpn+Kam9r5wjIjnAl8GlmbmE/Xgw4HWw6g3Aovqx28B/gdVgH64adiNQ3gtAB8CLgamUS3DvwSuBaZGxP+jCvMlmdk8vyfruqT9hodwNVG8KzMPB6YC/wW4MSKeTxUIk9lzz2QjMKvp+aXA71JdFNPbMt++oMzMrcAWqr3EZkPpYzAvALa0nNsb8vT1YdYvZOabqUJkOfB39eHjVo9SnSdudUxTOwBRXWH7Pao9x081jfsY1bnWZj8EXh0RRwBvAG7JzHuAY+phJ9bjDOX13J6ZJ2Xm64G1wAeAC6kOZS8F/hz4ckRE02TPAR4fyvyl8WKAakKpw+RbwC6qjfajwA6qC3EaXgQ8AH17j5cCK4EPx95fS+m7mre+iGYG8GDLOIP2AezrlkYPAjOary5tmX7I6nOaX6AKuWP7GeVa4D9EROt7+91UHxZ+AX0XCv0jcD97X6BzJ9Wh3uZ+19ev44PAr+sPGwC31MOms+dh9aH6HLA4M7dRHTpek5kbqD6wNF+gNBe4o2D+0pgxQDWhROWdwBHAuszcRXV+b3lEPKe+0ORsnrmC9BNUAfcB4DNU50MnNc3y1Ig4MSKmAJ+k2hu7r6mdIfTxMDC7nsde6vn9E/CpiJhan489s2n6fb3mj0TESRExLSI6IqKTao/stn5G/xzVudrLI+L5dX/vA84D/ltmZkRMproQaxvQ2c/50p8Ch0dE6x7yTfXrvqlp2M31sDV1CA5ZRJwCTM3M79eDfgWcHBGvAp4FNI4WnEB1lbLnP7VfMUA1UXwvIrYCv6E6hNmZmT+v2xYCT1FdKXoz8FWqQ5zHU23cz6hD8K+pwvTcpvl+FeiiOnR7PPAnA/Tfbx9123VUV6U+FBGP9j857wPmUO3FfRvoysxrh/janwYuAh6i2hv+K+A/1nuFe6gPUZ9Idah7LVUInQ38aWZ+vR7tTcDpwL8DHo9nvqP5lnoe24EvsfeyuBF4Xv36G26qhw3p8G1DvQf8GZ45rwrVMv4i1V70h+u/GVTnfr84nPlL4yG8obYOVhHxJeD+zFzc7lr2N/X3O28CXjvcPctRruN5VMH92voCLGm/4VW4kvaSmZupvm7T7joeAfq7WEpqOw/hSpJUwEO4kiQVcA9UkqQCBqgkSQWGdRHRkUcemXPmzBmjUiRJ2r/ceuutj2bmUf21DStA58yZw5o1a0anKkmS9nMRMeAPeHgIV5KkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqYABKklSAQNUkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVMAAlSSpgAEqSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkq0NHuAiQNz4oVK+jp6Rmw/YEHHgBg1qxZA44zd+5cFi5cOOq1SQcTA1SaYHp6erj97nXsOnRGv+2Tnn4CgIf+tf+396Snt4xZbdLBxACVJqBdh85g2ytP7bdt2j1XAuyzXdLIeA5UkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVMAAlSSpgAEqSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqYABKklSAQNUkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVMAAlSSpgAEqSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqYABKklSAQNUkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVMAAlSSpgAEqSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVRtGKFStYsWJFu8toO5eDDgYd7S5AOpD09PS0u4T9gstBBwP3QCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqYABKklSAQNUkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVMAAlSSpgAEqSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqYABKklSAQNUkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVMAAlSSpgAEqSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqYABKklSAQNUkqQCHe3quLe3l6VLl9LV1QXQ93jmzJntKmlQzfWW1DjS6Uv6OuOMM+jq6uKCCy6gu7t70L5b61uzZg3nnHMOn/nMZzjssMNYtGgRF1xwAZdddhkRwSc/+Ulg779bYz6dnZ2cf/75zJo1i09/+tODjtsY1tvby8c+9jE2btzIi170Ig499FDOPPNMFi9ezO7du8lMduzY0VfzlClTmD17NgCbNm1i2rRpbNmyZcyW63CcdNJJ3HDDDe0uo23uuOMOoFoOB7NJkyaxa9euvYYfccQRTJ06lU2bNgEwe/ZspkyZwn333bfHOj5cp59+OldffTXbt29nxowZPPbYY2QmRx11FJs3b6arq4u3ve1te0zT29vL4sWLiQjOPvtsLrnkEs466ywuueSSPbbPZ511Fp/97GfJTJYtW7bHtmSg7TnA+eefP+A0A7UNV6P/5rrHI0vatgfa3d3NXXfdxcqVK/d4vL8aaY3j+RobfS1ZsoSnnnqKrq6uffbdWt+SJUvYvXs3XV1dLFu2rG8+69atY+3atQP+3RrDurq6ePrpp7n33nv3OW5jWHd3Nxs2bCAz2bhxI+vWrWPJkiX89re/Zfv27XttWLZv38769etZv34927Zt22/CU2roLzwBHnvssb7wBLj//vtZv379iMIT4Pvf/z7bt28HYMuWLWQmAJs3bwZg+fLle03T3d3d975etmwZd911V9//ze/dZcuWsXbtWtatW7fXtmSg7Xl3d/eg0wzUNlzNNY5nlrQlQHt7e7nqqqvITFavXt33+KqrrqK3t7cdJQ2qud6SGkc6fWlfW7duBWDr1q2D9t1a33XXXbfHtBs2bOh73HDllVeyevXqPebbX98Aq1atGnTcq666ip6eHlatWrVXbc3zmWgO1r2vg/V1TwQ7d+7k+uuv73ve29vL6tWr+543PsA2/l+9enXfe7exHQBYvXp137akdXveGL/xeLBp+msbrub+G3WPV5a05RBud3c3u3fvBtjjE9euXbtYuXIlH/3oR9tR1oCa6y2pcaTTl9baaqC+W+u78MIL99nPjh07iIg95puZ/fa9c+fOQcfdtWsXy5YtG/DT+kS2aNGiUZ9nT08Ph2zP4ukP+e1v6Ol5ckxq0/5v+fLlfYdxu7u72blz54DjDrRHvGPHjr5tyUDb8x07dvTtAfc3Teu4pdvF/rZ545Ul+9wDjYgPRsSaiFjTOAwwUtdee23fHy0z+xbyzp07ueaaa0alj9HUXG9JjSOdvrSvVgP13VrfYG+oZq1/t8H6HmzcnTt37vHpVtLYaX6PXnvttXuEXKvm7XPr8Ma2ZKDteet0rdM0tze3DVd/253xypJ97oFm5qXApQDz5s0r/9jb5O1vfztXXnnlHnsmmUlHRwennHLKaHQxqprrLalxpNOX9tVqoL5b6wOGFKIRscffLTMH7HuwcTs6Opg9e/YBGaIXX3zxqM9z0aJF3Lr+4eLpd099LnNfevSY1AYewt3fNd7jUL33v/e97w0Yos3b59bhjW3JQNvzxnt+oGma+21uG67+tnnjlSVtOQfa2dnJIYdUXU+ePJnJkycD1RVrZ5xxRjtKGlRzvSU1jnT60r5aDdR3a32f+MQn9tnP5MmT+96IjfkO1HdHR8eg406aNInFixczadKkob1IScXOO++8vsednZ17BGqr5vd56/DGtqR1e94Yv3nb3t80A7UNV3/bnfHKkrYE6MyZM5k/fz4RwYIFC/oez58/f7/8GktzvSU1jnT60r6mT58OwPTp0wftu7W+k08+eY9p58yZ0/e44dRTT2XBggV7zLe/vgFOO+20QcedP38+c+fO5bTTTturtub5TDQH69dYDtbXPRF0dHTs8TWWmTNnsmDBgr7nc+bMISL6/l+wYEHfe7exHQBYsGBB37akdXveGL/xeLBp+msbrub+G3WPV5a07XugnZ2dbNiwoe9TQvPj/VFrveM9fWlfXV1dLF26lO7u7kH7bq1vyZIlnHPOOSxdurTve6BLly7t+x7oQH+3xnyavwe6r3GbP5XeeeedB8T3QCXY/74H2rz32dDZ2cm9997b7/dAm9+7zd8Dbd2WDLY97+npGXCagdqGq9F/a91jLQY7gdxq3rx5uWbNmjEsR5rYGle2jtX5xUYft65/mG2vPLXf9mn3XAkwaPvxY3gOtFEjjO1ykMZDRNyamfP6a/On/CRJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqYABKklSAQNUkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVMAAlSSpgAEqSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqYABKklSAQNUkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVMAAlSSpgAEqSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqUBHuwuQDiRz585tdwn7BZeDDgYGqDSKFi5c2O4S9gsuBx0MPIQrSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqYABKklSAQNUkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVMAAlSSpgAEqSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqYABKklSAQNUkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVMAAlSSpgAEqSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkq0NHuAiQN36SntzDtnisHaOsFGKR9C3D0WJUmHTQMUGmCmTt37qDtDzywE4BZswYKyaP3OQ9J+2aAShPMwoUL212CJDwHKklSEQNUkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVMAAlSSpgAEqSVIBA1SSpAIGqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJUwACVJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBAJUkqYIBKklTAAJUkqYABKklSAQNUkqQCBqgkSQUMUEmSChigkiQVMEAlSSpggEqSVCAyc+gjR2wGNo5Cv0cCj47CfDQwl/HYcvmOLZfv2HMZD82LM/Oo/hqGFaCjJSLWZOa8ce/4IOIyHlsu37Hl8h17LuOR8xCuJEkFDFBJkgq0K0AvbVO/BxOX8dhy+Y4tl+/YcxmPUFvOgUqSNNF5CFeSpALjHqARMT8i/iUieiLi3PHu/0ATES+MiOsjYm1E/DwiFtXDZ0TENRFxb/3/Ee2udSKLiEkRcVtEfL9+/pKI+Em9Hn89Iqa0u8aJLCIOj4grIuKeiFgXEW90HR49EfHRevtwd0R8LSKmug6P3LgGaERMAr4ALACOBd4XEceOZw0HoJ3AxzLzWOANwF/Vy/Rc4AeZ+TLgB/VzlVsErGt6/tfA5zJzLvAYcGZbqjpwXAxclZmvBF5Dtaxdh0dBRMwCzgLmZebvApOA9+I6PGLjvQd6AtCTmeszczvwD8A7x7mGA0pmbsrMn9WPn6Ta8MyiWq7d9WjdwLvaUuABICJmA6cBl9XPAzgZuKIexeU7AhFxGPBW4HKAzNyemY/jOjyaOoBpEdEBHApswnV4xMY7QGcB9zU9v78eplEQEXOA1wI/AY7OzE1100PA0e2q6wDweeAcYHf9fCbweGburJ+7Ho/MS4DNwN/Xh8kvi4hn4zo8KjLzAeBvgF9TBecTwK24Do+YFxEdICJiOvBN4COZ+ZvmtqwutfZy6wIRcTrwSGbe2u5aDmAdwOuA/5mZrwWeouVwretwufrc8TupPqi8AHg2ML+tRR0gxjtAHwBe2PR8dj1MIxARk6nC8yuZ+a168MMRcUzdfgzwSLvqm+DeDPz7iNhAdcrhZKrzdYfXh8PA9Xik7gfuz8yf1M+voApU1+HR8XbgV5m5OTN3AN+iWq9dh0dovAP0n4GX1Vd/TaE6kf3dca7hgFKfj7scWJeZn21q+i7QWT/uBL4z3rUdCDLz45k5OzPnUK2v12Xm+4HrgT+uR3P5jkBmPgTcFxGvqAf9AbAW1+HR8mvgDRFxaL29aCxf1+ERGvcfUoiIU6nOKU0C/i4zl49rAQeYiDgRuAm4i2fO0X2C6jzoN4AXUd1B592ZuaUtRR4gIuIk4L9m5ukR8VKqPdIZwG3An2Tmv7axvAktIo6jukhrCrAe+HOqD/iuw6MgIpYC76G6av824C+oznm6Do+Av0QkSVIBLyKSJKmAASpJUgEDVJKkAgaoJEkFDFBJkgoYoJIkFTBApUIRcV59i6g7I+L2iHh9RNwQEfPq9sMiYmV9u6hf1o8Pq9uOi4hbmqZ/T8u8r4iIl0bEooj4fNPw/xUR1zY9XxgRK+r+b4+IhyLigabnR0fEzfVtrN7VNN13IuIFTc//JiJOHrulJR14DFCpQES8ETgdeF1mvprq59LuaxntcmB9Zs7NzN8BfkV9RxfgaeCMzHwV1e+Sfj4iDq/n/SpgUmauB34EvKlpnq8BDqtvDUjd9qPMPC4zjwO+SHWLqsbz99TDTgA+Us//HcBtmflg03xX4O3CpGHp2PcokvpxDPBo45dbMvNRgOqX0iAi5gLHUwVYwwVAT0T8Tmb+ojEwMx+MiEeAo4DHgffzzM+q3Q68PCKmUf1KzzagB/i9uu1NVHeKGcgOqttXPQvYVf/26UeAdzSPlJkbI2JmRDy//mk9SfvgHqhU5mrghRHxi4j424j4ty3txwK3Z+auxoD68e3Aq5pHjIgTqMLxl/WgN1Pdbor6dlO3Ab9PdcP0nwA/Bt5U3yg5MrN1z7fZV6nuxHENcCHwYeDLmfl0P+P+rO5b0hC4ByoVyMytEXE88BbgbcDXI2LYh0Dru4x8GejMzMZvGR9DdX/Mhn+i2tOcBtwC3Ev1e8eb67bB6nyC6mbgjdtanQv8UUT8b+AI4KLMvKUe/RGq211JGgIDVCpU71HeANwQEXfxzJ1DoLrbxXERcUgjGCPiEOC4uo2IeC6wCjgvM3/cNO02YGrT8x8BH6qHfYEqOI9lCAHa4nxgOfA+4Gaq24Z9C/jDun1q3bekIfAQrlQgIl4RES9rGnQc1R1DAMjMHqpDr4ubxlkM/Cwze+rb+X0bWJmZV7TMfh0wt+n5LVSHb4/KzEfqm0tvpjo0+6Mh1vsyYHZm3kB1TnQ31Q2qpzWN9nLg7qHMT5IBKpWaDnRHxNqIuJNqj3BJyzhnUl0A9MuI+CVVQJ1Zt70beCvwZ01fOTmublsFnNSYSWY+RhWYP2+a9y3A84A7hljvcuC8+vHXgL+kuj/vxdB3U/a5wJohzk866Hk7M2k/U19xez3w5uaLkMa4zz+i+krO+ePRn3QgcA9U2s9k5jagi+qGx+OlA7hoHPuTJjz3QCVJKuAeqCRJBQxQSZIKGKCSJBUwQCVJKmCASpJU4P8DDoh4691r4ZUAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Create histogram for 'SIO2(WT%)'\n", "plt.figure(figsize=(8, 6))\n", "sns.histplot(df['SIO2(WT%)'], bins=30, kde=True)\n", "plt.title('Histogram of SIO2(WT%)')\n", "plt.xlabel('SIO2(WT%)')\n", "plt.ylabel('Frequency')\n", "plt.show()\n", "\n", "# Create boxplot for 'SIO2(WT%)'\n", "plt.figure(figsize=(8, 6))\n", "sns.boxplot(x=df['SIO2(WT%)'])\n", "plt.title('Boxplot of SIO2(WT%)')\n", "plt.xlabel('SIO2(WT%)')\n", "plt.show()\n", "\n", "# Create histogram for 'NI(PPM)'\n", "plt.figure(figsize=(8, 6))\n", "sns.histplot(df['NI(PPM)'], bins=30, kde=True)\n", "plt.title('Histogram of NI(PPM)')\n", "plt.xlabel('NI(PPM)')\n", "plt.ylabel('Frequency')\n", "plt.show()\n", "\n", "# Create boxplot for 'NI(PPM)'\n", "plt.figure(figsize=(8, 6))\n", "sns.boxplot(x=df['NI(PPM)'])\n", "plt.title('Boxplot of NI(PPM)')\n", "plt.xlabel('NI(PPM)')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 25, "id": "5293b2b2-e551-442a-8c1a-9f6a7bb00b7e", "metadata": { "ExecuteTime": { "end_time": "2023-06-28T15:59:38.914482+00:00", "start_time": "2023-06-28T15:59:38.524496+00:00" }, "datalink": { "64f1da02-cb63-43cc-82ee-70c8f68cd449": { "applied_filters": [], "dataframe_info": { "default_index_used": true, "orig_num_cols": 64, "orig_num_rows": 5, "orig_size_bytes": 2005, "truncated_num_cols": 64, "truncated_num_rows": 5, "truncated_size_bytes": 2005, "truncated_string_columns": [] }, "display_id": "64f1da02-cb63-43cc-82ee-70c8f68cd449", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T15:59:38.748183", "user_variable_name": null, "variable_name": "unk_dataframe_1754f8008a1d4db289cb74ac9e3e25c2" } }, "noteable": { "cell_type": "code" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LATITUDELONGITUDESAMPLE NAMESIO2(WT%)TIO2(WT%)AL2O3(WT%)Fe2O3T(WT%)CAO(WT%)MGO(WT%)MNO(WT%)...TECTONIC SETTING_OCEANIC PLATEAUTECTONIC SETTING_OPHIOLITETECTONIC SETTING_PASSIVE MARGINTECTONIC SETTING_RIFT VOLCANICSTECTONIC SETTING_SEAMOUNTTECTONIC SETTING_SUBMARINE RIDGELAND OR SEA_SAELAND OR SEA_SAQLAND OR SEA_SaeLAND OR SEA_Saq
034.0000131.5000s_1 [4742]46.671.9613.14010.45708.8714.210.120...0000001000
1-21.2500-159.7500s_R40 [4683]45.972.9111.86011.42009.7411.340.180...0000001000
247.1200152.2300s_V-17-603 [7321] / s_V17-603 [4190]51.531.7914.08010.00358.397.970.160...0000001000
347.1200152.2300s_V15-307 [6818] / s_V-15-307 [3042]58.220.6716.3008.58707.043.360.140...0000001000
427.6149-16.1633s_157-956B-44R-4,G1 [4750]54.510.7716.42510.67508.764.280.165...0000000100
\n", "

5 rows × 64 columns

\n", "
" ], "text/plain": [ " LATITUDE LONGITUDE SAMPLE NAME SIO2(WT%) \\\n", "0 34.0000 131.5000 s_1 [4742] 46.67 \n", "1 -21.2500 -159.7500 s_R40 [4683] 45.97 \n", "2 47.1200 152.2300 s_V-17-603 [7321] / s_V17-603 [4190] 51.53 \n", "3 47.1200 152.2300 s_V15-307 [6818] / s_V-15-307 [3042] 58.22 \n", "4 27.6149 -16.1633 s_157-956B-44R-4,G1 [4750] 54.51 \n", "\n", " TIO2(WT%) AL2O3(WT%) Fe2O3T(WT%) CAO(WT%) MGO(WT%) MNO(WT%) ... \\\n", "0 1.96 13.140 10.4570 8.87 14.21 0.120 ... \n", "1 2.91 11.860 11.4200 9.74 11.34 0.180 ... \n", "2 1.79 14.080 10.0035 8.39 7.97 0.160 ... \n", "3 0.67 16.300 8.5870 7.04 3.36 0.140 ... \n", "4 0.77 16.425 10.6750 8.76 4.28 0.165 ... \n", "\n", " TECTONIC SETTING_OCEANIC PLATEAU TECTONIC SETTING_OPHIOLITE \\\n", "0 0 0 \n", "1 0 0 \n", "2 0 0 \n", "3 0 0 \n", "4 0 0 \n", "\n", " TECTONIC SETTING_PASSIVE MARGIN TECTONIC SETTING_RIFT VOLCANICS \\\n", "0 0 0 \n", "1 0 0 \n", "2 0 0 \n", "3 0 0 \n", "4 0 0 \n", "\n", " TECTONIC SETTING_SEAMOUNT TECTONIC SETTING_SUBMARINE RIDGE \\\n", "0 0 0 \n", "1 0 0 \n", "2 0 0 \n", "3 0 0 \n", "4 0 0 \n", "\n", " LAND OR SEA_SAE LAND OR SEA_SAQ LAND OR SEA_Sae LAND OR SEA_Saq \n", "0 1 0 0 0 \n", "1 1 0 0 0 \n", "2 1 0 0 0 \n", "3 1 0 0 0 \n", "4 0 1 0 0 \n", "\n", "[5 rows x 64 columns]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Perform one-hot encoding on categorical columns\n", "df = pd.get_dummies(df, columns=['TECTONIC SETTING', 'LAND OR SEA'])\n", "\n", "# Display the first few rows of the dataframe to confirm\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 26, "id": "dce2a8eb-d8be-4951-adcc-9d7507db2090", "metadata": { "ExecuteTime": { "end_time": "2023-06-28T16:00:26.060916+00:00", "start_time": "2023-06-28T16:00:25.623703+00:00" }, "datalink": { "4a2e29d6-d1a5-4be9-8cec-81af8c8a4dfa": { "applied_filters": [], "dataframe_info": { "default_index_used": true, "orig_num_cols": 64, "orig_num_rows": 5, "orig_size_bytes": 2005, "truncated_num_cols": 64, "truncated_num_rows": 5, "truncated_size_bytes": 2005, "truncated_string_columns": [] }, "display_id": "4a2e29d6-d1a5-4be9-8cec-81af8c8a4dfa", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T16:00:25.895496", "user_variable_name": null, "variable_name": "unk_dataframe_198c353672304a549fda1524dfa680ae" } }, "noteable": { "cell_type": "code" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\25688\\AppData\\Local\\Temp\\ipykernel_136772\\444792743.py:2: FutureWarning: Dropping of nuisance columns in DataFrame reductions (with 'numeric_only=None') is deprecated; in a future version this will raise TypeError. Select only valid columns before calling the reduction.\n", " df.fillna(df.median(), inplace=True)\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LATITUDELONGITUDESAMPLE NAMESIO2(WT%)TIO2(WT%)AL2O3(WT%)Fe2O3T(WT%)CAO(WT%)MGO(WT%)MNO(WT%)...TECTONIC SETTING_OCEANIC PLATEAUTECTONIC SETTING_OPHIOLITETECTONIC SETTING_PASSIVE MARGINTECTONIC SETTING_RIFT VOLCANICSTECTONIC SETTING_SEAMOUNTTECTONIC SETTING_SUBMARINE RIDGELAND OR SEA_SAELAND OR SEA_SAQLAND OR SEA_SaeLAND OR SEA_Saq
034.0000131.5000s_1 [4742]46.671.9613.14010.45708.8714.210.120...0000001000
1-21.2500-159.7500s_R40 [4683]45.972.9111.86011.42009.7411.340.180...0000001000
247.1200152.2300s_V-17-603 [7321] / s_V17-603 [4190]51.531.7914.08010.00358.397.970.160...0000001000
347.1200152.2300s_V15-307 [6818] / s_V-15-307 [3042]58.220.6716.3008.58707.043.360.140...0000001000
427.6149-16.1633s_157-956B-44R-4,G1 [4750]54.510.7716.42510.67508.764.280.165...0000000100
\n", "

5 rows × 64 columns

\n", "
" ], "text/plain": [ " LATITUDE LONGITUDE SAMPLE NAME SIO2(WT%) \\\n", "0 34.0000 131.5000 s_1 [4742] 46.67 \n", "1 -21.2500 -159.7500 s_R40 [4683] 45.97 \n", "2 47.1200 152.2300 s_V-17-603 [7321] / s_V17-603 [4190] 51.53 \n", "3 47.1200 152.2300 s_V15-307 [6818] / s_V-15-307 [3042] 58.22 \n", "4 27.6149 -16.1633 s_157-956B-44R-4,G1 [4750] 54.51 \n", "\n", " TIO2(WT%) AL2O3(WT%) Fe2O3T(WT%) CAO(WT%) MGO(WT%) MNO(WT%) ... \\\n", "0 1.96 13.140 10.4570 8.87 14.21 0.120 ... \n", "1 2.91 11.860 11.4200 9.74 11.34 0.180 ... \n", "2 1.79 14.080 10.0035 8.39 7.97 0.160 ... \n", "3 0.67 16.300 8.5870 7.04 3.36 0.140 ... \n", "4 0.77 16.425 10.6750 8.76 4.28 0.165 ... \n", "\n", " TECTONIC SETTING_OCEANIC PLATEAU TECTONIC SETTING_OPHIOLITE \\\n", "0 0 0 \n", "1 0 0 \n", "2 0 0 \n", "3 0 0 \n", "4 0 0 \n", "\n", " TECTONIC SETTING_PASSIVE MARGIN TECTONIC SETTING_RIFT VOLCANICS \\\n", "0 0 0 \n", "1 0 0 \n", "2 0 0 \n", "3 0 0 \n", "4 0 0 \n", "\n", " TECTONIC SETTING_SEAMOUNT TECTONIC SETTING_SUBMARINE RIDGE \\\n", "0 0 0 \n", "1 0 0 \n", "2 0 0 \n", "3 0 0 \n", "4 0 0 \n", "\n", " LAND OR SEA_SAE LAND OR SEA_SAQ LAND OR SEA_Sae LAND OR SEA_Saq \n", "0 1 0 0 0 \n", "1 1 0 0 0 \n", "2 1 0 0 0 \n", "3 1 0 0 0 \n", "4 0 1 0 0 \n", "\n", "[5 rows x 64 columns]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Fill missing values with median of the columns\n", "df.fillna(df.median(), inplace=True)\n", "\n", "# Display the first few rows of the dataframe to confirm\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 27, "id": "32d02e18-8ebe-418f-b387-1c93459e8aaf", "metadata": { "ExecuteTime": { "end_time": "2023-06-28T16:19:50.443424+00:00", "start_time": "2023-06-28T16:19:50.225031+00:00" }, "noteable": { "cell_type": "code" } }, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "# Define the target variable and the feature variables\n", "y = df['TECTONIC SETTING_INTRAPLATE VOLCANICS']\n", "X = df.drop('TECTONIC SETTING_INTRAPLATE VOLCANICS', axis=1).drop('H2OT(WT%)', axis=1).drop('SAMPLE NAME', axis=1)\n", "# Split the data into training and test sets\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)" ] }, { "cell_type": "code", "execution_count": 28, "id": "a8d7c712-cead-4d24-b3a2-635bc8601fe4", "metadata": { "ExecuteTime": { "end_time": "2023-06-28T16:19:59.029316+00:00", "start_time": "2023-06-28T16:19:58.824247+00:00" }, "datalink": { "15d83bee-b6a6-459f-9309-c595b60bad5a": { "applied_filters": [], "dataframe_info": { "default_index_used": false, "orig_num_cols": 1, "orig_num_rows": 62, "orig_size_bytes": 992, "truncated_num_cols": 1, "truncated_num_rows": 62, "truncated_size_bytes": 992, "truncated_string_columns": [] }, "display_id": "15d83bee-b6a6-459f-9309-c595b60bad5a", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T16:17:36.779439", "user_variable_name": null, "variable_name": "unk_dataframe_ecabb215c5874dba9e238661d0782b17" }, "a36956de-d165-4ff9-9956-14a961039435": { "applied_filters": [], "dataframe_info": { "default_index_used": false, "orig_num_cols": 1, "orig_num_rows": 62, "orig_size_bytes": 992, "truncated_num_cols": 1, "truncated_num_rows": 62, "truncated_size_bytes": 992, "truncated_string_columns": [] }, "display_id": "a36956de-d165-4ff9-9956-14a961039435", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T16:07:50.365431", "user_variable_name": null, "variable_name": "unk_dataframe_60a5ec5baa004dce94e8e67ab4011155" }, "da07bd2c-46a7-40ec-bfd0-09f3cbf17bbf": { "applied_filters": [], "dataframe_info": { "default_index_used": false, "orig_num_cols": 1, "orig_num_rows": 62, "orig_size_bytes": 992, "truncated_num_cols": 1, "truncated_num_rows": 62, "truncated_size_bytes": 992, "truncated_string_columns": [] }, "display_id": "da07bd2c-46a7-40ec-bfd0-09f3cbf17bbf", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T16:15:08.276198", "user_variable_name": null, "variable_name": "unk_dataframe_5b04bc8c10f94597b8faa7c71b4b73d6" }, "f4b7e779-1211-4910-97df-6ee01376376d": { "applied_filters": [], "dataframe_info": { "default_index_used": false, "orig_num_cols": 1, "orig_num_rows": 61, "orig_size_bytes": 976, "truncated_num_cols": 1, "truncated_num_rows": 61, "truncated_size_bytes": 976, "truncated_string_columns": [] }, "display_id": "f4b7e779-1211-4910-97df-6ee01376376d", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T16:19:58.873620", "user_variable_name": null, "variable_name": "unk_dataframe_98aa5d8c18c7471ca420870b413111fe" } }, "noteable": { "cell_type": "code" } }, "outputs": [ { "data": { "text/plain": [ "LATITUDE 0\n", "LONGITUDE 0\n", "SIO2(WT%) 0\n", "TIO2(WT%) 0\n", "AL2O3(WT%) 0\n", " ..\n", "TECTONIC SETTING_SUBMARINE RIDGE 0\n", "LAND OR SEA_SAE 0\n", "LAND OR SEA_SAQ 0\n", "LAND OR SEA_Sae 0\n", "LAND OR SEA_Saq 0\n", "Length: 61, dtype: int64" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check for missing values in the training set\n", "X_train.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 29, "id": "e3c77dfc-22ef-459c-8e5a-4c7ae0a4e41e", "metadata": { "ExecuteTime": { "end_time": "2023-06-28T16:20:06.750253+00:00", "start_time": "2023-06-28T16:20:06.324195+00:00" }, "datalink": { "58c5e916-d829-4791-87a8-8581217a2d03": { "applied_filters": [], "dataframe_info": { "default_index_used": false, "orig_num_cols": 1, "orig_num_rows": 61, "orig_size_bytes": 976, "truncated_num_cols": 1, "truncated_num_rows": 61, "truncated_size_bytes": 976, "truncated_string_columns": [] }, "display_id": "58c5e916-d829-4791-87a8-8581217a2d03", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T16:20:06.594732", "user_variable_name": null, "variable_name": "unk_dataframe_0981636b1eb84a35843e88f18ded9bf4" }, "b1c927bd-bcc1-45d9-b7f3-4244cbbc09fd": { "applied_filters": [], "dataframe_info": { "default_index_used": false, "orig_num_cols": 1, "orig_num_rows": 62, "orig_size_bytes": 992, "truncated_num_cols": 1, "truncated_num_rows": 62, "truncated_size_bytes": 992, "truncated_string_columns": [] }, "display_id": "b1c927bd-bcc1-45d9-b7f3-4244cbbc09fd", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T16:11:32.310128", "user_variable_name": null, "variable_name": "unk_dataframe_d412e317fe1340ee9bc8938853c93962" }, "f3750d35-f50c-4fef-b6a5-67092c4fad8d": { "applied_filters": [], "dataframe_info": { "default_index_used": false, "orig_num_cols": 1, "orig_num_rows": 62, "orig_size_bytes": 992, "truncated_num_cols": 1, "truncated_num_rows": 62, "truncated_size_bytes": 992, "truncated_string_columns": [] }, "display_id": "f3750d35-f50c-4fef-b6a5-67092c4fad8d", "dx_settings": { "ALLOW_NOTEABLE_ATTRS": true, "COLUMN_SAMPLING_METHOD": "outer", "DB_LOCATION": ":memory:", "DEV_MODE": false, "DISPLAY_MAX_COLUMNS": 100, "DISPLAY_MAX_ROWS": 50000, "DISPLAY_MODE": "simple", "ENABLE_ASSIGNMENT": true, "ENABLE_DATALINK": true, "FLATTEN_COLUMN_VALUES": true, "FLATTEN_INDEX_VALUES": false, "GENERATE_DEX_METADATA": false, "HTML_TABLE_SCHEMA": false, "LOG_LEVEL": 30, "MAX_RENDER_SIZE_BYTES": 104857600, "MAX_STRING_LENGTH": 250, "NUM_PAST_SAMPLES_TRACKED": 3, "RANDOM_STATE": 12648430, "RESET_INDEX_VALUES": false, "ROW_SAMPLING_METHOD": "random", "SAMPLING_FACTOR": 0.1, "SAMPLING_METHOD": "random", "STRINGIFY_COLUMN_VALUES": true, "STRINGIFY_INDEX_VALUES": false }, "sample_history": [], "sampling_time": "2023-06-28T16:15:17.197808", "user_variable_name": null, "variable_name": "unk_dataframe_da910f99f3dd470d8537020325c0c9de" } }, "dx": { "dashboard": { "multiViews": [] }, "fieldMetadata": { "0": { "columnPosition": 2 }, "index": { "columnPosition": 1 } }, "updated": 1687968933827, "views": [ { "annotationRules": [], "chart": {}, "chartMode": "grid", "confoRules": [], "decoration": { "footer": "", "subtitle": "", "title": "Table" }, "facets": [], "filterSettings": { "SHOW_FILTER_PANEL": true, "filters": [] }, "id": "first-view", "isDefault": true, "type": "public", "userID": "" }, { "annotationRules": [], "chart": {}, "chartMode": "grid", "confoRules": [], "decoration": { "footer": "", "subtitle": "", "title": "Table" }, "facets": [], "filterSettings": { "SHOW_FILTER_PANEL": true, "filters": [] }, "id": "first-view", "isDefault": true, "isTransitory": true, "type": "public", "userID": "" } ] }, "noteable": { "cell_type": "code" } }, "outputs": [ { "data": { "text/plain": [ "LATITUDE 0\n", "LONGITUDE 0\n", "SIO2(WT%) 0\n", "TIO2(WT%) 0\n", "AL2O3(WT%) 0\n", " ..\n", "TECTONIC SETTING_SUBMARINE RIDGE 0\n", "LAND OR SEA_SAE 0\n", "LAND OR SEA_SAQ 0\n", "LAND OR SEA_Sae 0\n", "LAND OR SEA_Saq 0\n", "Length: 61, dtype: int64" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calculate the median of each column\n", "medians = X_train.median()\n", "\n", "# Fill missing values with the median of each column\n", "X_train = X_train.fillna(medians)\n", "X_test = X_test.fillna(medians)\n", "\n", "# Check again for missing values in the training set\n", "X_train.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 13, "id": "ffd12cb1-2b37-4eb6-9227-5a60d8856e21", "metadata": { "ExecuteTime": null, "noteable": { "cell_type": "code" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Program Files\\Python310\\lib\\site-packages\\sklearn\\linear_model\\_logistic.py:814: ConvergenceWarning: lbfgs failed to converge (status=1):\n", "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n", "\n", "Increase the number of iterations (max_iter) or scale the data as shown in:\n", " https://scikit-learn.org/stable/modules/preprocessing.html\n", "Please also refer to the documentation for alternative solver options:\n", " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n", " n_iter_i = _check_optimize_result(\n" ] }, { "data": { "text/plain": [ "0.9727703472680381" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.linear_model import LogisticRegression\n", "from sklearn.metrics import accuracy_score\n", "\n", "\n", "# Create and train the model\n", "logreg = LogisticRegression(max_iter=1000)\n", "logreg.fit(X_train, y_train)\n", "\n", "# Make predictions on the test set\n", "y_pred = logreg.predict(X_test)\n", "\n", "# Calculate the accuracy score# Calculate the accuracy score\n", "\n", "accuracy = accuracy_score(y_test, y_pred)\n", "accuracy" ] }, { "cell_type": "code", "execution_count": 16, "id": "a129d74b", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\25688\\AppData\\Roaming\\Python\\Python310\\site-packages\\pytorch_tabnet\\abstract_model.py:75: UserWarning: Device used : cuda\n", " warnings.warn(f\"Device used : {self.device}\")\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch 0 | loss: 0.12099 | val_0_accuracy: 0.81485 | 0:00:16s\n", "epoch 1 | loss: 0.01343 | val_0_accuracy: 0.81485 | 0:00:32s\n", "epoch 2 | loss: 0.00462 | val_0_accuracy: 0.81485 | 0:00:48s\n", "epoch 3 | loss: 0.003 | val_0_accuracy: 0.81485 | 0:01:06s\n", "epoch 4 | loss: 0.00235 | val_0_accuracy: 0.81485 | 0:01:23s\n", "epoch 5 | loss: 0.00185 | val_0_accuracy: 0.81485 | 0:01:40s\n", "epoch 6 | loss: 0.00141 | val_0_accuracy: 0.81485 | 0:01:57s\n", "epoch 7 | loss: 0.003 | val_0_accuracy: 0.81485 | 0:02:14s\n", "epoch 8 | loss: 0.00129 | val_0_accuracy: 0.81485 | 0:02:33s\n", "epoch 9 | loss: 0.00233 | val_0_accuracy: 0.81485 | 0:02:51s\n", "epoch 10 | loss: 0.00147 | val_0_accuracy: 0.81485 | 0:03:10s\n", "epoch 11 | loss: 0.00121 | val_0_accuracy: 0.81485 | 0:03:28s\n", "epoch 12 | loss: 0.00128 | val_0_accuracy: 0.81485 | 0:03:47s\n" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "Input \u001b[1;32mIn [16]\u001b[0m, in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 26\u001b[0m tabnet_model \u001b[38;5;241m=\u001b[39m TabNetRegressor(\n\u001b[0;32m 27\u001b[0m seed\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m42\u001b[39m, \u001b[38;5;66;03m# Random seed for reproducibility\u001b[39;00m\n\u001b[0;32m 28\u001b[0m verbose\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m, \u001b[38;5;66;03m# Show training progress\u001b[39;00m\n\u001b[0;32m 29\u001b[0m device_name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcuda\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[0;32m 30\u001b[0m )\n\u001b[0;32m 33\u001b[0m \u001b[38;5;66;03m# 不经过PCA拟合模型\u001b[39;00m\n\u001b[1;32m---> 34\u001b[0m \u001b[43mtabnet_model\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 35\u001b[0m \u001b[43m \u001b[49m\u001b[43mX_train\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalues\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_train\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalues\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mreshape\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 36\u001b[0m \u001b[43m \u001b[49m\u001b[43meval_set\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX_test\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalues\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_test\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalues\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mreshape\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 37\u001b[0m \u001b[43m \u001b[49m\u001b[43meval_metric\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43maccuracy\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 38\u001b[0m \u001b[43m \u001b[49m\u001b[43mmax_epochs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1000\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 39\u001b[0m \u001b[43m \u001b[49m\u001b[43mpatience\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m20\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 40\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_workers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 41\u001b[0m \u001b[43m \u001b[49m\u001b[43mdrop_last\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\n\u001b[0;32m 42\u001b[0m \u001b[43m)\u001b[49m\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\pytorch_tabnet\\abstract_model.py:245\u001b[0m, in \u001b[0;36mTabModel.fit\u001b[1;34m(self, X_train, y_train, eval_set, eval_name, eval_metric, loss_fn, weights, max_epochs, patience, batch_size, virtual_batch_size, num_workers, drop_last, callbacks, pin_memory, from_unsupervised, warm_start, augmentations)\u001b[0m\n\u001b[0;32m 243\u001b[0m \u001b[38;5;66;03m# Apply predict epoch to all eval sets\u001b[39;00m\n\u001b[0;32m 244\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m eval_name, valid_dataloader \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(eval_names, valid_dataloaders):\n\u001b[1;32m--> 245\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_predict_epoch\u001b[49m\u001b[43m(\u001b[49m\u001b[43meval_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalid_dataloader\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 247\u001b[0m \u001b[38;5;66;03m# Call method on_epoch_end for all callbacks\u001b[39;00m\n\u001b[0;32m 248\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_callback_container\u001b[38;5;241m.\u001b[39mon_epoch_end(\n\u001b[0;32m 249\u001b[0m epoch_idx, logs\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhistory\u001b[38;5;241m.\u001b[39mepoch_metrics\n\u001b[0;32m 250\u001b[0m )\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\pytorch_tabnet\\abstract_model.py:529\u001b[0m, in \u001b[0;36mTabModel._predict_epoch\u001b[1;34m(self, name, loader)\u001b[0m\n\u001b[0;32m 526\u001b[0m list_y_score \u001b[38;5;241m=\u001b[39m []\n\u001b[0;32m 528\u001b[0m \u001b[38;5;66;03m# Main loop\u001b[39;00m\n\u001b[1;32m--> 529\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m batch_idx, (X, y) \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28;43menumerate\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mloader\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[0;32m 530\u001b[0m scores \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_predict_batch(X)\n\u001b[0;32m 531\u001b[0m list_y_true\u001b[38;5;241m.\u001b[39mappend(y)\n", "File \u001b[1;32mC:\\Program Files\\Python310\\lib\\site-packages\\torch\\utils\\data\\dataloader.py:368\u001b[0m, in \u001b[0;36mDataLoader.__iter__\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 366\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_iterator\n\u001b[0;32m 367\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m--> 368\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_iterator\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[1;32mC:\\Program Files\\Python310\\lib\\site-packages\\torch\\utils\\data\\dataloader.py:314\u001b[0m, in \u001b[0;36mDataLoader._get_iterator\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 312\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 313\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcheck_worker_number_rationality()\n\u001b[1;32m--> 314\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_MultiProcessingDataLoaderIter\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n", "File \u001b[1;32mC:\\Program Files\\Python310\\lib\\site-packages\\torch\\utils\\data\\dataloader.py:927\u001b[0m, in \u001b[0;36m_MultiProcessingDataLoaderIter.__init__\u001b[1;34m(self, loader)\u001b[0m\n\u001b[0;32m 920\u001b[0m w\u001b[38;5;241m.\u001b[39mdaemon \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[0;32m 921\u001b[0m \u001b[38;5;66;03m# NB: Process.start() actually take some time as it needs to\u001b[39;00m\n\u001b[0;32m 922\u001b[0m \u001b[38;5;66;03m# start a process and pass the arguments over via a pipe.\u001b[39;00m\n\u001b[0;32m 923\u001b[0m \u001b[38;5;66;03m# Therefore, we only add a worker to self._workers list after\u001b[39;00m\n\u001b[0;32m 924\u001b[0m \u001b[38;5;66;03m# it started, so that we do not call .join() if program dies\u001b[39;00m\n\u001b[0;32m 925\u001b[0m \u001b[38;5;66;03m# before it starts, and __del__ tries to join but will get:\u001b[39;00m\n\u001b[0;32m 926\u001b[0m \u001b[38;5;66;03m# AssertionError: can only join a started process.\u001b[39;00m\n\u001b[1;32m--> 927\u001b[0m \u001b[43mw\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstart\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 928\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_index_queues\u001b[38;5;241m.\u001b[39mappend(index_queue)\n\u001b[0;32m 929\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_workers\u001b[38;5;241m.\u001b[39mappend(w)\n", "File \u001b[1;32mC:\\Program Files\\Python310\\lib\\multiprocessing\\process.py:121\u001b[0m, in \u001b[0;36mBaseProcess.start\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 118\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m _current_process\u001b[38;5;241m.\u001b[39m_config\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdaemon\u001b[39m\u001b[38;5;124m'\u001b[39m), \\\n\u001b[0;32m 119\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdaemonic processes are not allowed to have children\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[0;32m 120\u001b[0m _cleanup()\n\u001b[1;32m--> 121\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_popen \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_Popen\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 122\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_sentinel \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_popen\u001b[38;5;241m.\u001b[39msentinel\n\u001b[0;32m 123\u001b[0m \u001b[38;5;66;03m# Avoid a refcycle if the target function holds an indirect\u001b[39;00m\n\u001b[0;32m 124\u001b[0m \u001b[38;5;66;03m# reference to the process object (see bpo-30775)\u001b[39;00m\n", "File \u001b[1;32mC:\\Program Files\\Python310\\lib\\multiprocessing\\context.py:224\u001b[0m, in \u001b[0;36mProcess._Popen\u001b[1;34m(process_obj)\u001b[0m\n\u001b[0;32m 222\u001b[0m \u001b[38;5;129m@staticmethod\u001b[39m\n\u001b[0;32m 223\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_Popen\u001b[39m(process_obj):\n\u001b[1;32m--> 224\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_default_context\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_context\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mProcess\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_Popen\u001b[49m\u001b[43m(\u001b[49m\u001b[43mprocess_obj\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[1;32mC:\\Program Files\\Python310\\lib\\multiprocessing\\context.py:327\u001b[0m, in \u001b[0;36mSpawnProcess._Popen\u001b[1;34m(process_obj)\u001b[0m\n\u001b[0;32m 324\u001b[0m \u001b[38;5;129m@staticmethod\u001b[39m\n\u001b[0;32m 325\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_Popen\u001b[39m(process_obj):\n\u001b[0;32m 326\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpopen_spawn_win32\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Popen\n\u001b[1;32m--> 327\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mPopen\u001b[49m\u001b[43m(\u001b[49m\u001b[43mprocess_obj\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[1;32mC:\\Program Files\\Python310\\lib\\multiprocessing\\popen_spawn_win32.py:93\u001b[0m, in \u001b[0;36mPopen.__init__\u001b[1;34m(self, process_obj)\u001b[0m\n\u001b[0;32m 91\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 92\u001b[0m reduction\u001b[38;5;241m.\u001b[39mdump(prep_data, to_child)\n\u001b[1;32m---> 93\u001b[0m \u001b[43mreduction\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdump\u001b[49m\u001b[43m(\u001b[49m\u001b[43mprocess_obj\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mto_child\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 94\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 95\u001b[0m set_spawning_popen(\u001b[38;5;28;01mNone\u001b[39;00m)\n", "File \u001b[1;32mC:\\Program Files\\Python310\\lib\\multiprocessing\\reduction.py:60\u001b[0m, in \u001b[0;36mdump\u001b[1;34m(obj, file, protocol)\u001b[0m\n\u001b[0;32m 58\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdump\u001b[39m(obj, file, protocol\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m 59\u001b[0m \u001b[38;5;124;03m'''Replacement for pickle.dump() using ForkingPickler.'''\u001b[39;00m\n\u001b[1;32m---> 60\u001b[0m \u001b[43mForkingPickler\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfile\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mprotocol\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdump\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m)\u001b[49m\n", "\u001b[1;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.metrics import mean_squared_error\n", "from pytorch_tabnet.tab_model import TabNetRegressor\n", "import torch\n", "\n", "# Set up TabNet model\n", "# tabnet_model = TabNetRegressor(\n", "# n_d=16, # Dimension of the prediction layer\n", "# n_a=16, # Dimension of the attention layer\n", "# n_steps=10, # Number of decision steps, start with a lower value and increase as needed\n", "# gamma=1.3, # Regularization coefficient for feature selection\n", "# lambda_sparse=0, # Regularization coefficient for sparsity\n", "# optimizer_fn=torch.optim.Adam, # Use Adam optimizer\n", "# optimizer_params=dict(lr=0.01, weight_decay=1e-5), # Set learning rate and weight decay\n", "# mask_type=\"entmax\", # Use \"entmax\" instead of \"sparsemax\" for feature selection\n", "# scheduler_params=dict(mode=\"min\", patience=5, min_lr=1e-5, factor=0.9), # Learning rate scheduler parameters\n", "# scheduler_fn=torch.optim.lr_scheduler.ReduceLROnPlateau, # Use ReduceLROnPlateau scheduler\n", "# seed=42, # Random seed for reproducibility\n", "# verbose=1, # Show training progress\n", "# device_name='cuda'\n", "# )\n", "\n", "tabnet_model = TabNetRegressor(\n", " seed=42, # Random seed for reproducibility\n", " verbose=1, # Show training progress\n", " device_name='cuda'\n", ")\n", "\n", "\n", "# 不经过PCA拟合模型\n", "tabnet_model.fit(\n", " X_train.values, y_train.values.reshape(-1, 1),\n", " eval_set=[(X_test.values, y_test.values.reshape(-1, 1))],\n", " eval_metric=[\"accuracy\"],\n", " max_epochs=1000,\n", " patience=20,\n", " num_workers=2,\n", " drop_last=False\n", ")\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 17, "id": "2f4a5cf0", "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "Descriptors cannot not be created directly.\nIf this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.\nIf you cannot immediately regenerate your protos, some other possible workarounds are:\n 1. Downgrade the protobuf package to 3.20.x or lower.\n 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).\n\nMore information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "Input \u001b[1;32mIn [17]\u001b[0m, in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mkeras\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmodels\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Sequential\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mkeras\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mlayers\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Dense\n\u001b[0;32m 4\u001b[0m \u001b[38;5;66;03m# Define the model\u001b[39;00m\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\keras\\__init__.py:21\u001b[0m, in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 15\u001b[0m \u001b[38;5;124;03m\"\"\"Implementation of the Keras API, the high-level API of TensorFlow.\u001b[39;00m\n\u001b[0;32m 16\u001b[0m \n\u001b[0;32m 17\u001b[0m \u001b[38;5;124;03mDetailed documentation and user guides are available at\u001b[39;00m\n\u001b[0;32m 18\u001b[0m \u001b[38;5;124;03m[keras.io](https://keras.io).\u001b[39;00m\n\u001b[0;32m 19\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 20\u001b[0m \u001b[38;5;66;03m# pylint: disable=unused-import\u001b[39;00m\n\u001b[1;32m---> 21\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpython\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m tf2\n\u001b[0;32m 22\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mkeras\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m distribute\n\u001b[0;32m 24\u001b[0m \u001b[38;5;66;03m# See b/110718070#comment18 for more details about this import.\u001b[39;00m\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\tensorflow\\__init__.py:37\u001b[0m, in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 34\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01msys\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01m_sys\u001b[39;00m\n\u001b[0;32m 35\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mtyping\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01m_typing\u001b[39;00m\n\u001b[1;32m---> 37\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpython\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtools\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m module_util \u001b[38;5;28;01mas\u001b[39;00m _module_util\n\u001b[0;32m 38\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpython\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mutil\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mlazy_loader\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m LazyLoader \u001b[38;5;28;01mas\u001b[39;00m _LazyLoader\n\u001b[0;32m 40\u001b[0m \u001b[38;5;66;03m# Make sure code inside the TensorFlow codebase can use tf2.enabled() at import.\u001b[39;00m\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\tensorflow\\python\\__init__.py:37\u001b[0m, in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[38;5;66;03m# We aim to keep this file minimal and ideally remove completely.\u001b[39;00m\n\u001b[0;32m 30\u001b[0m \u001b[38;5;66;03m# If you are adding a new file with @tf_export decorators,\u001b[39;00m\n\u001b[0;32m 31\u001b[0m \u001b[38;5;66;03m# import it in modules_with_exports.py instead.\u001b[39;00m\n\u001b[0;32m 32\u001b[0m \n\u001b[0;32m 33\u001b[0m \u001b[38;5;66;03m# go/tf-wildcard-import\u001b[39;00m\n\u001b[0;32m 34\u001b[0m \u001b[38;5;66;03m# pylint: disable=wildcard-import,g-bad-import-order,g-import-not-at-top\u001b[39;00m\n\u001b[0;32m 36\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpython\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m pywrap_tensorflow \u001b[38;5;28;01mas\u001b[39;00m _pywrap_tensorflow\n\u001b[1;32m---> 37\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpython\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01meager\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m context\n\u001b[0;32m 39\u001b[0m \u001b[38;5;66;03m# pylint: enable=wildcard-import\u001b[39;00m\n\u001b[0;32m 40\u001b[0m \n\u001b[0;32m 41\u001b[0m \u001b[38;5;66;03m# Bring in subpackages.\u001b[39;00m\n\u001b[0;32m 42\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpython\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m data\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\tensorflow\\python\\eager\\context.py:29\u001b[0m, in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mnumpy\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mnp\u001b[39;00m\n\u001b[0;32m 27\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01msix\u001b[39;00m\n\u001b[1;32m---> 29\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m function_pb2\n\u001b[0;32m 30\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mprotobuf\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m config_pb2\n\u001b[0;32m 31\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mprotobuf\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m coordination_config_pb2\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\tensorflow\\core\\framework\\function_pb2.py:16\u001b[0m, in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[38;5;66;03m# @@protoc_insertion_point(imports)\u001b[39;00m\n\u001b[0;32m 13\u001b[0m _sym_db \u001b[38;5;241m=\u001b[39m _symbol_database\u001b[38;5;241m.\u001b[39mDefault()\n\u001b[1;32m---> 16\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m attr_value_pb2 \u001b[38;5;28;01mas\u001b[39;00m tensorflow_dot_core_dot_framework_dot_attr__value__pb2\n\u001b[0;32m 17\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m node_def_pb2 \u001b[38;5;28;01mas\u001b[39;00m tensorflow_dot_core_dot_framework_dot_node__def__pb2\n\u001b[0;32m 18\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m op_def_pb2 \u001b[38;5;28;01mas\u001b[39;00m tensorflow_dot_core_dot_framework_dot_op__def__pb2\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\tensorflow\\core\\framework\\attr_value_pb2.py:16\u001b[0m, in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[38;5;66;03m# @@protoc_insertion_point(imports)\u001b[39;00m\n\u001b[0;32m 13\u001b[0m _sym_db \u001b[38;5;241m=\u001b[39m _symbol_database\u001b[38;5;241m.\u001b[39mDefault()\n\u001b[1;32m---> 16\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m tensor_pb2 \u001b[38;5;28;01mas\u001b[39;00m tensorflow_dot_core_dot_framework_dot_tensor__pb2\n\u001b[0;32m 17\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m tensor_shape_pb2 \u001b[38;5;28;01mas\u001b[39;00m tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2\n\u001b[0;32m 18\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m types_pb2 \u001b[38;5;28;01mas\u001b[39;00m tensorflow_dot_core_dot_framework_dot_types__pb2\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\tensorflow\\core\\framework\\tensor_pb2.py:16\u001b[0m, in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[38;5;66;03m# @@protoc_insertion_point(imports)\u001b[39;00m\n\u001b[0;32m 13\u001b[0m _sym_db \u001b[38;5;241m=\u001b[39m _symbol_database\u001b[38;5;241m.\u001b[39mDefault()\n\u001b[1;32m---> 16\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m resource_handle_pb2 \u001b[38;5;28;01mas\u001b[39;00m tensorflow_dot_core_dot_framework_dot_resource__handle__pb2\n\u001b[0;32m 17\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m tensor_shape_pb2 \u001b[38;5;28;01mas\u001b[39;00m tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2\n\u001b[0;32m 18\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m types_pb2 \u001b[38;5;28;01mas\u001b[39;00m tensorflow_dot_core_dot_framework_dot_types__pb2\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\tensorflow\\core\\framework\\resource_handle_pb2.py:16\u001b[0m, in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[38;5;66;03m# @@protoc_insertion_point(imports)\u001b[39;00m\n\u001b[0;32m 13\u001b[0m _sym_db \u001b[38;5;241m=\u001b[39m _symbol_database\u001b[38;5;241m.\u001b[39mDefault()\n\u001b[1;32m---> 16\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m tensor_shape_pb2 \u001b[38;5;28;01mas\u001b[39;00m tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2\n\u001b[0;32m 17\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m types_pb2 \u001b[38;5;28;01mas\u001b[39;00m tensorflow_dot_core_dot_framework_dot_types__pb2\n\u001b[0;32m 20\u001b[0m DESCRIPTOR \u001b[38;5;241m=\u001b[39m _descriptor\u001b[38;5;241m.\u001b[39mFileDescriptor(\n\u001b[0;32m 21\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtensorflow/core/framework/resource_handle.proto\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[0;32m 22\u001b[0m package\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtensorflow\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 26\u001b[0m ,\n\u001b[0;32m 27\u001b[0m dependencies\u001b[38;5;241m=\u001b[39m[tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2\u001b[38;5;241m.\u001b[39mDESCRIPTOR,tensorflow_dot_core_dot_framework_dot_types__pb2\u001b[38;5;241m.\u001b[39mDESCRIPTOR,])\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\tensorflow\\core\\framework\\tensor_shape_pb2.py:36\u001b[0m, in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 13\u001b[0m _sym_db \u001b[38;5;241m=\u001b[39m _symbol_database\u001b[38;5;241m.\u001b[39mDefault()\n\u001b[0;32m 18\u001b[0m DESCRIPTOR \u001b[38;5;241m=\u001b[39m _descriptor\u001b[38;5;241m.\u001b[39mFileDescriptor(\n\u001b[0;32m 19\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtensorflow/core/framework/tensor_shape.proto\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[0;32m 20\u001b[0m package\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtensorflow\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 23\u001b[0m serialized_pb\u001b[38;5;241m=\u001b[39m_b(\u001b[38;5;124m'\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m,tensorflow/core/framework/tensor_shape.proto\u001b[39m\u001b[38;5;130;01m\\x12\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124mtensorflow\u001b[39m\u001b[38;5;130;01m\\\"\u001b[39;00m\u001b[38;5;124mz\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;130;01m\\x10\u001b[39;00m\u001b[38;5;124mTensorShapeProto\u001b[39m\u001b[38;5;130;01m\\x12\u001b[39;00m\u001b[38;5;124m-\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;130;01m\\x03\u001b[39;00m\u001b[38;5;130;01m\\x64\u001b[39;00m\u001b[38;5;124mim\u001b[39m\u001b[38;5;130;01m\\x18\u001b[39;00m\u001b[38;5;130;01m\\x02\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;130;01m\\x03\u001b[39;00m\u001b[38;5;124m(\u001b[39m\u001b[38;5;130;01m\\x0b\u001b[39;00m\u001b[38;5;130;01m\\x32\u001b[39;00m\u001b[38;5;124m .tensorflow.TensorShapeProto.Dim\u001b[39m\u001b[38;5;130;01m\\x12\u001b[39;00m\u001b[38;5;130;01m\\x14\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;130;01m\\x0c\u001b[39;00m\u001b[38;5;124munknown_rank\u001b[39m\u001b[38;5;130;01m\\x18\u001b[39;00m\u001b[38;5;130;01m\\x03\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;130;01m\\x01\u001b[39;00m\u001b[38;5;124m(\u001b[39m\u001b[38;5;130;01m\\x08\u001b[39;00m\u001b[38;5;130;01m\\x1a\u001b[39;00m\u001b[38;5;124m!\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;130;01m\\x03\u001b[39;00m\u001b[38;5;130;01m\\x44\u001b[39;00m\u001b[38;5;124mim\u001b[39m\u001b[38;5;130;01m\\x12\u001b[39;00m\u001b[38;5;130;01m\\x0c\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;130;01m\\x04\u001b[39;00m\u001b[38;5;124msize\u001b[39m\u001b[38;5;130;01m\\x18\u001b[39;00m\u001b[38;5;130;01m\\x01\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;130;01m\\x01\u001b[39;00m\u001b[38;5;124m(\u001b[39m\u001b[38;5;130;01m\\x03\u001b[39;00m\u001b[38;5;130;01m\\x12\u001b[39;00m\u001b[38;5;130;01m\\x0c\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;130;01m\\x04\u001b[39;00m\u001b[38;5;124mname\u001b[39m\u001b[38;5;130;01m\\x18\u001b[39;00m\u001b[38;5;130;01m\\x02\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;130;01m\\x01\u001b[39;00m\u001b[38;5;124m(\u001b[39m\u001b[38;5;130;01m\\t\u001b[39;00m\u001b[38;5;124mB\u001b[39m\u001b[38;5;130;01m\\x87\u001b[39;00m\u001b[38;5;130;01m\\x01\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;130;01m\\x18\u001b[39;00m\u001b[38;5;124morg.tensorflow.frameworkB\u001b[39m\u001b[38;5;130;01m\\x11\u001b[39;00m\u001b[38;5;124mTensorShapeProtosP\u001b[39m\u001b[38;5;130;01m\\x01\u001b[39;00m\u001b[38;5;124mZSgithub.com/tensorflow/tensorflow/tensorflow/go/core/framework/tensor_shape_go_proto\u001b[39m\u001b[38;5;130;01m\\xf8\u001b[39;00m\u001b[38;5;130;01m\\x01\u001b[39;00m\u001b[38;5;130;01m\\x01\u001b[39;00m\u001b[38;5;130;01m\\x62\u001b[39;00m\u001b[38;5;130;01m\\x06\u001b[39;00m\u001b[38;5;124mproto3\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m 24\u001b[0m )\n\u001b[0;32m 29\u001b[0m _TENSORSHAPEPROTO_DIM \u001b[38;5;241m=\u001b[39m _descriptor\u001b[38;5;241m.\u001b[39mDescriptor(\n\u001b[0;32m 30\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mDim\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[0;32m 31\u001b[0m full_name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtensorflow.TensorShapeProto.Dim\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[0;32m 32\u001b[0m filename\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m 33\u001b[0m file\u001b[38;5;241m=\u001b[39mDESCRIPTOR,\n\u001b[0;32m 34\u001b[0m containing_type\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m 35\u001b[0m fields\u001b[38;5;241m=\u001b[39m[\n\u001b[1;32m---> 36\u001b[0m \u001b[43m_descriptor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mFieldDescriptor\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 37\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43msize\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfull_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mtensorflow.TensorShapeProto.Dim.size\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindex\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 38\u001b[0m \u001b[43m \u001b[49m\u001b[43mnumber\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcpp_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlabel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 39\u001b[0m \u001b[43m \u001b[49m\u001b[43mhas_default_value\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdefault_value\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 40\u001b[0m \u001b[43m \u001b[49m\u001b[43mmessage_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43menum_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcontaining_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 41\u001b[0m \u001b[43m \u001b[49m\u001b[43mis_extension\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mextension_scope\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 42\u001b[0m \u001b[43m \u001b[49m\u001b[43mserialized_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfile\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mDESCRIPTOR\u001b[49m\u001b[43m)\u001b[49m,\n\u001b[0;32m 43\u001b[0m _descriptor\u001b[38;5;241m.\u001b[39mFieldDescriptor(\n\u001b[0;32m 44\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m'\u001b[39m, full_name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtensorflow.TensorShapeProto.Dim.name\u001b[39m\u001b[38;5;124m'\u001b[39m, index\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m,\n\u001b[0;32m 45\u001b[0m number\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m, \u001b[38;5;28mtype\u001b[39m\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m9\u001b[39m, cpp_type\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m9\u001b[39m, label\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m,\n\u001b[0;32m 46\u001b[0m has_default_value\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, default_value\u001b[38;5;241m=\u001b[39m_b(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m)\u001b[38;5;241m.\u001b[39mdecode(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mutf-8\u001b[39m\u001b[38;5;124m'\u001b[39m),\n\u001b[0;32m 47\u001b[0m message_type\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, enum_type\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, containing_type\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m 48\u001b[0m is_extension\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, extension_scope\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m 49\u001b[0m serialized_options\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, file\u001b[38;5;241m=\u001b[39mDESCRIPTOR),\n\u001b[0;32m 50\u001b[0m ],\n\u001b[0;32m 51\u001b[0m extensions\u001b[38;5;241m=\u001b[39m[\n\u001b[0;32m 52\u001b[0m ],\n\u001b[0;32m 53\u001b[0m nested_types\u001b[38;5;241m=\u001b[39m[],\n\u001b[0;32m 54\u001b[0m enum_types\u001b[38;5;241m=\u001b[39m[\n\u001b[0;32m 55\u001b[0m ],\n\u001b[0;32m 56\u001b[0m serialized_options\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m 57\u001b[0m is_extendable\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 58\u001b[0m syntax\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mproto3\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[0;32m 59\u001b[0m extension_ranges\u001b[38;5;241m=\u001b[39m[],\n\u001b[0;32m 60\u001b[0m oneofs\u001b[38;5;241m=\u001b[39m[\n\u001b[0;32m 61\u001b[0m ],\n\u001b[0;32m 62\u001b[0m serialized_start\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m149\u001b[39m,\n\u001b[0;32m 63\u001b[0m serialized_end\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m182\u001b[39m,\n\u001b[0;32m 64\u001b[0m )\n\u001b[0;32m 66\u001b[0m _TENSORSHAPEPROTO \u001b[38;5;241m=\u001b[39m _descriptor\u001b[38;5;241m.\u001b[39mDescriptor(\n\u001b[0;32m 67\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mTensorShapeProto\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[0;32m 68\u001b[0m full_name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtensorflow.TensorShapeProto\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 100\u001b[0m serialized_end\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m182\u001b[39m,\n\u001b[0;32m 101\u001b[0m )\n\u001b[0;32m 103\u001b[0m _TENSORSHAPEPROTO_DIM\u001b[38;5;241m.\u001b[39mcontaining_type \u001b[38;5;241m=\u001b[39m _TENSORSHAPEPROTO\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python310\\site-packages\\google\\protobuf\\descriptor.py:561\u001b[0m, in \u001b[0;36mFieldDescriptor.__new__\u001b[1;34m(cls, name, full_name, index, number, type, cpp_type, label, default_value, message_type, enum_type, containing_type, is_extension, extension_scope, options, serialized_options, has_default_value, containing_oneof, json_name, file, create_key)\u001b[0m\n\u001b[0;32m 555\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__new__\u001b[39m(\u001b[38;5;28mcls\u001b[39m, name, full_name, index, number, \u001b[38;5;28mtype\u001b[39m, cpp_type, label,\n\u001b[0;32m 556\u001b[0m default_value, message_type, enum_type, containing_type,\n\u001b[0;32m 557\u001b[0m is_extension, extension_scope, options\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m 558\u001b[0m serialized_options\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m 559\u001b[0m has_default_value\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, containing_oneof\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, json_name\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m 560\u001b[0m file\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, create_key\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m): \u001b[38;5;66;03m# pylint: disable=redefined-builtin\u001b[39;00m\n\u001b[1;32m--> 561\u001b[0m \u001b[43m_message\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mMessage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_CheckCalledFromGeneratedFile\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 562\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_extension:\n\u001b[0;32m 563\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _message\u001b[38;5;241m.\u001b[39mdefault_pool\u001b[38;5;241m.\u001b[39mFindExtensionByName(full_name)\n", "\u001b[1;31mTypeError\u001b[0m: Descriptors cannot not be created directly.\nIf this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.\nIf you cannot immediately regenerate your protos, some other possible workarounds are:\n 1. Downgrade the protobuf package to 3.20.x or lower.\n 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).\n\nMore information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates" ] } ], "source": [ "from keras.models import Sequential\n", "from keras.layers import Dense\n", "\n", "# Define the model\n", "model = Sequential()\n", "model.add(Dense(64, input_dim=X_train.shape[1], activation='relu'))\n", "model.add(Dense(32, activation='relu'))\n", "model.add(Dense(1, activation='sigmoid'))\n", "\n", "# Compile the model\n", "model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])\n", "\n", "# Train the model\n", "model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test))" ] }, { "cell_type": "code", "execution_count": null, "id": "25d191e6", "metadata": {}, "outputs": [], "source": [ "# Evaluate the model on the test set\n", "test_loss, test_acc = model.evaluate(X_test, y_test, verbose=2)\n", "print('\\nTest accuracy:', test_acc)" ] }, { "cell_type": "code", "execution_count": 34, "id": "c148d95e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.9878246266418761\n" ] } ], "source": [ "# 导入需要的库\n", "import xgboost as xgb\n", "from sklearn.metrics import accuracy_score\n", "\n", "# 定义参数\n", "params = {'colsample_bytree': 0.8, 'learning_rate': 0.01, 'max_depth': 5, 'n_estimators': 300, 'subsample': 0.8, 'tree_method': 'gpu_hist'}\n", "\n", "# 创建分类模型\n", "xgb_model = xgb.XGBClassifier(objective='binary:logistic', **params)\n", "\n", "# 拟合训练集\n", "xgb_model.fit(X_train, y_train)\n", "# xgb.plot_importance(xgb_model)\n", "# plt.show()\n", "# 对测试集进行预测\n", "y_pred = xgb_model.predict(X_test)\n", "\n", "# 计算准确率\n", "accuracy = accuracy_score(y_test, y_pred)\n", "print('Accuracy:', accuracy)\n" ] }, { "cell_type": "code", "execution_count": null, "id": "ba285bea", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4" }, "noteable": { "last_delta_id": "8d0b2b1b-0e9b-42d7-9b9f-c8bf11f810ad", "last_transaction_id": "a88daa5e-8262-43cf-8d4a-370a7c86d740" }, "noteable-chatgpt": { "create_notebook": { "openai_conversation_id": "5e7e52b4-c2d1-51ec-be8f-09a9b24f4053", "openai_ephemeral_user_id": "4792a2b8-7980-5790-8196-464aafd8b369", "openai_subdivision1_iso_code": "US-OR" } }, "nteract": { "version": "noteable@2.9.0" }, "selected_hardware_size": "small" }, "nbformat": 4, "nbformat_minor": 5 }