coal_materials/data/20240102/数据模型测试.ipynb

2496 lines
1.1 MiB
Plaintext
Raw Permalink Normal View History

2024-01-05 09:12:27 +08:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "85efd702",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:18:58.543687Z",
"start_time": "2023-10-16T03:18:57.501238Z"
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f033dbeb",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:18:58.763265Z",
"start_time": "2023-10-16T03:18:58.746711Z"
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.rcParams[\"font.sans-serif\"]=[\"SimHei\"] #设置字体\n",
"plt.rcParams[\"axes.unicode_minus\"]=False #该语句解决图像中的“-”负号的乱码问题"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "a591643d",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:18:59.273154Z",
"start_time": "2023-10-16T03:18:59.262015Z"
}
},
"outputs": [],
"source": [
"data_path = \"./data/煤质碳材料数据.xlsx\""
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "92e9b814",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:00.156694Z",
"start_time": "2023-10-16T03:18:59.835913Z"
}
},
"outputs": [],
"source": [
"data = pd.read_excel(data_path)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "22f0399a",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:01.192314Z",
"start_time": "2023-10-16T03:19:01.160808Z"
}
},
"outputs": [],
"source": [
"# 缺失值填充\n",
"## 根据煤种分类,将缺失值进行补全,采用均值填充\n",
"## 用不上因为分析数据X值缺失的时候Y也会缺失\n",
"## 萃取中级烟煤还只有一条数据,无法参考补全\n",
"## 直接删除X缺失数据\n",
"\n",
"# 补全:\n",
"# grouped = data.groupby('煤种')\n",
"# # 定义填充函数\n",
"# def fill_with_mean(group, name):\n",
"# group[name].fillna(group[name].mean(), inplace=True)\n",
"# return group\n",
"\n",
"# # 在每个分组内使用均值法填充空值\n",
"# data_filled = grouped.apply(fill_with_mean,\"分析水Mad\")\n",
"\n",
"# 删除某一列\n",
"data_full = data.dropna(axis=0,subset = ['编号', '煤种', '分析水Mad', '灰分', '挥发分', '碳', '氢', '氮', '硫', '氧', '碳化温度(℃)',\n",
" '升温速率(℃/min)', '保温时间(h)', 'KOH', 'K2CO3'])\n",
"del data_full['编号']"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "2e33f252-d36c-4d29-a565-ad867e218d26",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/root/.cache/matplotlib\n"
]
}
],
"source": [
"import matplotlib as mpl\n",
"print(mpl.get_cachedir())"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "1150d735",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:01.593771Z",
"start_time": "2023-10-16T03:19:01.587725Z"
}
},
"outputs": [],
"source": [
"data_full = data_full.reset_index(drop=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f2c58153",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:02.091979Z",
"start_time": "2023-10-16T03:19:02.083594Z"
}
},
"outputs": [],
"source": [
"# one-hot 编码处理煤种数据\n",
"#from sklearn.preprocessing import OneHotEncoder\n",
"# encoder = OneHotEncoder()\n",
"# encoded_data = encoder.fit_transform(data_full[['煤种']])\n",
"# # 将稀疏矩阵转换为数组\n",
"# encoded_array = encoded_data.toarray()\n",
"# # 创建编码后的 DataFrame\n",
"# encoded_df = pd.DataFrame(encoded_array, columns=encoder.get_feature_names_out(['煤种']))\n",
"# data_full_one_hot = pd.concat([data_full, encoded_df], axis=1)\n",
"# del data_full_one_hot['煤种']"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "1fbce5b5",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:05.659555Z",
"start_time": "2023-10-16T03:19:02.373148Z"
}
},
"outputs": [],
"source": [
"# 字典映射后准备归一化\n",
"from sklearn.preprocessing import LabelEncoder\n",
"encoder = LabelEncoder()\n",
"encoded_labels = encoder.fit_transform(data_full['煤种'])\n",
"data_full['煤种'] = encoded_labels"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "d8bde48c",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:05.674831Z",
"start_time": "2023-10-16T03:19:05.661534Z"
}
},
"outputs": [],
"source": [
"# 归一化,数据量太小了,且数据无正态分布一说感觉,直接归一化\n",
"\n",
"x_col = ['煤种', '分析水Mad', '灰分', '挥发分', '碳', '氢', '氮', '硫', '氧', '碳化温度(℃)',\n",
" '升温速率(℃/min)', '保温时间(h)', 'KOH', 'K2CO3']\n",
"\n",
"y_col = ['孔体积cm3/g)','微孔体积cm3/g)', '介孔体积cm3/g)','BET比表面积m2/g']\n",
"# from sklearn.preprocessing import StandardScaler\n",
"# scaler = StandardScaler()\n",
"# normalized_data = scaler.fit_transform(data_full[x_col])\n",
"\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"\n",
"scaler = MinMaxScaler()\n",
"\n",
"normalized_data = scaler.fit_transform(data_full[x_col])\n",
"normalized_df = pd.DataFrame(normalized_data, columns=x_col)\n",
"data_full_minmax = pd.concat([normalized_df,data_full[y_col]],axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "655874e0",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:05.705330Z",
"start_time": "2023-10-16T03:19:05.675810Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>煤种</th>\n",
" <th>分析水Mad</th>\n",
" <th>灰分</th>\n",
" <th>挥发分</th>\n",
" <th>碳</th>\n",
" <th>氢</th>\n",
" <th>氮</th>\n",
" <th>硫</th>\n",
" <th>氧</th>\n",
" <th>碳化温度(℃)</th>\n",
" <th>升温速率(℃/min)</th>\n",
" <th>保温时间(h)</th>\n",
" <th>KOH</th>\n",
" <th>K2CO3</th>\n",
" <th>孔体积cm3/g)</th>\n",
" <th>微孔体积cm3/g)</th>\n",
" <th>介孔体积cm3/g)</th>\n",
" <th>BET比表面积m2/g</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.090909</td>\n",
" <td>0.040520</td>\n",
" <td>0.176027</td>\n",
" <td>0.579416</td>\n",
" <td>0.897402</td>\n",
" <td>0.181024</td>\n",
" <td>0.333333</td>\n",
" <td>0.000000</td>\n",
" <td>0.141774</td>\n",
" <td>1.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.6</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>296.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.727273</td>\n",
" <td>0.436127</td>\n",
" <td>0.089271</td>\n",
" <td>0.755583</td>\n",
" <td>0.552794</td>\n",
" <td>0.131548</td>\n",
" <td>0.245763</td>\n",
" <td>1.000000</td>\n",
" <td>0.670623</td>\n",
" <td>0.1</td>\n",
" <td>0.285714</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.356</td>\n",
" <td>0.289</td>\n",
" <td>0.067</td>\n",
" <td>665.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.727273</td>\n",
" <td>0.436127</td>\n",
" <td>0.089271</td>\n",
" <td>0.755583</td>\n",
" <td>0.552794</td>\n",
" <td>0.131548</td>\n",
" <td>0.245763</td>\n",
" <td>1.000000</td>\n",
" <td>0.670623</td>\n",
" <td>0.1</td>\n",
" <td>0.285714</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.608</td>\n",
" <td>0.482</td>\n",
" <td>0.126</td>\n",
" <td>1221.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.727273</td>\n",
" <td>0.436127</td>\n",
" <td>0.089271</td>\n",
" <td>0.755583</td>\n",
" <td>0.552794</td>\n",
" <td>0.131548</td>\n",
" <td>0.245763</td>\n",
" <td>1.000000</td>\n",
" <td>0.670623</td>\n",
" <td>0.1</td>\n",
" <td>0.285714</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1.438</td>\n",
" <td>0.670</td>\n",
" <td>0.768</td>\n",
" <td>2609.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.727273</td>\n",
" <td>0.436127</td>\n",
" <td>0.089271</td>\n",
" <td>0.755583</td>\n",
" <td>0.552794</td>\n",
" <td>0.131548</td>\n",
" <td>0.245763</td>\n",
" <td>1.000000</td>\n",
" <td>0.670623</td>\n",
" <td>0.1</td>\n",
" <td>0.285714</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1.321</td>\n",
" <td>0.599</td>\n",
" <td>0.722</td>\n",
" <td>2323.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>64</th>\n",
" <td>0.272727</td>\n",
" <td>0.000000</td>\n",
" <td>0.085080</td>\n",
" <td>0.151960</td>\n",
" <td>0.998131</td>\n",
" <td>0.096042</td>\n",
" <td>0.378531</td>\n",
" <td>0.058989</td>\n",
" <td>0.000000</td>\n",
" <td>0.4</td>\n",
" <td>0.107143</td>\n",
" <td>0.2</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1.608</td>\n",
" <td>1.204</td>\n",
" <td>0.404</td>\n",
" <td>3142.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>65</th>\n",
" <td>0.272727</td>\n",
" <td>0.000000</td>\n",
" <td>0.085080</td>\n",
" <td>0.151960</td>\n",
" <td>0.998131</td>\n",
" <td>0.096042</td>\n",
" <td>0.378531</td>\n",
" <td>0.058989</td>\n",
" <td>0.000000</td>\n",
" <td>0.4</td>\n",
" <td>0.107143</td>\n",
" <td>0.2</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>2.041</td>\n",
" <td>1.022</td>\n",
" <td>1.019</td>\n",
" <td>3389.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>66</th>\n",
" <td>0.272727</td>\n",
" <td>0.002165</td>\n",
" <td>0.174560</td>\n",
" <td>0.137279</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.457627</td>\n",
" <td>0.000000</td>\n",
" <td>0.048797</td>\n",
" <td>0.2</td>\n",
" <td>0.107143</td>\n",
" <td>0.2</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1.135</td>\n",
" <td>0.916</td>\n",
" <td>0.219</td>\n",
" <td>2542.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>0.272727</td>\n",
" <td>0.002165</td>\n",
" <td>0.174560</td>\n",
" <td>0.137279</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.457627</td>\n",
" <td>0.000000</td>\n",
" <td>0.048797</td>\n",
" <td>0.4</td>\n",
" <td>0.107143</td>\n",
" <td>0.2</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1.219</td>\n",
" <td>0.947</td>\n",
" <td>0.272</td>\n",
" <td>2665.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68</th>\n",
" <td>0.272727</td>\n",
" <td>0.002165</td>\n",
" <td>0.174560</td>\n",
" <td>0.137279</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.457627</td>\n",
" <td>0.000000</td>\n",
" <td>0.048797</td>\n",
" <td>0.6</td>\n",
" <td>0.107143</td>\n",
" <td>0.2</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1.473</td>\n",
" <td>0.718</td>\n",
" <td>0.755</td>\n",
" <td>2947.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>69 rows × 18 columns</p>\n",
"</div>"
],
"text/plain": [
" 煤种 分析水Mad 灰分 挥发分 碳 氢 氮 \\\n",
"0 0.090909 0.040520 0.176027 0.579416 0.897402 0.181024 0.333333 \n",
"1 0.727273 0.436127 0.089271 0.755583 0.552794 0.131548 0.245763 \n",
"2 0.727273 0.436127 0.089271 0.755583 0.552794 0.131548 0.245763 \n",
"3 0.727273 0.436127 0.089271 0.755583 0.552794 0.131548 0.245763 \n",
"4 0.727273 0.436127 0.089271 0.755583 0.552794 0.131548 0.245763 \n",
".. ... ... ... ... ... ... ... \n",
"64 0.272727 0.000000 0.085080 0.151960 0.998131 0.096042 0.378531 \n",
"65 0.272727 0.000000 0.085080 0.151960 0.998131 0.096042 0.378531 \n",
"66 0.272727 0.002165 0.174560 0.137279 1.000000 0.000000 0.457627 \n",
"67 0.272727 0.002165 0.174560 0.137279 1.000000 0.000000 0.457627 \n",
"68 0.272727 0.002165 0.174560 0.137279 1.000000 0.000000 0.457627 \n",
"\n",
" 硫 氧 碳化温度(℃) 升温速率(℃/min) 保温时间(h) KOH K2CO3 孔体积cm3/g) \\\n",
"0 0.000000 0.141774 1.0 0.000000 0.6 0.0 0.0 0.270 \n",
"1 1.000000 0.670623 0.1 0.285714 0.0 1.0 0.0 0.356 \n",
"2 1.000000 0.670623 0.1 0.285714 0.0 1.0 0.0 0.608 \n",
"3 1.000000 0.670623 0.1 0.285714 0.0 1.0 0.0 1.438 \n",
"4 1.000000 0.670623 0.1 0.285714 0.0 1.0 0.0 1.321 \n",
".. ... ... ... ... ... ... ... ... \n",
"64 0.058989 0.000000 0.4 0.107143 0.2 1.0 0.0 1.608 \n",
"65 0.058989 0.000000 0.4 0.107143 0.2 1.0 0.0 2.041 \n",
"66 0.000000 0.048797 0.2 0.107143 0.2 1.0 0.0 1.135 \n",
"67 0.000000 0.048797 0.4 0.107143 0.2 1.0 0.0 1.219 \n",
"68 0.000000 0.048797 0.6 0.107143 0.2 1.0 0.0 1.473 \n",
"\n",
" 微孔体积cm3/g) 介孔体积cm3/g) BET比表面积m2/g \n",
"0 NaN NaN 296.0 \n",
"1 0.289 0.067 665.0 \n",
"2 0.482 0.126 1221.0 \n",
"3 0.670 0.768 2609.0 \n",
"4 0.599 0.722 2323.0 \n",
".. ... ... ... \n",
"64 1.204 0.404 3142.0 \n",
"65 1.022 1.019 3389.0 \n",
"66 0.916 0.219 2542.0 \n",
"67 0.947 0.272 2665.0 \n",
"68 0.718 0.755 2947.0 \n",
"\n",
"[69 rows x 18 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_full_minmax"
]
},
{
"cell_type": "markdown",
"id": "2a7e8c19",
"metadata": {},
"source": [
"# 四套数据集"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "8f2e27fd",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:35.541795Z",
"start_time": "2023-10-16T03:19:35.521142Z"
}
},
"outputs": [],
"source": [
"data_1=data_full_minmax.drop(columns=['孔体积cm3/g)','微孔体积cm3/g)', '介孔体积cm3/g)'])\n",
"data_1 = data_1.dropna(axis=0, subset=['BET比表面积m2/g'])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "76373f92",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:36.337002Z",
"start_time": "2023-10-16T03:19:35.705904Z"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABiIAAAV2CAYAAAAX1aTHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3gURR8H8O/1kh4ICen0XqT3XqVIbxY6ilQRkN4RsCII0uuroCKgNMECCAgohBISWghJIKSTXq7tvX8ED45UNJdLju/nee6RLbOZHXdny29nRmQ0Go0gIiIiIiIiIiIiIiKyALG1M0BERERERERERERERLaLgQgiIiIiIiIiIiIiIrIYBiKIiIiIiIiIiIiIiMhiGIggIiIiIiIiIiIiIiKLYSCCiIiIiIiIiIiIiIgshoEIIiIiIiIiIiIiIiKyGAYiiIiIiIiIiIiIiIjIYhiIICIiIiIiIiIiIiIii2EggoiIiIiIiIiIiIiILIaBCCIiIiIiIiIiIiIishgGIoiIiIiIiIiIiIiIbMiNGzfQuHFjuLi4YMaMGTAajfmubzQaMX78eLi6usLZ2RkjRoxAZmZmkeWHgQgiIiIiIiIiIiIiIhuh0WjQq1cvNGzYEJcuXUJwcDB27NiRb5rdu3fj9u3buHLlCs6cOYOgoCCsWLGiyPLEQAQRERERERERERERUQmn0WiQkpJi9tNoNDnWO3bsGJKTk/HZZ5+hUqVK+PDDD7F169Z8t/3XX39hwIAB8PPzQ506ddCnTx+EhIQUWd6lRbYlolzo4kOtnQWbkLVksrWzYBOExKJrTvYyk/ftaO0s2IRqY/ZYOws24Vd3L2tnwSa4eLN+LCr2b3e2dhZsQ9Jja+fAJrSYd9HaWbAJf37UxtpZsAlBc25aOws2wa9GorWzYBP+d9vH2lmwCQliwdpZsBnLwr6xdhZKnZf1neOKL3dh8eLFZvMWLlyIRYsWmc27du0amjVrBrVaDQCoW7cugoOD8912rVq1sHv3bvTv3x9ZWVnYu3cvpk2bVmR5Z4sIIiIiIiIiIiIiIqISbvbs2UhOTjb7zZ49O8d6KSkpqFChgmlaJBJBIpEgMTHvgPaYMWOQlpYGDw8P+Pv7o0KFChg+fHiR5Z2BCCIiIiIiIiIiIiKiEk6hUMDR0dHsp1AocqwnlUpzzFcqlcjIyMhz21988QWcnZ0RHh6OiIgI6PV6zJgxo8jyzkAEEREREREREREREZGNcHV1RVxcnNm81NRUyOXyPNN8/fXXmDFjBnx9feHj44MVK1YUOK7Ei2AggoiIiIiIiIiIiIjIRjRu3Bjnz583Td+/fx8ajQaurq55phEEAbGxsabp6OhoGAyGIssTB6smIiIiIiIiIiIiotJDKLoX5LaoTZs2SElJwfbt2zFy5Eh8+OGH6NSpEyQSCZKSkuDg4ACJRGKWpnXr1li5ciUkEgm0Wi1WrVqF3r17F1meGIggIiIiIiIiIiIiIrIRUqkUW7ZswdChQzFjxgyIxWKcOnUKAODi4oIrV66gfv36ZmmWLVuGlJQUzJw5E6mpqejatSu++OKLostTkW2JiIiIiIiIiIiIiIisrnfv3rh37x4uX76MZs2aoUyZMgAAo9GY6/rOzs7YtWuXxfLDQAQRERERERERERERkY3x8PBAjx49rJ0NABysmoiIiIiIiIiIiIiILIgtIoiIiIiIiIiIiIio9DAK1s4BvSC2iCAiIiIiIiIiIiIiIothIIKIiIiIiIiIiIiIiCyGgQgiIiIiIiIiIiIiIrIYBiKIiIiIiIiIiIiIiMhiOFg1EREREREREREREZUeAgerLm3YIoKIiIiIiIiIiIiIiCyGgQgiIiIiIiIiIiIiIrIYBiKIiIiIiIiIiIiIiMhiGIggIiIiIiIiIiIiIiKL4WDVRERERERERERERFRqGI0crLq0YYsIIiIiIiIiIiIiIiKyGAYiiIiIiIiIiIiIiIjIYhiIICIiIiIiIiIiIiIii+EYEURERERERERERERUeggcI6K0YYsIIiIiIiIiIiIiIiKyGAYiiIiIiIiIiIiIiIjIYhiIICIiIiIiIiIiIiIii2EggoiIiIiIiIiIiIiILIaDVRMRERERERERERFR6WHkYNWlDVtEEBERERERERERERGRxTAQQUREREREREREREREFsNABBERERERERERERERWQwDEUREREREREREREREZDEcrJqIiIiIiIiIiIiISg/BYO0c0AtiiwgbdOHCBbRu3RpGoxE6nQ7Vq1fH2bNnTcvnzJmDKVOmQKfTmaW7c+cOlixZgqCgILP5SqUSDx8+LJa8ExEREREREREREZFtYSDCBgmCgKSkJDx69Ai1atVCeHg4RowYgdq1a6N27drYvn07vvnmGzRv3hxhYWFo27YtatSogWrVqkEQBCQnJ5ttT6FQQKFQWGlvLCcxKRldB4xAZFSMtbNiM0QubhD7VAYkORtb5beMiIiIiIioJFL4e0BVqwIg5usTIiKi/4JvBG2QVCqFUqmEp6cn7ty5g/r162PLli1o1KgRAGD16tWIjo7GypUrAQBbtmyBl5cX7OzssGjRIgDAxo0b8eDBAwCARqPBypUroVKpYGdnh9mzZ1tlv4pSYlIyJsxYyCBEHsTl/aAcNgViN0/ozh+H5sftBaZR9B0DaeP2QEYaIFci88u5EGIfFrjMlom9/aEaOwMSdy9oTx1F1t5NBaZR9H0T8i79IFIoob/2FzI2rgSyMgEAyhFTIGvaDiKRGLqAc8jcvhrQaS28FyVDSHQiFuw7hwcJqejbuAre694QIpEo3zQDv/gJd6MTTdN9G1XBwv4tClz2MqhaozI+XbsU/hV9sWf3D/hw4WeFTisSifDDsV04dugXbF63yzR/6sx3MOrtN6BSq3DylzN47905SE/LsET2SxR5FT94LH8fMt/ySN53HPGfbClUOmX9GvD48H2EvTrGwjksPST+FeAwfRYknl7IOnYY6Zs3FJhG/cZwqPoOgEiphPavi0j9aDmMmZnFkNuSIyQmEQt+OJ9dPzaqjPe6NSi4flxzCHdjkkzTfRtWxsJ+zc3WScnUot/qn7DznW7wcrG3RNZLlJC4VCz4+RoeJKajb11fvNe2eoHl+I+ULB36bTuNna+3gJeTGulaPT75PRh/3IuFXCrGW40rYGiDChbeg5KnUvUKWLx6Lnz8vXDgm8NYvWRdodJ9+/tOVK1Z2TR94OtDWPL+SrN17B3tsf/M1xje821EPYgu0nyXFCGxyVhw+HL2MVnfH+91qF3wub35V9yNTTFN963nh4U9G5qmrz5MwMJDl/Hj+C4Wy7e1Kav5osKnk6DwL4/4vb/g4bKdBaZx6dEc3vNHQiSV4uHS7Xj845nsBSIRKn41HfaNasCo10PI1OD2gHnQJySbpXUb/iruDJpvqV0qcXi9/u/KVPVGl0/HwdnfHTf2nMKZD/cUOm35hlXQ5ZNx2Nl+hmmeWCpBy5mDULVXU0hkUgR+cxIXvjgAo0GwRPZLjHJVvdHv47dRxt8Dl/aexPEV3xQqXfsp/dB8ZDfIVQrcOXUV+6Z9BW16FgBg4rGV8Kjha1r30t6TODhrs0XyT/QyYkjfxtSqVQvXr18HAIwePRqrV68GAAwZMsTUImLVqlWm9Q0GAypWrAjxk687BEGAVqvF119/DXt7e7Rr1w5SqRQtW7ZEpUqV8NVXXxX7PlnCjIUr8WqX9tbORskklUI1bj4MD+4h/ZOpEHv4Qtq0U75JJJXrQFqrMdKXjEH6srdhuBUAeecBBS6zaVIZ7KYtg+H+XaQtGA+xlx9krbvmm0TWoiNkzTsh4+NZSJs1GmJPXyh6Ds1e1rIzJOV9kDbvbaQtmwqxlx8UvYYVx55YnVZvwORdv6OmVxl8M7EHQmOT8OPlkHzTZGr1eJCQit/nDsYfC4bijwVD8UHvJgUuexnI5TJs+2YtAq8Fo2eHwahSrRIGDutT6PRvjBwER0d7bN/49Ea/z4Ae6DOgB94c+A46teiDylUr4t0poy2Q+5JFJJPBa/1iZAXdRcTAyZBX9oVj384FplP
"text/plain": [
"<Figure size 2000x1600 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"train_corr = data_1.corr()\n",
"ax = plt.subplots(figsize=(20,16))\n",
"ax = sns.heatmap(train_corr, vmax=.8, square=True, annot=True)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "428b8b02",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:36.352440Z",
"start_time": "2023-10-16T03:19:36.338417Z"
}
},
"outputs": [],
"source": [
"data_2 = data_full_minmax.drop(columns=['BET比表面积m2/g','微孔体积cm3/g)', '介孔体积cm3/g)'])\n",
"data_2 = data_2.dropna(axis=0, subset=['孔体积cm3/g)'])"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "60b1094b",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:36.950088Z",
"start_time": "2023-10-16T03:19:36.354423Z"
}
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 2000x1600 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"train_corr = data_2.corr()\n",
"ax = plt.subplots(figsize=(20,16))\n",
"ax = sns.heatmap(train_corr, vmax=.8, square=True, annot=True)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "785d2da0",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:36.965414Z",
"start_time": "2023-10-16T03:19:36.952068Z"
}
},
"outputs": [],
"source": [
"data_3 = data_full_minmax.drop(columns=['BET比表面积m2/g','孔体积cm3/g)', '介孔体积cm3/g)'])\n",
"data_3 = data_3.dropna(axis=0, subset=['微孔体积cm3/g)'])"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "6d67b603",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:37.528354Z",
"start_time": "2023-10-16T03:19:36.968059Z"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABhQAAAVoCAYAAABL5DVTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3gURR8H8O/1lg4ppNND7733jnQpFhDwFekoSJEi3QYoxUIVRIoIKFUsgKCASg8BQggJLSGF9HJt7/0jeOFIuaAhdzm+n+e5R2935zI77M7O7m9nRmQymUwgIiIiIiIiIiIiIiIqhNjWGSAiIiIiIiIiIiIiIvvHgAIREREREREREREREVnFgAIREREREREREREREVnFgAIREREREREREREREVnFgAIREREREREREREREVnFgAIREREREREREREREVnFgAIREREREREREREREVnFgAIREREREREREREREVnFgAIREREREREREREREVnFgAIREREREREREREREVnFgAIRERERERERERERkR0KDQ1Fo0aN4O7ujqlTp8JkMhW6vclkwpgxY+Dh4QE3NzcMHz4cWVlZxZYfBhSIiIiIiIiIiIiIiOyMVqtFr1690KBBA/z9998ICwvDpk2bCk2zZcsWXL9+HefPn8eJEydw5coVLFmypNjyxIACEREREREREREREVEJ0Wq1SE1Ntfhotdo82x06dAgpKSlYtmwZKlasiMWLF2P9+vWF/vaff/6JAQMGICgoCLVq1UKfPn0QERFRbHmXFtsvkUPTJ0TaOgsOIXvhRFtnwSGYMvJWsPT0ZP162joLDqPR8G9snQWHcMDPydZZcAjOQXpbZ8EhqIZ1snUWHENKsq1z4BD6zLti6yw4hL0L69g6Cw4hdtlZW2fBYciURltnwSH8cN/X1llwCD+JUmydBYew5/Y+W2eh1HlenzkuWbUZ7733nsWyuXPnYt68eRbLLl68iKZNm0KtVgMAateujbCwsEJ/u0aNGtiyZQv69++P7OxsbN++HVOmTCm2vLOHAhERERERERERERFRCZkxYwZSUlIsPjNmzMizXWpqKsqXL2/+LhKJIJFIkJSUVOBvjxo1Cunp6fDx8UFwcDDKly+PV199tdjyzoACEREREREREREREVEJUSgUcHFxsfgoFIo820ml0jzLlUolMjMzC/ztTz75BG5uboiOjsbt27dhMBgwderUYss7AwpERERERERERERERHbGw8MD8fHxFsvS0tIgl8sLTLN161ZMnToVgYGBCAgIwJIlS6zOu/A0GFAgIiIiIiIiIiIiIrIzjRo1wqlTp8zfb926Ba1WCw8PjwLTCIKAuLg48/fY2FgYjcU3bw8nZSYiIiIiIiIiIiKikidwgvrCtG7dGqmpqdi4cSNGjBiBxYsXo2PHjpBIJEhOToazszMkEolFmlatWmHp0qWQSCTQ6XR4//330bt372LLEwMKRERERERERERERER2RiqVYt26dRgyZAimTp0KsViMY8eOAQDc3d1x/vx51K1b1yLNwoULkZqaimnTpiEtLQ1dunTBJ598Unx5KrZfIiIiIiIiIiIiIiKiYtO7d2/cvHkTZ8+eRdOmTVGmTBkAgMlkynd7Nzc3bN68+ZnlhwEFIiIiIiIiIiIiIiI75ePjgx49etg6GwA4KTMRERERERERERERERUBeygQERERERERERERUckzCbbOAT0l9lAgIiIiIiIiIiIiIiKrGFAgIiIiIiIiIiIiIiKrGFAgIiIiIiIiIiIiIiKrOIcCEREREREREREREZU8gXMolDbsoUBERERERERERERERFYxoEBERERERERERERERFYxoEBERERERERERERERFYxoEBERERERERERERERFZxUmYiIiIiIiIiIiIiKnEmEydlLm3YQ4GIiIiIiIiIiIiIiKxiQIGIiIiIiIiIiIiIiKxiQIGIiIiIiIiIiIiIiKxiQIGIiIiIiIiIiIiIiKzipMxEREREREREREREVPIETspc2rCHAhERERERERERERERWcWAAhERERERERERERERWcWAAhERERERERERERERWcWAAhERERERERERERERWcVJmYmIiIiIiIiIiIio5Jk4KXNpwx4KRERERERERERERERkFQMKRERERERERERERERkFQMKRERERERERERERERkFQMKRERERERERERERERkFSdlJiIiIiIiIiIiIqKSJxhtnQN6SuyhYMdOnz6NVq1awWQyQa/XIyQkBCdPnjSvnzlzJiZOnAi9Xm+RLjw8HPPnz8eVK1csliuVSty9e7dE8k5EREREREREREREjoUBBTsmCAKSk5Nx//591KhRA9HR0Rg+fDhq1qyJmjVrYuPGjfjmm2/QrFkzREVFoU2bNqhWrRqqVq0KQRCQkpJi8XsKhQIKhcJGe/NsJSWnoMuA4bgX88DWWXEYIjdPiAMqARJ2ZCIiIiIiIqK8JN5ekIVUAaS8byQiel6wxrdjUqkUSqUSvr6+CA8PR926dbFu3To0bNgQALBixQrExsZi6dKlAIB169bBz88PGo0G8+bNAwB88cUXuHPnDgBAq9Vi6dKlUKlU0Gg0mDFjhk32q7glJadg7NS5DCYUQOwTCOXQSRCXLQf96SPQ/rDRahpFn5GQNmwPZKYBciWy1rwLIS63d4s4OASqoRORsXjMs8y6XRH7BkM14i2IPX2hO3kY2l1rraaR93oJig59ALkShtC/kLX+A0CbBQBQDhsPWaM2gEgM/YU/kP31p4Be94z3wvYiYhIx55tfcSchBX2bVsPk3s0hEokKTTPw/e24EZNo/t63aTXMHdweJpMJi789jh8vREAQTGhXqwJmDWwDpfz5ubRVCqmAhSveRUB5f+ze+gM+nr+qyGlFIhG27PsCP+0/hq8+/8a8fMxbI/HS6EFQqVU48csfmDFuPjIzMp9F9m1OVjEYZeZNhTTAF+l7DyF5xZdFSqeoXR1l5k3F/X4jnmqdo5IElodm3HSIy/lB+/N+ZH31udU0ykGvQtlzAERKJfRnzyD9k0VAdpZ5vbRqDWjGT0fKuJefZdbtTsSDJMz57hTuJKahb8NKmNy1vvU68tN9uPEg2fy9b4NKmNuvmcU2qVk69FvxA756oyv83J2eRdbtSkR8KuYcuoA7SZnoWzsQk9tWs1qO/0jN1qPf+qP46qWW8HNVI1tvxLsHz+PUrXjIJWL0qumPSW2rQ1zE33NEQVWD8NbHU+AbVA6Ht/+IdYvWFyndZ0fWoEK18ubvh7YdxoppnzyrbNqNiLhUzDlwFneSMtC3ThAmt6/5FMejDv2++BlfvdoGfm4aZGj1+Ojny/gtIhZyqQSvNK6EIY0qPuM9sB1ZpWB4vvc2pIG+SNt9CEnLrbe/1R1bocxb/wOkUjz8+AtkHD4KABCpVSgzdQxUrZvApNUhdcsupG77HgDgs+4jqBrVyfNbt+p0Kt4dsgPSCsHwmD0NUn8/ZPxwECkrvyhSOnmtGnCfPQ0PBr1qsdx14hiou3eGkJoKsVKF+HFvwRB951lkvVTwqOqP9h+/Dpcgb1zdfgynFm0rUrqGk/qi9sgukKkUiD56Eb9M+hz6jOxnnFv7ElglEOM+noRyweXw87Yj+Gqx9ecWj1O7aLDy1zWY3mcq4u/GYcGOxajZrFae7foG9iquLBM919hDwU7VqFEDly5dAgCMHDkSK1asAAAMHjzY3EPh/fffN29vNBpRoUIFiMU5/6SCIECn02Hr1q1wcnJC27ZtIZVK0aJFC1SsWBGfffZZie/TszJ17lJ079zO1tmwTxIpVKPnwHgnAhkfT4bYOwDSxh0KT1KpJqTVGyFjwShkLH4DxuvnIe84wLxe7F8RqpEzAansWefefkhlUI+fD2P0DaQvGgdxuUDImncuPEmT9pA1aY+MFbOQPvd1iH0Coej2IgBA1qwjxD4BSJ//JjI+mAKJbxAU3QaXxJ7YlM5gxIS1B1A9wBPfvDUQkQ+S8P2f1wpNk6XT405iCn5d+Bp+WzwKvy0ehXf6tQYA7P/rOqLik7H97UHYOKEfbsY
"text/plain": [
"<Figure size 2000x1600 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"train_corr = data_3.corr()\n",
"ax = plt.subplots(figsize=(20,16))\n",
"ax = sns.heatmap(train_corr, vmax=.8, square=True, annot=True)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "82ba42a6",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:37.544704Z",
"start_time": "2023-10-16T03:19:37.530805Z"
}
},
"outputs": [],
"source": [
"data_4 = data_full_minmax.drop(columns=['BET比表面积m2/g','孔体积cm3/g)', '微孔体积cm3/g)'])\n",
"data_4 = data_4.dropna(axis=0, subset=['介孔体积cm3/g)'])"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "3e26ea8d",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:38.096277Z",
"start_time": "2023-10-16T03:19:37.547705Z"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABhQAAAVoCAYAAABL5DVTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3QUVRsG8Gd7SU8I6SQhEHrvPfSOFKWqgICKSJVeVaqgCCIgHUUUFAGVrtJFUGqA0EsCpJCQ3rZ/fyzfhiVlgybZzfL8zpmjOzN3885ldto7916BwWAwgIiIiIiIiIiIiIiIqABCawdARERERERERERERES2jwkFIiIiIiIiIiIiIiKyiAkFIiIiIiIiIiIiIiKyiAkFIiIiIiIiIiIiIiKyiAkFIiIiIiIiIiIiIiKyiAkFIiIiIiIiIiIiIiKyiAkFIiIiIiIiIiIiIiKyiAkFIiIiIiIiIiIiIiKyiAkFIiIiIiIiIiIiIiKyiAkFIiIiIiIiIiIiIiKyiAkFIiIiIiIiIiIiIiIbdOXKFTRo0ABubm6YNGkSDAZDgesbDAaMHDkS7u7ucHV1xZAhQ5CVlVVk8TChQERERERERERERERkY1QqFbp374569erh7NmziIiIwObNmwsss2XLFty4cQMXLlzAiRMncPXqVSxcuLDIYmJCgYiIiIiIiIiIiIiohKhUKqSmpppNKpUq13r79+9HSkoKli5dipCQECxYsAAbNmwo8Lv//vtvvPrqqwgMDESNGjXQs2dP3L59u8hiFxfZN5Fd0yTctXYIdkHz/afWDsEu6B/GWjsEuyDu1svaIdiNtv03WTsEu/BzdZ21Q7ALeq21I7APzovGWDsEu2BIibd2CHZhwvDD1g7BLiydX8naIdiF1PXHrR2C/TAIrB2BXTh93dfaIdiFsPZx1g7BLrhs+cPaIZQ6L+szx4VffoOPPvrIbN6cOXPw4Ycfms27dOkSGjduDKVSCQCoWbMmIiIiCvzuatWqYcuWLejTpw+ys7Oxbds2TJgwochiZwsFIiIiIiIiIiIiIqISMm3aNKSkpJhN06ZNy7VeamoqgoODTZ8FAgFEIhGSkpLy/e7hw4cjPT0d3t7eCAoKQnBwMAYPHlxksTOhQERERERERERERERUQmQyGZydnc0mmUyWaz2xWJxrvlwuR2ZmZr7fvXz5cri6uiIyMhJRUVHQarWYNGlSkcXOhAIRERERERERERERkY1xd3dHfLx5N6JpaWmQSqX5ltm6dSsmTZqEcuXKISAgAAsXLrQ47sKLYEKBiIiIiIiIiIiIiMjGNGjQAH/99Zfp871796BSqeDu7p5vGb1ej8ePH5s+x8bGQqcrujELOSgzEREREREREREREZU8fdE96LZHLVu2RGpqKjZt2oShQ4diwYIFaNeuHUQiEZKTk+Hk5ASRSGRWpkWLFli0aBFEIhHUajU++eQT9OjRo8hiYkKBiIiIiIiIiIiIiMjGiMVirF+/HgMGDMCkSZMgFApx9OhRAICbmxsuXLiA2rVrm5WZN28eUlNTMXnyZKSlpaFjx45Yvnx50cVUZN9ERERERERERERERERFpkePHrhz5w7OnTuHxo0bw8PDAwBgMBjyXN/V1RXffPNNscXDhAIRERERERERERERkY3y9vZG165drR0GAA7KTEREREREREREREREhcAWCkRERERERERERERU8gx6a0dAL4gtFIiIiIiIiIiIiIiIyCImFIiIiIiIiIiIiIiIyCImFIiIiIiIiIiIiIiIyCKOoUBEREREREREREREJU/PMRRKG7ZQICIiIiIiIiIiIiIii5hQICIiIiIiIiIiIiIii5hQICIiIiIiIiIiIiIii5hQICIiIiIiIiIiIiIiizgoMxERERERERERERGVOIOBgzKXNmyhQEREREREREREREREFjGhQEREREREREREREREFjGhQEREREREREREREREFjGhQEREREREREREREREFnFQZiIiIiIiIiIiIiIqeXoOylzasIUCERERERERERERERFZxIQCERERERERERERERFZxIQCERERERERERERERFZxIQCERERERERERERERFZxEGZiYiIiIiIiIiIiKjkGTgoc2nDFgpERERERERERERERGQREwpERERERERERERERGQREwpERERERERERERERGQREwpERERERERERERERGQRB2UmIiIiIiIiIiIiopKn11k7AnpBbKFgw06fPo0WLVrAYDBAo9GgcuXKOHnypGn59OnTMXbsWGg0GrNyN2/exMcff4yrV6+azZfL5Xj48GGJxE5ERERERERERERE9oUJBRum1+uRnJyM6OhoVKtWDZGRkRgyZAiqV6+O6tWrY9OmTfjuu+/QpEkT3L9/H61atUKVKlVQqVIl6PV6pKSkmH2fTCaDTCaz0tYUr6TkFHR8dQgexcRZOxSifAlcy0DoFwKI2DiMiIiIiIiIiIhKHz7VsmFisRhyuRy+vr64efMmateujfXr16N+/foAgGXLliE2NhaLFi0CAKxfvx5+fn5wcHDAhx9+CABYs2YNHjx4AABQqVRYtGgRFAoFHBwcMG3aNKtsV1FLSk7BqElzmEwohNtP0jHnjwg8SMlCr6q+GNe0AgQCQaHKpqk06L31NL5+tT58nRXFHKltE3qVg+y19yH08Ibmn9+h3veNxTLSbkMgqRsGQ2Y6IJUha92HMMQ/KoFobcutR48xZ9OviHqchN4tamP8q20LtQ/q9QYM+eRrtK1bGYM7NjZbdvH2A8ze9Ct+mf9ecYVts4IrBWHG0snwC/LDnu/3YeW8NYUuKxAIsHr3Fzi67zi2rfnRNH/iwnFo2z0MAqEQJw6exJJpy6DOVhdH+FYnCgyG4wdTIfL1Q/aBPchc/1WhyomrVoPjhKlIHv6G2XzFoMFQ9HoVApkc6n/OIH3JfBiysoojdJsiCgqG86SpEPn5IWvfHmSsLXw9Ok+eisQhb7zQMnt260Es5qz9CVFxT9A7rAHGD+hUyGOkHkPmrkXbBtUwuEsL0/xXp32BWw9iTZ97taqPD0f0LpbYbcnt6ATM3nIID+KT0atpdYzv1cJiPb42fwtuRSeYPvdqWh1zBrWHwWDAgm2HcfD8DegNQOuaIZjRvy3k0pfnNso3NABvLBmJskHe+HPbYexc+O0LlVc4KzHn98+xuPdMJD6Mh0QmweCl76Nqy1rQqrU4/dMx7Fr4LQwGQzFtgXXdfpyC2b/8jQeJ6ehVpzzGt6tZ6Ovv1Gw1eq86gK/fags/Vwdka7SYuftv/HUnFlKxCN1rBmJc+1oQFvL77IkoKBguU56ee/buQfqawp17JNWM55cng1+e84soOBguU6Y8rau9SP/Kcl3JWrWC08iRgFiM9FWrkH34MABAoFDA6f33IW3SBFCrkbF9O7J27bK4zJ45VfZHnWXvwCHIG5HfHUHEx98Vuqxb/Yqou+wd/NF8ommeQCxClen94NejMYQSESK3HsGNz3bCoNMXR/g2RegfBMWISRB5+UF9dB+yt621WEbW6w1IO/SGQCaH9tLfyFyzCMi2/+tvImtjCwUbVa1aNYSHhwMAhg0bhmXLlgEA+vfvb2qh8Mknn5jW1+l0KF++PIRC4z+pXq+HWq3G1q1b4ejoiLCwMIjFYjRr1gwhISFYvXp1iW9TcZk0ZxG6dGht7TBsnlqnx9g9l1DF0xlb+zbA3cQM/HItptDlP//zNhIy7fOh4gsRiSEfMg36R3eQuWIShGUDIK7fpuAi5atBXLk+Mj4ZicxP34fu1iVIw3qVUMC2Q63RYsyK7agS6IPvZ76Fu9EJ+PnPS4Uq++Oxc0jLysbAtg3M5kfcj8H4lTug0b58fS5KpBIs3jwfNy7fxPAuIxEUGogufTsVunzPN7vD0ckBP27YaZrX6dX2KBcSgCEd38F7vcciODQIb74/sDjCtz6JBM4fL4T29g0kj34b4nJBkHXobLGYqEIonGfPg0AiMZsva90O8jbtkTpjEpLeGQJRuXJQ9BtUXNHbDokErvMWQnvrBpJGvg1xYBDkHS3Xo7hiKFw
"text/plain": [
"<Figure size 2000x1600 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"train_corr = data_4.corr()\n",
"ax = plt.subplots(figsize=(20,16))\n",
"ax = sns.heatmap(train_corr, vmax=.8, square=True, annot=True)"
]
},
{
"cell_type": "markdown",
"id": "d048dc50",
"metadata": {},
"source": [
"# BET比表面积m2/g"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "df96aed9",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:38.111774Z",
"start_time": "2023-10-16T03:19:38.100356Z"
}
},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"X = data_1[['煤种', '分析水Mad', '灰分', '挥发分', '碳', '氢', '氮', '硫', '氧', '碳化温度(℃)',\n",
" '升温速率(℃/min)', '保温时间(h)', 'KOH', 'K2CO3']]\n",
"y = data_1['BET比表面积m2/g']\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.15, random_state=42)"
]
},
{
"cell_type": "markdown",
"id": "4a7f9c12",
"metadata": {
"ExecuteTime": {
"end_time": "2023-08-31T06:38:33.990769Z",
"start_time": "2023-08-31T06:38:33.974589Z"
}
},
"source": [
"## 线性回归"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "c9d5261d",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:39.347976Z",
"start_time": "2023-10-16T03:19:39.328442Z"
}
},
"outputs": [],
"source": [
"from sklearn.linear_model import LinearRegression\n",
"clf = LinearRegression()\n",
"clf.fit(X_train, y_train)\n",
"test_pred = clf.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "29dd70b0",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:39.905668Z",
"start_time": "2023-10-16T03:19:39.889649Z"
}
},
"outputs": [],
"source": [
"from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n",
"# 计算均方误差MSE\n",
"def get_acc(y_test, test_pred):\n",
" mse = mean_squared_error(y_test,test_pred)\n",
" print(\"Mean Squared Error:\", mse)\n",
"\n",
" # 计算均方根误差RMSE\n",
" rmse = np.sqrt(mse)\n",
" print(\"Root Mean Squared Error:\", rmse)\n",
"\n",
" # 计算平均绝对误差MAE\n",
" mae = mean_absolute_error(y_test,test_pred)\n",
" print(\"Mean Absolute Error:\", mae)\n",
"\n",
" # 计算决定系数\n",
" r2 = r2_score(y_test,test_pred)\n",
" print(\"Coefficient of Determination (R²):\", r2)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "a7c7728a",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:40.326120Z",
"start_time": "2023-10-16T03:19:40.319111Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean Squared Error: 356346.0854506917\n",
"Root Mean Squared Error: 596.9473054220881\n",
"Mean Absolute Error: 421.32564458570505\n",
"Coefficient of Determination (R²): 0.6570769358934058\n"
]
}
],
"source": [
"get_acc(y_test,test_pred)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "5547aac5",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:40.775723Z",
"start_time": "2023-10-16T03:19:40.767742Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"煤种:-877.2972339819474\n",
"分析水Mad:1114.112507797246\n",
"灰分:-1080.5492474856756\n",
"挥发分:-1014.5682008519212\n",
"碳:2502.1689304953256\n",
"氢:1547.1118343327066\n",
"氮:-310.53231471047394\n",
"硫:622.2484614557459\n",
"氧:1735.089974709626\n",
"碳化温度(℃):949.2902933052904\n",
"升温速率(℃/min):16.004040022910374\n",
"保温时间(h):999.0720137977573\n",
"KOH:1593.2510277610688\n",
"K2CO3:-284.0768698715867\n"
]
}
],
"source": [
"coefficients = clf.coef_\n",
"key = ['煤种', '分析水Mad', '灰分', '挥发分', '碳', '氢', '氮', '硫', '氧', '碳化温度(℃)',\n",
" '升温速率(℃/min)', '保温时间(h)', 'KOH', 'K2CO3']\n",
"for index,i in enumerate(coefficients):\n",
" print(key[index] + ':' + str(i))"
]
},
{
"cell_type": "markdown",
"id": "f0c05013",
"metadata": {},
"source": [
"## LightGBM"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "5381b26b",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:42.820666Z",
"start_time": "2023-10-16T03:19:41.796852Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000416 seconds.\n",
"You can set `force_row_wise=true` to remove the overhead.\n",
"And if memory is not enough, you can set `force_col_wise=true`.\n",
"[LightGBM] [Info] Total Bins 112\n",
"[LightGBM] [Info] Number of data points in the train set: 58, number of used features: 11\n",
"[LightGBM] [Info] Start training from score 2093.679985\n",
"Training until validation scores don't improve for 10 rounds\n",
"[10]\ttraining's rmse: 963.582\tvalid_1's rmse: 1065.25\n",
"[20]\ttraining's rmse: 951.788\tvalid_1's rmse: 1058.77\n",
"[30]\ttraining's rmse: 941.053\tvalid_1's rmse: 1052.87\n",
"[40]\ttraining's rmse: 931.293\tvalid_1's rmse: 1047.48\n",
"[50]\ttraining's rmse: 922.404\tvalid_1's rmse: 1041.26\n",
"[60]\ttraining's rmse: 914.075\tvalid_1's rmse: 1032.99\n",
"[70]\ttraining's rmse: 906.208\tvalid_1's rmse: 1025.87\n",
"[80]\ttraining's rmse: 898.771\tvalid_1's rmse: 1017.92\n",
"[90]\ttraining's rmse: 891.757\tvalid_1's rmse: 1011.48\n",
"[100]\ttraining's rmse: 885.133\tvalid_1's rmse: 1004.27\n",
"[110]\ttraining's rmse: 878.885\tvalid_1's rmse: 997.768\n",
"[120]\ttraining's rmse: 872.995\tvalid_1's rmse: 992.232\n",
"[130]\ttraining's rmse: 867.436\tvalid_1's rmse: 987.243\n",
"[140]\ttraining's rmse: 862.191\tvalid_1's rmse: 984.017\n",
"[150]\ttraining's rmse: 857.24\tvalid_1's rmse: 979.536\n",
"[160]\ttraining's rmse: 852.571\tvalid_1's rmse: 975.56\n",
"[170]\ttraining's rmse: 848.168\tvalid_1's rmse: 971.554\n",
"[180]\ttraining's rmse: 844\tvalid_1's rmse: 969.917\n",
"[190]\ttraining's rmse: 840.022\tvalid_1's rmse: 966.922\n",
"[200]\ttraining's rmse: 836.228\tvalid_1's rmse: 965.609\n",
"Did not meet early stopping. Best iteration is:\n",
"[200]\ttraining's rmse: 836.228\tvalid_1's rmse: 965.609\n",
"Mean Squared Error: 932401.3299617766\n",
"Root Mean Squared Error: 965.609305030651\n",
"Mean Absolute Error: 803.9783213816435\n",
"Coefficient of Determination (R²): 0.1027208264595928\n"
]
}
],
"source": [
"import lightgbm as lgb\n",
"# 创建 LightGBM 数据集\n",
"train_data = lgb.Dataset(X_train, label=y_train)\n",
"test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)\n",
"\n",
"# 设置参数\n",
"params = {\n",
" 'objective': 'regression', # 回归问题\n",
" 'boosting_type': 'gbdt', # 使用梯度提升\n",
" 'metric': 'rmse', # 使用均方根误差作为评估指标\n",
" 'num_leaves': 2, # 每棵树的叶子节点数\n",
" 'learning_rate': 0.01, # 学习率\n",
"}\n",
"# 训练模型\n",
"#定义callback回调\n",
"callback=[lgb.early_stopping(stopping_rounds=10,verbose=True),\n",
" lgb.log_evaluation(period=10,show_stdv=True)]\n",
"# 训练 train\n",
"m1 = lgb.train(params,train_data,num_boost_round=200,\n",
" valid_sets=[train_data,test_data],callbacks=callback)\n",
"\n",
"# 进行预测\n",
"y_pred = m1.predict(X_test, num_iteration=m1.best_iteration)\n",
"get_acc(y_test,y_pred)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "023577ee",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:19:42.930190Z",
"start_time": "2023-10-16T03:19:42.822666Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1200x600 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHBCAYAAAD5IQp3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABLcElEQVR4nO3deZyNdf/H8feZ3WCs2YcZRPYlSfaSEMpSshtlKSJEmz3uW1HZsu/EXSqimojIUhTZiWzDKKrJZIYxZ87M+f7+OD+HY4bGNBxcr+fjcR5cy7nO5/o4Z+btey3HZowxAgAAgGX4eLsAAAAA3FoEQAAAAIshAAIAAFgMARAAAMBiCIAAAAAWQwAEAACwGAIgAACAxRAAAQAALIYACAAAYDEEQAC4wrfffiubzZbmY8SIEd4uDwAyhZ+3CwCA29HixYtVqlQpj3mFChXKtO3v2rVL3377rfr165dp27wZ5s+fr7CwMNWvX9/bpQDIRARAAEhD2bJlVbly5Zu2/V27dmnChAl3RACsX78+ARC4y3AIGAAAwGIIgABwg6ZNm6aSJUsqa9asql27tnbu3OmxfPXq1br//vsVHByssLAwTZgwwb0sIiJCNptNXbt21YkTJ9I8vzAsLEzz58/32Gb9+vU91rk0vX//fjVv3lw5c+b0WP/s2bPq0qWLcuXKpXz58un555/XhQsX3MujoqJks9kUFRWluXPnqkKFCurRo4d7+aW6NmzYoJEjR7qno6Ki3Ov8/vvvatu2rfLkyaPcuXOrTZs2iomJSbUfY8aMUYECBZQrVy716dNHxhj3Ot9//71q1KihLFmyqGTJkpo0adIN7UdycrIGDhyowoULK2vWrKpbt6727NmT6t8MgCcOAQPADViwYIFeeukljR07VlWqVNH48eP1yCOP6MiRI8qTJ4+OHTumJ598Up07d9bEiRO1d+9evfjii7r//vtVp04djRgxQi+++KK++OILzZw5UytXrpSUsfMLjx49qocfflhPP/20Ro8e7bGsdevW+vPPP/XBBx8oMTFRffr00YULF7Ro0SKP9caNG6dVq1apW7duql69unv+tm3bJEk9e/bU/fff7w6HV9bZsWNHRUdH64MPPpCPj4/69++vV199VXPmzHGvM2HCBAUFBWnOnDnas2eP3njjDTVq1EjNmjXT7t271aBBA7Vo0UJjxozRnj179PLLLyskJEQRERHp2o/3339fkydP1syZM1W4cGFNmjRJbdq00cGDB2+4n4ClGACA2/r1642kVI9t27YZY4wJCwszffv2da9/9uxZ4+vra+bOnWuMMebw4cNm1qxZ5uLFi8YYY86dO2cKFixo3n77bY/XmTdvnilWrFiaNRQrVszMmzfPY169evXM8OHDPaYlmeXLl6d6/rfffmskmR07drjnTZw40fj7+5vExERjjDHHjx83kkzJkiVNTEzMNftx9eteae7cuWb37t3u6d69e5syZcp47EfBggVNfHy8e17ZsmXN6NGjjTHGdOjQwZQqVcokJye7lw8ePNi8++676d6Pvn37miJFipiUlBRjjDGnT582X3zxhXE6ndfcJwDGMAIIAGn48MMPVbp0afd06dKlFR8fr6ioKE2aNCnVocrDhw9LkkqWLKn4+HgNGzZMGzdu1M6dO5WcnKyEhIR/VY/T6Uw1r0mTJmrRokWq+ZcOgVatWjXVshMnTnhc3fyf//xHefLkyVBNrVq10rx58zRkyBBt3bpVf/31l0JDQz3WiYiIULZs2dzT99xzjxwOhyRpx44deuihh+Tr6+tefuVIZnr2o1OnTpo3b57Kly+vhx9+WHXq1FHLli1ls9kytE+AVRAAASANpUuXTnUVcFxcnCRXSGnatKnHsnz58kmSVqxYodatW6tdu3bq1auXHnzwQfXs2fNf1xMdHZ1q3pWHbK/m6+urbdu2pQpCRYsWTfc2ric+Pl5VqlRRSEiIOnfurAEDBuiXX37Rf//7X4/1SpQocc1tmCvOBbzkxIkT+v333911/dN+VKtWTYcPH9bq1au1efNmPf/88xo/fry+++47+fnxKw64Fi4CAYB0CgkJUdGiRfXXX3+pcuXK7sfs2bO1efNmSa7bptSqVUuLFi1S586dVaxYMZ04cSLVtoKCgpScnJzm6/j5+XmMGG7bts3j4ot/Ur58eaWkpMjX19ddo6+vr9555x3Fxsbe0D5fq85169bp+PHjWr58uQYMGKD69evr2LFjqda7cnTvalWqVNGWLVuUkpLinjds2DC98MIL6d6PsWPH6pdfflHnzp01c+ZMffzxx/rxxx+1d+/eG9pPwGr47xEA3IDhw4erV69eKliwoGrUqKHly5drxowZ6tSpkyQpb9682rx5syIjI5WYmKixY8cqKioqVYi6//779fvvv2vOnDm677779N1332ngwIHy8fFRpUqVtGTJEnXp0kWnTp1SRETEDR2mffjhh1W3bl21b99eo0aNUnBwsN544w0lJyerQIECN7S/Dz74oD7++GM9+uijstvtOnv2rNq1a6e8efNKcgXeRx55RJ9++qmmTJmiggULpnvbgwYN0kMPPaSOHTuqR48e2rdvnz788ENNnjw53ftx+PBhffDBBxo9erRy586tefPmKSAgQEWKFLmh/QQsx9snIQLA7eTSRSA7d+685jqTJ082xYsXN0FBQaZKlSrmiy++cC87ffq0adKkiQkODjYFChQwr776qmnRooWpV69equ3MmTPHhIaGGj8/P1OuXDn3hQxHjhwxDz30kMmWLZspU6aMWb58eZoXgVzr4gxjjPnzzz9Nx44dTY4cOUzOnDlNmzZtzKlTp9zLL10Ecvz48ev24/z586Z9+/Yme/bsJmvWrGbEiBHuZaNGjTL58+c3WbJkMY0aNTLjx483Pj4+5ujRo8aY9F3MsnHjRlO9enUTGBhoSpUqZaZMmXJD+3Hu3DnTo0cPU6hQIRMYGGgqVqxoVqxYcd19AmCMzZg0TsIAAADAXYtzAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFsONoJGK0+nUb7/9puzZs/N9mgAA3CGMMYqPj1ehQoXk43P9MT4CIFL57bffUn2hOwAAuDNER0f/47fhEACRSvbs2SVJx48fV+7cub1cjXc5HA59/fXXeuyxx+Tv7+/tcryGPrjQh8vohQt9cKEPl3mzF3FxcQoNDXX/Hr8eAiBSuXTYN3v27AoJCfFyNd7lcDgUHByskJAQS/9Qow8u9OEyeuFCH1zow2W3Qy/Sc/oWF4EAAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMXYjDHG20Xg31u4cKGqVKmiChUq/OttxcXFKUeOHCrx8kdK9suaCdXduQJ9jcZWT9ErP/rKnmLzdjleQx9c6MNl9MKFPrjcrX2IeqtputZ79dVXdeDAAX3++edyOBzq37+/VqxYob/++kvVq1fX3LlzVbx48Ztc7eXf3+fOnVNISMh11/W76dXgpvvxxx/VtWtX9e7dW6VKlUq13Ol0KjExUS+//LJ8fX29UCEAAHenPXv2aOrUqdq9e7ck6ejRo/roo4/05ZdfqkCBAho5cqQiIiK0ceNGL1fqiQB4hzt79qw6dOig0aNHKzw8/JrrJSUl3cKqAAC
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12,6))\n",
"lgb.plot_importance(m1, max_num_features=30)\n",
"plt.title(\"Featurertances\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "21bd110f",
"metadata": {},
"source": [
"## 深度学习"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "0dfddc97",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T03:20:43.131929Z",
"start_time": "2023-10-16T03:19:52.795213Z"
}
},
"outputs": [],
"source": [
"import torch\n",
"from torch.utils.data import TensorDataset, DataLoader\n",
"from sklearn.model_selection import train_test_split\n",
"\n",
"import torch.nn as nn\n",
"import torch.optim as optim\n",
"from sklearn.metrics import mean_squared_error"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "5aebf4eb",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T06:51:24.519142Z",
"start_time": "2023-10-16T06:51:24.508111Z"
}
},
"outputs": [],
"source": [
"X = data_1[['煤种', '分析水Mad', '灰分', '挥发分', '碳', '氢', '氮', '硫', '氧', '碳化温度(℃)',\n",
" '升温速率(℃/min)', '保温时间(h)', 'KOH', 'K2CO3']]\n",
"y = data_1['BET比表面积m2/g']"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "8253f5fd",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T06:51:25.230185Z",
"start_time": "2023-10-16T06:51:25.224539Z"
}
},
"outputs": [],
"source": [
"x_tensor = torch.Tensor(X.values) # 将训练数据 x 转换为张量\n",
"y_tensor = torch.Tensor(y.values).reshape(-1,1) # 将标签数据 y 转换为张量"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "07ff123e",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T06:51:34.261537Z",
"start_time": "2023-10-16T06:51:34.246531Z"
}
},
"outputs": [],
"source": [
"#dataset = TensorDataset(x_tensor, y_tensor)\n",
"test_size = 0.15 # 设置测试集的比例\n",
"random_seed = 42 # 设置随机种子以确保可重复性\n",
"x_train, x_test, y_train, y_test = train_test_split(x_tensor, y_tensor, test_size=test_size, random_state=random_seed)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "831ef293",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T06:52:27.430895Z",
"start_time": "2023-10-16T06:52:27.410900Z"
}
},
"outputs": [],
"source": [
"scaler = MinMaxScaler()\n",
"scaler.fit(y_train)\n",
"y_train = torch.Tensor(scaler.transform(y_train))\n",
"y_test = torch.Tensor(scaler.transform(y_test))"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "dc3db5fd",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T06:53:07.917407Z",
"start_time": "2023-10-16T06:53:07.900340Z"
}
},
"outputs": [],
"source": [
"batch_size = 4 # 设置每个批次的大小\n",
"train_loader = DataLoader(TensorDataset(x_train, y_train), batch_size=batch_size, shuffle=True)\n",
"test_loader = DataLoader(TensorDataset(x_test, y_test), batch_size=batch_size) # drop_last=True"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "9317f8cb",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-04T01:13:31.121538Z",
"start_time": "2023-09-04T01:13:31.116896Z"
}
},
"outputs": [],
"source": [
"# for i in range(2):\n",
"# for inputs, labels in train_loader:\n",
"# print(labels)\n",
"# break"
]
},
{
"cell_type": "code",
"execution_count": 89,
"id": "a073d252",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T08:06:24.341867Z",
"start_time": "2023-10-16T08:06:14.864741Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch [1/500], Loss: 0.1375112235546112\n",
"Epoch [2/500], Loss: 0.05806560814380646\n",
"Epoch [3/500], Loss: 0.09772428125143051\n",
"Epoch [4/500], Loss: 0.021364646032452583\n",
"Epoch [5/500], Loss: 0.01773611083626747\n",
"Epoch [6/500], Loss: 0.021522678434848785\n",
"Epoch [7/500], Loss: 0.008145670406520367\n",
"Epoch [8/500], Loss: 0.06583523005247116\n",
"Epoch [9/500], Loss: 0.01977309212088585\n",
"Epoch [10/500], Loss: 0.023928888142108917\n",
"Epoch [11/500], Loss: 0.027664322406053543\n",
"Epoch [12/500], Loss: 0.0042370702140033245\n",
"Epoch [13/500], Loss: 0.02011457458138466\n",
"Epoch [14/500], Loss: 0.0015053569804877043\n",
"Epoch [15/500], Loss: 0.03043498657643795\n",
"Epoch [16/500], Loss: 0.018061762675642967\n",
"Epoch [17/500], Loss: 0.03032355196774006\n",
"Epoch [18/500], Loss: 0.003073741216212511\n",
"Epoch [19/500], Loss: 0.030238714069128036\n",
"Epoch [20/500], Loss: 0.013475775718688965\n",
"Epoch [21/500], Loss: 0.0019919639453291893\n",
"Epoch [22/500], Loss: 0.0721120536327362\n",
"Epoch [23/500], Loss: 0.018716545775532722\n",
"Epoch [24/500], Loss: 0.03277812898159027\n",
"Epoch [25/500], Loss: 0.0069098640233278275\n",
"Epoch [26/500], Loss: 0.02530064806342125\n",
"Epoch [27/500], Loss: 0.031360749155282974\n",
"Epoch [28/500], Loss: 0.007204529829323292\n",
"Epoch [29/500], Loss: 0.008599984459578991\n",
"Epoch [30/500], Loss: 0.003325084922835231\n",
"Epoch [31/500], Loss: 0.022524351254105568\n",
"Epoch [32/500], Loss: 0.014607256278395653\n",
"Epoch [33/500], Loss: 0.018749907612800598\n",
"Epoch [34/500], Loss: 0.0009139125468209386\n",
"Epoch [35/500], Loss: 0.012738749384880066\n",
"Epoch [36/500], Loss: 0.033581215888261795\n",
"Epoch [37/500], Loss: 0.016028260812163353\n",
"Epoch [38/500], Loss: 0.020110584795475006\n",
"Epoch [39/500], Loss: 0.02486024796962738\n",
"Epoch [40/500], Loss: 0.002677252981811762\n",
"Epoch [41/500], Loss: 0.012438181787729263\n",
"Epoch [42/500], Loss: 0.01628699153661728\n",
"Epoch [43/500], Loss: 0.028455808758735657\n",
"Epoch [44/500], Loss: 0.001482177060097456\n",
"Epoch [45/500], Loss: 0.006345514673739672\n",
"Epoch [46/500], Loss: 0.03298439830541611\n",
"Epoch [47/500], Loss: 0.05287860333919525\n",
"Epoch [48/500], Loss: 0.0027091410011053085\n",
"Epoch [49/500], Loss: 0.0118508730083704\n",
"Epoch [50/500], Loss: 0.0038459282368421555\n",
"Epoch [51/500], Loss: 0.024839868769049644\n",
"Epoch [52/500], Loss: 0.0030711244326084852\n",
"Epoch [53/500], Loss: 0.041477471590042114\n",
"Epoch [54/500], Loss: 0.04405653104186058\n",
"Epoch [55/500], Loss: 0.0023413999006152153\n",
"Epoch [56/500], Loss: 0.005603765603154898\n",
"Epoch [57/500], Loss: 0.05010407418012619\n",
"Epoch [58/500], Loss: 0.002134432550519705\n",
"Epoch [59/500], Loss: 0.0016706496244296432\n",
"Epoch [60/500], Loss: 0.0031203352846205235\n",
"Epoch [61/500], Loss: 0.022609718143939972\n",
"Epoch [62/500], Loss: 0.007998031564056873\n",
"Epoch [63/500], Loss: 0.03089986741542816\n",
"Epoch [64/500], Loss: 0.02436087280511856\n",
"Epoch [65/500], Loss: 0.0439436249434948\n",
"Epoch [66/500], Loss: 0.009039153344929218\n",
"Epoch [67/500], Loss: 0.03196775168180466\n",
"Epoch [68/500], Loss: 0.0014594022650271654\n",
"Epoch [69/500], Loss: 0.003043722826987505\n",
"Epoch [70/500], Loss: 0.02321109175682068\n",
"Epoch [71/500], Loss: 0.001104667317122221\n",
"Epoch [72/500], Loss: 0.0014685456408187747\n",
"Epoch [73/500], Loss: 0.010093788616359234\n",
"Epoch [74/500], Loss: 0.025984715670347214\n",
"Epoch [75/500], Loss: 0.055412407964468\n",
"Epoch [76/500], Loss: 0.027970263734459877\n",
"Epoch [77/500], Loss: 0.00738972332328558\n",
"Epoch [78/500], Loss: 0.0005837245844304562\n",
"Epoch [79/500], Loss: 0.002833475824445486\n",
"Epoch [80/500], Loss: 0.039277084171772\n",
"Epoch [81/500], Loss: 0.006304681301116943\n",
"Epoch [82/500], Loss: 0.027889391407370567\n",
"Epoch [83/500], Loss: 0.04046902805566788\n",
"Epoch [84/500], Loss: 0.0026628756895661354\n",
"Epoch [85/500], Loss: 0.00805905181914568\n",
"Epoch [86/500], Loss: 0.039849903434515\n",
"Epoch [87/500], Loss: 0.0007797772996127605\n",
"Epoch [88/500], Loss: 0.0935254693031311\n",
"Epoch [89/500], Loss: 0.02649867907166481\n",
"Epoch [90/500], Loss: 0.004896295256912708\n",
"Epoch [91/500], Loss: 0.0026272933464497328\n",
"Epoch [92/500], Loss: 0.04471985623240471\n",
"Epoch [93/500], Loss: 0.005443623289465904\n",
"Epoch [94/500], Loss: 0.006703123450279236\n",
"Epoch [95/500], Loss: 0.03889564424753189\n",
"Epoch [96/500], Loss: 0.002041529631242156\n",
"Epoch [97/500], Loss: 0.022731401026248932\n",
"Epoch [98/500], Loss: 0.02479637786746025\n",
"Epoch [99/500], Loss: 0.002792914630845189\n",
"Epoch [100/500], Loss: 0.01177084632217884\n",
"Epoch [101/500], Loss: 0.0010617190273478627\n",
"Epoch [102/500], Loss: 0.006667059846222401\n",
"Epoch [103/500], Loss: 0.06580355018377304\n",
"Epoch [104/500], Loss: 0.11343423277139664\n",
"Epoch [105/500], Loss: 0.005578789860010147\n",
"Epoch [106/500], Loss: 0.0020729107782244682\n",
"Epoch [107/500], Loss: 0.0024541851598769426\n",
"Epoch [108/500], Loss: 0.04115631431341171\n",
"Epoch [109/500], Loss: 0.0013442374765872955\n",
"Epoch [110/500], Loss: 0.0062351468950510025\n",
"Epoch [111/500], Loss: 0.0005676917498931289\n",
"Epoch [112/500], Loss: 0.02799421362578869\n",
"Epoch [113/500], Loss: 0.0011389830615371466\n",
"Epoch [114/500], Loss: 0.0016039859037846327\n",
"Epoch [115/500], Loss: 0.0019230787875130773\n",
"Epoch [116/500], Loss: 0.0062424009665846825\n",
"Epoch [117/500], Loss: 0.01075577363371849\n",
"Epoch [118/500], Loss: 0.17046409845352173\n",
"Epoch [119/500], Loss: 0.008756555616855621\n",
"Epoch [120/500], Loss: 0.02538108266890049\n",
"Epoch [121/500], Loss: 0.0027733466122299433\n",
"Epoch [122/500], Loss: 0.002166420454159379\n",
"Epoch [123/500], Loss: 0.0005181884625926614\n",
"Epoch [124/500], Loss: 0.002128859516233206\n",
"Epoch [125/500], Loss: 0.048927824944257736\n",
"Epoch [126/500], Loss: 0.006466357968747616\n",
"Epoch [127/500], Loss: 0.0013223910937085748\n",
"Epoch [128/500], Loss: 0.016330869868397713\n",
"Epoch [129/500], Loss: 0.0340036004781723\n",
"Epoch [130/500], Loss: 0.005737701430916786\n",
"Epoch [131/500], Loss: 0.043695010244846344\n",
"Epoch [132/500], Loss: 0.02377896197140217\n",
"Epoch [133/500], Loss: 0.03224272280931473\n",
"Epoch [134/500], Loss: 0.0022535149473696947\n",
"Epoch [135/500], Loss: 0.005497700069099665\n",
"Epoch [136/500], Loss: 0.0016764058964326978\n",
"Epoch [137/500], Loss: 0.013641731813549995\n",
"Epoch [138/500], Loss: 0.03554676100611687\n",
"Epoch [139/500], Loss: 0.002655998570844531\n",
"Epoch [140/500], Loss: 0.014379335567355156\n",
"Epoch [141/500], Loss: 0.0004798714362550527\n",
"Epoch [142/500], Loss: 0.022848913446068764\n",
"Epoch [143/500], Loss: 0.003569053253158927\n",
"Epoch [144/500], Loss: 0.0010363985784351826\n",
"Epoch [145/500], Loss: 0.0011998001718893647\n",
"Epoch [146/500], Loss: 0.029332881793379784\n",
"Epoch [147/500], Loss: 0.0021700109355151653\n",
"Epoch [148/500], Loss: 0.04989006742835045\n",
"Epoch [149/500], Loss: 0.017596838995814323\n",
"Epoch [150/500], Loss: 0.005552900023758411\n",
"Epoch [151/500], Loss: 0.02130822092294693\n",
"Epoch [152/500], Loss: 0.013184739276766777\n",
"Epoch [153/500], Loss: 0.003693445585668087\n",
"Epoch [154/500], Loss: 0.0002814586041495204\n",
"Epoch [155/500], Loss: 0.011256406083703041\n",
"Epoch [156/500], Loss: 0.0007573600159958005\n",
"Epoch [157/500], Loss: 0.0019472946878522635\n",
"Epoch [158/500], Loss: 0.015084566548466682\n",
"Epoch [159/500], Loss: 0.006373480428010225\n",
"Epoch [160/500], Loss: 0.0014554281951859593\n",
"Epoch [161/500], Loss: 0.003039491828531027\n",
"Epoch [162/500], Loss: 0.0013355282135307789\n",
"Epoch [163/500], Loss: 0.0038741338066756725\n",
"Epoch [164/500], Loss: 0.0035878620110452175\n",
"Epoch [165/500], Loss: 0.030438825488090515\n",
"Epoch [166/500], Loss: 0.0697525143623352\n",
"Epoch [167/500], Loss: 0.026584984734654427\n",
"Epoch [168/500], Loss: 0.0019321260042488575\n",
"Epoch [169/500], Loss: 0.05357321351766586\n",
"Epoch [170/500], Loss: 0.016700396314263344\n",
"Epoch [171/500], Loss: 0.09351684153079987\n",
"Epoch [172/500], Loss: 0.008441533893346786\n",
"Epoch [173/500], Loss: 0.016276434063911438\n",
"Epoch [174/500], Loss: 0.07126587629318237\n",
"Epoch [175/500], Loss: 0.005204909015446901\n",
"Epoch [176/500], Loss: 0.003409262513741851\n",
"Epoch [177/500], Loss: 0.04996544122695923\n",
"Epoch [178/500], Loss: 0.04525388404726982\n",
"Epoch [179/500], Loss: 0.009854236617684364\n",
"Epoch [180/500], Loss: 0.0035332152619957924\n",
"Epoch [181/500], Loss: 0.0025211272295564413\n",
"Epoch [182/500], Loss: 0.004975481424480677\n",
"Epoch [183/500], Loss: 0.0014112028293311596\n",
"Epoch [184/500], Loss: 0.002589487237855792\n",
"Epoch [185/500], Loss: 0.0003969790996052325\n",
"Epoch [186/500], Loss: 0.07826998084783554\n",
"Epoch [187/500], Loss: 0.0003743321285583079\n",
"Epoch [188/500], Loss: 0.028815554454922676\n",
"Epoch [189/500], Loss: 0.006910406053066254\n",
"Epoch [190/500], Loss: 0.0004680223355535418\n",
"Epoch [191/500], Loss: 0.0004503509262576699\n",
"Epoch [192/500], Loss: 0.0013653915375471115\n",
"Epoch [193/500], Loss: 0.06225353106856346\n",
"Epoch [194/500], Loss: 0.01694313995540142\n",
"Epoch [195/500], Loss: 0.024628346785902977\n",
"Epoch [196/500], Loss: 0.008102591149508953\n",
"Epoch [197/500], Loss: 0.042955197393894196\n",
"Epoch [198/500], Loss: 0.04331319406628609\n",
"Epoch [199/500], Loss: 0.04208041727542877\n",
"Epoch [200/500], Loss: 0.0032112603075802326\n",
"Epoch [201/500], Loss: 0.0031181415542960167\n",
"Epoch [202/500], Loss: 0.006705279462039471\n",
"Epoch [203/500], Loss: 0.006221733056008816\n",
"Epoch [204/500], Loss: 0.06713331490755081\n",
"Epoch [205/500], Loss: 0.0023540379479527473\n",
"Epoch [206/500], Loss: 0.012740552425384521\n",
"Epoch [207/500], Loss: 0.03839072957634926\n",
"Epoch [208/500], Loss: 0.0030456939712166786\n",
"Epoch [209/500], Loss: 0.012639260850846767\n",
"Epoch [210/500], Loss: 0.08555809408426285\n",
"Epoch [211/500], Loss: 0.011615005321800709\n",
"Epoch [212/500], Loss: 0.004777462687343359\n",
"Epoch [213/500], Loss: 0.012780732475221157\n",
"Epoch [214/500], Loss: 0.009147602133452892\n",
"Epoch [215/500], Loss: 0.0058478908613324165\n",
"Epoch [216/500], Loss: 0.04147972911596298\n",
"Epoch [217/500], Loss: 0.005171542055904865\n",
"Epoch [218/500], Loss: 7.350118539761752e-05\n",
"Epoch [219/500], Loss: 0.014487506821751595\n",
"Epoch [220/500], Loss: 0.014558564871549606\n",
"Epoch [221/500], Loss: 0.004064792767167091\n",
"Epoch [222/500], Loss: 0.013005146756768227\n",
"Epoch [223/500], Loss: 0.0153804374858737\n",
"Epoch [224/500], Loss: 0.0026739821769297123\n",
"Epoch [225/500], Loss: 0.021649105474352837\n",
"Epoch [226/500], Loss: 4.6764260332565755e-05\n",
"Epoch [227/500], Loss: 0.008229969069361687\n",
"Epoch [228/500], Loss: 0.03477006033062935\n",
"Epoch [229/500], Loss: 0.045727379620075226\n",
"Epoch [230/500], Loss: 0.005768945906311274\n",
"Epoch [231/500], Loss: 0.03247058391571045\n",
"Epoch [232/500], Loss: 0.012503192760050297\n",
"Epoch [233/500], Loss: 0.002126991981640458\n",
"Epoch [234/500], Loss: 0.010053770616650581\n",
"Epoch [235/500], Loss: 0.00034815288381651044\n",
"Epoch [236/500], Loss: 0.048214126378297806\n",
"Epoch [237/500], Loss: 0.00026693425024859607\n",
"Epoch [238/500], Loss: 2.02381270355545e-05\n",
"Epoch [239/500], Loss: 0.005556574556976557\n",
"Epoch [240/500], Loss: 0.03920856863260269\n",
"Epoch [241/500], Loss: 0.0034664086997509003\n",
"Epoch [242/500], Loss: 0.04071921110153198\n",
"Epoch [243/500], Loss: 0.0006618301849812269\n",
"Epoch [244/500], Loss: 0.0021888422779738903\n",
"Epoch [245/500], Loss: 0.0013250377960503101\n",
"Epoch [246/500], Loss: 0.003629772923886776\n",
"Epoch [247/500], Loss: 0.0594235323369503\n",
"Epoch [248/500], Loss: 0.016643522307276726\n",
"Epoch [249/500], Loss: 0.009673218242824078\n",
"Epoch [250/500], Loss: 0.0036092321388423443\n",
"Epoch [251/500], Loss: 0.05879771336913109\n",
"Epoch [252/500], Loss: 0.003090853802859783\n",
"Epoch [253/500], Loss: 0.02111334726214409\n",
"Epoch [254/500], Loss: 0.022870125249028206\n",
"Epoch [255/500], Loss: 0.05318121984601021\n",
"Epoch [256/500], Loss: 0.0017253202386200428\n",
"Epoch [257/500], Loss: 0.007201156113296747\n",
"Epoch [258/500], Loss: 0.002112701768055558\n",
"Epoch [259/500], Loss: 0.0073450361378490925\n",
"Epoch [260/500], Loss: 0.015811219811439514\n",
"Epoch [261/500], Loss: 0.004212500061839819\n",
"Epoch [262/500], Loss: 0.001272354507818818\n",
"Epoch [263/500], Loss: 0.005261383485049009\n",
"Epoch [264/500], Loss: 0.0038850714918226004\n",
"Epoch [265/500], Loss: 0.05691572651267052\n",
"Epoch [266/500], Loss: 0.006289471406489611\n",
"Epoch [267/500], Loss: 0.002757476642727852\n",
"Epoch [268/500], Loss: 0.021156737580895424\n",
"Epoch [269/500], Loss: 0.0023931332398205996\n",
"Epoch [270/500], Loss: 0.006766161881387234\n",
"Epoch [271/500], Loss: 0.02514025941491127\n",
"Epoch [272/500], Loss: 0.00140485935844481\n",
"Epoch [273/500], Loss: 0.0009262938983738422\n",
"Epoch [274/500], Loss: 0.004550900310277939\n",
"Epoch [275/500], Loss: 0.00421573081985116\n",
"Epoch [276/500], Loss: 0.00157522177323699\n",
"Epoch [277/500], Loss: 0.0007012173300608993\n",
"Epoch [278/500], Loss: 0.026990199461579323\n",
"Epoch [279/500], Loss: 4.483868178795092e-05\n",
"Epoch [280/500], Loss: 0.004302495159208775\n",
"Epoch [281/500], Loss: 0.008067263290286064\n",
"Epoch [282/500], Loss: 0.011439524590969086\n",
"Epoch [283/500], Loss: 9.122218762058765e-05\n",
"Epoch [284/500], Loss: 0.0031750069465488195\n",
"Epoch [285/500], Loss: 0.029386484995484352\n",
"Epoch [286/500], Loss: 0.005599193274974823\n",
"Epoch [287/500], Loss: 0.005738256499171257\n",
"Epoch [288/500], Loss: 0.06986704468727112\n",
"Epoch [289/500], Loss: 0.0018949476070702076\n",
"Epoch [290/500], Loss: 0.09041392058134079\n",
"Epoch [291/500], Loss: 0.018560271710157394\n",
"Epoch [292/500], Loss: 0.0026267501525580883\n",
"Epoch [293/500], Loss: 0.0019922247156500816\n",
"Epoch [294/500], Loss: 0.017104022204875946\n",
"Epoch [295/500], Loss: 0.0005694482824765146\n",
"Epoch [296/500], Loss: 0.007507719565182924\n",
"Epoch [297/500], Loss: 0.006482328288257122\n",
"Epoch [298/500], Loss: 0.0024087103083729744\n",
"Epoch [299/500], Loss: 0.05851000174880028\n",
"Epoch [300/500], Loss: 0.0011563425650820136\n",
"Epoch [301/500], Loss: 0.011744212359189987\n",
"Epoch [302/500], Loss: 0.002184823388233781\n",
"Epoch [303/500], Loss: 0.0058927880600094795\n",
"Epoch [304/500], Loss: 0.00927648413926363\n",
"Epoch [305/500], Loss: 0.0479230061173439\n",
"Epoch [306/500], Loss: 0.004363314248621464\n",
"Epoch [307/500], Loss: 0.0086222467944026\n",
"Epoch [308/500], Loss: 0.030482163652777672\n",
"Epoch [309/500], Loss: 0.003002484329044819\n",
"Epoch [310/500], Loss: 0.0066330209374427795\n",
"Epoch [311/500], Loss: 0.018022719770669937\n",
"Epoch [312/500], Loss: 0.00010116666089743376\n",
"Epoch [313/500], Loss: 0.00018753194308374077\n",
"Epoch [314/500], Loss: 0.004829633980989456\n",
"Epoch [315/500], Loss: 0.00032581284176558256\n",
"Epoch [316/500], Loss: 0.002615016885101795\n",
"Epoch [317/500], Loss: 0.007050527725368738\n",
"Epoch [318/500], Loss: 0.005131404846906662\n",
"Epoch [319/500], Loss: 0.0011197510175406933\n",
"Epoch [320/500], Loss: 0.05249177664518356\n",
"Epoch [321/500], Loss: 0.03191399574279785\n",
"Epoch [322/500], Loss: 0.00019152279128320515\n",
"Epoch [323/500], Loss: 0.004909854382276535\n",
"Epoch [324/500], Loss: 0.011886325664818287\n",
"Epoch [325/500], Loss: 0.029640868306159973\n",
"Epoch [326/500], Loss: 0.031823888421058655\n",
"Epoch [327/500], Loss: 0.0062920390628278255\n",
"Epoch [328/500], Loss: 0.00017116339586209506\n",
"Epoch [329/500], Loss: 0.001436929334886372\n",
"Epoch [330/500], Loss: 0.01118563488125801\n",
"Epoch [331/500], Loss: 0.00213825237005949\n",
"Epoch [332/500], Loss: 0.03062581643462181\n",
"Epoch [333/500], Loss: 0.0002852695470210165\n",
"Epoch [334/500], Loss: 0.07077590376138687\n",
"Epoch [335/500], Loss: 0.003759284969419241\n",
"Epoch [336/500], Loss: 0.0001586130092618987\n",
"Epoch [337/500], Loss: 0.0017211722442880273\n",
"Epoch [338/500], Loss: 0.02109840139746666\n",
"Epoch [339/500], Loss: 3.771989213419147e-05\n",
"Epoch [340/500], Loss: 0.032939717173576355\n",
"Epoch [341/500], Loss: 0.00371516402810812\n",
"Epoch [342/500], Loss: 8.676133438711986e-05\n",
"Epoch [343/500], Loss: 0.08196665346622467\n",
"Epoch [344/500], Loss: 0.013854238204658031\n",
"Epoch [345/500], Loss: 0.0006285720155574381\n",
"Epoch [346/500], Loss: 0.02226456254720688\n",
"Epoch [347/500], Loss: 0.014572139829397202\n",
"Epoch [348/500], Loss: 0.0019131932640448213\n",
"Epoch [349/500], Loss: 0.00010305445175617933\n",
"Epoch [350/500], Loss: 0.0005039064562879503\n",
"Epoch [351/500], Loss: 0.004073971416801214\n",
"Epoch [352/500], Loss: 0.033171914517879486\n",
"Epoch [353/500], Loss: 0.010129127651453018\n",
"Epoch [354/500], Loss: 0.0022702424321323633\n",
"Epoch [355/500], Loss: 0.008167754858732224\n",
"Epoch [356/500], Loss: 0.00785281416028738\n",
"Epoch [357/500], Loss: 0.000322493928251788\n",
"Epoch [358/500], Loss: 0.004858750384300947\n",
"Epoch [359/500], Loss: 0.004881981760263443\n",
"Epoch [360/500], Loss: 0.00746745802462101\n",
"Epoch [361/500], Loss: 0.010379328392446041\n",
"Epoch [362/500], Loss: 0.0058652726002037525\n",
"Epoch [363/500], Loss: 0.0004618314269464463\n",
"Epoch [364/500], Loss: 0.006085830274969339\n",
"Epoch [365/500], Loss: 0.000941723701544106\n",
"Epoch [366/500], Loss: 0.03767510876059532\n",
"Epoch [367/500], Loss: 0.011685237288475037\n",
"Epoch [368/500], Loss: 0.0008707785164006054\n",
"Epoch [369/500], Loss: 0.02531655691564083\n",
"Epoch [370/500], Loss: 0.004996206145733595\n",
"Epoch [371/500], Loss: 0.0010867653181776404\n",
"Epoch [372/500], Loss: 0.0006999694742262363\n",
"Epoch [373/500], Loss: 0.01705274172127247\n",
"Epoch [374/500], Loss: 0.05384088680148125\n",
"Epoch [375/500], Loss: 0.01126344595104456\n",
"Epoch [376/500], Loss: 0.015743853524327278\n",
"Epoch [377/500], Loss: 0.0320991650223732\n",
"Epoch [378/500], Loss: 0.0005882499390281737\n",
"Epoch [379/500], Loss: 0.0021416516974568367\n",
"Epoch [380/500], Loss: 0.05442241206765175\n",
"Epoch [381/500], Loss: 0.0015610777772963047\n",
"Epoch [382/500], Loss: 0.0005470622563734651\n",
"Epoch [383/500], Loss: 0.018941041082143784\n",
"Epoch [384/500], Loss: 0.012094169855117798\n",
"Epoch [385/500], Loss: 0.019305747002363205\n",
"Epoch [386/500], Loss: 0.07708469778299332\n",
"Epoch [387/500], Loss: 0.002655626507475972\n",
"Epoch [388/500], Loss: 0.004292313475161791\n",
"Epoch [389/500], Loss: 0.07936340570449829\n",
"Epoch [390/500], Loss: 0.0016670332988724113\n",
"Epoch [391/500], Loss: 0.016174355521798134\n",
"Epoch [392/500], Loss: 0.006798918824642897\n",
"Epoch [393/500], Loss: 0.00029492948669940233\n",
"Epoch [394/500], Loss: 0.00011687564983731136\n",
"Epoch [395/500], Loss: 0.017136242240667343\n",
"Epoch [396/500], Loss: 0.03577888756990433\n",
"Epoch [397/500], Loss: 0.0003159995249006897\n",
"Epoch [398/500], Loss: 0.015117786824703217\n",
"Epoch [399/500], Loss: 0.0011421125382184982\n",
"Epoch [400/500], Loss: 0.015192978084087372\n",
"Epoch [401/500], Loss: 0.004745943006128073\n",
"Epoch [402/500], Loss: 0.01897788792848587\n",
"Epoch [403/500], Loss: 0.003992446698248386\n",
"Epoch [404/500], Loss: 0.002169169718399644\n",
"Epoch [405/500], Loss: 0.00431237043812871\n",
"Epoch [406/500], Loss: 0.009031831286847591\n",
"Epoch [407/500], Loss: 0.0004428187385201454\n",
"Epoch [408/500], Loss: 0.0013586758868768811\n",
"Epoch [409/500], Loss: 0.0005756563041359186\n",
"Epoch [410/500], Loss: 0.0019101585494354367\n",
"Epoch [411/500], Loss: 0.007107924669981003\n",
"Epoch [412/500], Loss: 0.030316229909658432\n",
"Epoch [413/500], Loss: 0.0037615930195897818\n",
"Epoch [414/500], Loss: 0.07749312371015549\n",
"Epoch [415/500], Loss: 0.0011442011455073953\n",
"Epoch [416/500], Loss: 0.02641211822628975\n",
"Epoch [417/500], Loss: 0.0019013454439118505\n",
"Epoch [418/500], Loss: 0.0012308870209380984\n",
"Epoch [419/500], Loss: 0.029525063931941986\n",
"Epoch [420/500], Loss: 0.0033975038677453995\n",
"Epoch [421/500], Loss: 0.019639603793621063\n",
"Epoch [422/500], Loss: 0.026813963428139687\n",
"Epoch [423/500], Loss: 0.09774226695299149\n",
"Epoch [424/500], Loss: 0.0067322226241230965\n",
"Epoch [425/500], Loss: 0.0039830454625189304\n",
"Epoch [426/500], Loss: 0.007469410542398691\n",
"Epoch [427/500], Loss: 0.006599951535463333\n",
"Epoch [428/500], Loss: 0.0003117715532425791\n",
"Epoch [429/500], Loss: 0.06321053951978683\n",
"Epoch [430/500], Loss: 0.02796204388141632\n",
"Epoch [431/500], Loss: 0.01125897467136383\n",
"Epoch [432/500], Loss: 0.012813759967684746\n",
"Epoch [433/500], Loss: 0.00016852852422744036\n",
"Epoch [434/500], Loss: 4.32200358773116e-05\n",
"Epoch [435/500], Loss: 4.2314281017752364e-05\n",
"Epoch [436/500], Loss: 0.0017623314633965492\n",
"Epoch [437/500], Loss: 0.00034134119050577283\n",
"Epoch [438/500], Loss: 0.003189063398167491\n",
"Epoch [439/500], Loss: 0.012208868749439716\n",
"Epoch [440/500], Loss: 0.00021606399968732148\n",
"Epoch [441/500], Loss: 0.0074579231441020966\n",
"Epoch [442/500], Loss: 0.056500423699617386\n",
"Epoch [443/500], Loss: 0.00363926007412374\n",
"Epoch [444/500], Loss: 0.005867509637027979\n",
"Epoch [445/500], Loss: 0.024584908038377762\n",
"Epoch [446/500], Loss: 0.003773406380787492\n",
"Epoch [447/500], Loss: 0.0007757568964734674\n",
"Epoch [448/500], Loss: 0.0009093397529795766\n",
"Epoch [449/500], Loss: 0.10213126242160797\n",
"Epoch [450/500], Loss: 0.0014893009793013334\n",
"Epoch [451/500], Loss: 0.037768542766571045\n",
"Epoch [452/500], Loss: 0.004203153774142265\n",
"Epoch [453/500], Loss: 0.06414327025413513\n",
"Epoch [454/500], Loss: 0.00043996336171403527\n",
"Epoch [455/500], Loss: 0.07357332110404968\n",
"Epoch [456/500], Loss: 0.00012314450577832758\n",
"Epoch [457/500], Loss: 0.001822543446905911\n",
"Epoch [458/500], Loss: 0.007053156848996878\n",
"Epoch [459/500], Loss: 0.0015076244017109275\n",
"Epoch [460/500], Loss: 0.06966470181941986\n",
"Epoch [461/500], Loss: 0.0076424842700362206\n",
"Epoch [462/500], Loss: 0.007046313025057316\n",
"Epoch [463/500], Loss: 0.0007923615048639476\n",
"Epoch [464/500], Loss: 0.0010421440238133073\n",
"Epoch [465/500], Loss: 0.0005530701600946486\n",
"Epoch [466/500], Loss: 0.019697077572345734\n",
"Epoch [467/500], Loss: 0.01717797853052616\n",
"Epoch [468/500], Loss: 0.027404241263866425\n",
"Epoch [469/500], Loss: 0.02524019032716751\n",
"Epoch [470/500], Loss: 0.0001539852819405496\n",
"Epoch [471/500], Loss: 1.759162114467472e-05\n",
"Epoch [472/500], Loss: 0.016116004437208176\n",
"Epoch [473/500], Loss: 0.03092670999467373\n",
"Epoch [474/500], Loss: 0.002649572677910328\n",
"Epoch [475/500], Loss: 0.0005785493995063007\n",
"Epoch [476/500], Loss: 0.0015102593461051583\n",
"Epoch [477/500], Loss: 0.024442831054329872\n",
"Epoch [478/500], Loss: 0.004341053776443005\n",
"Epoch [479/500], Loss: 0.0004253871738910675\n",
"Epoch [480/500], Loss: 0.005762408021837473\n",
"Epoch [481/500], Loss: 0.004989593755453825\n",
"Epoch [482/500], Loss: 0.025062531232833862\n",
"Epoch [483/500], Loss: 0.03994796425104141\n",
"Epoch [484/500], Loss: 0.0008264294592663646\n",
"Epoch [485/500], Loss: 0.0017936986405402422\n",
"Epoch [486/500], Loss: 0.0003618694026954472\n",
"Epoch [487/500], Loss: 9.855670214165002e-05\n",
"Epoch [488/500], Loss: 0.004056067205965519\n",
"Epoch [489/500], Loss: 0.0008443252881988883\n",
"Epoch [490/500], Loss: 0.004218078218400478\n",
"Epoch [491/500], Loss: 0.00034481531474739313\n",
"Epoch [492/500], Loss: 0.024722788482904434\n",
"Epoch [493/500], Loss: 0.023092253133654594\n",
"Epoch [494/500], Loss: 0.00404107291251421\n",
"Epoch [495/500], Loss: 0.025037666782736778\n",
"Epoch [496/500], Loss: 0.02405189536511898\n",
"Epoch [497/500], Loss: 0.06052062287926674\n",
"Epoch [498/500], Loss: 8.332116703968495e-05\n",
"Epoch [499/500], Loss: 0.0018309121951460838\n",
"Epoch [500/500], Loss: 0.0009281415259465575\n"
]
}
],
"source": [
"# 定义一个简单的前馈神经网络\n",
"\n",
"class Net(nn.Module):\n",
" def __init__(self, input_size, hidden_size, output_size):\n",
" super(Net, self).__init__()\n",
" self.fc1 = nn.Linear(input_size, hidden_size)\n",
" self.relu = nn.ReLU()\n",
" self.sigmoid = nn.Sigmoid()\n",
" self.fc2 = nn.Linear(hidden_size, 10)\n",
" self.fc3 = nn.Linear(10,output_size)\n",
"\n",
" def forward(self, x):\n",
" x = self.fc1(x)\n",
" x = self.sigmoid(x)\n",
" x = self.fc2(x)\n",
" x = self.sigmoid(x)\n",
" x = self.fc3(x)\n",
" return x\n",
"\n",
"# 定义训练参数\n",
"input_size = 14 \n",
"hidden_size = 40 \n",
"output_size = 1 \n",
"\n",
"learning_rate = 0.01\n",
"num_epochs = 100\n",
"\n",
"# 创建模型实例\n",
"model = Net(input_size, hidden_size, output_size)\n",
"\n",
"# 定义损失函数和优化器\n",
"criterion = nn.MSELoss() # 使用均方误差损失\n",
"optimizer = optim.Adam(model.parameters(), lr=learning_rate)\n",
"\n",
"# 训练回归模型\n",
"num_epochs = 500\n",
"for epoch in range(num_epochs):\n",
" model.train()\n",
" for inputs, labels in train_loader:\n",
" optimizer.zero_grad()\n",
" outputs = model(inputs)\n",
" loss = criterion(outputs, labels)\n",
" loss.backward()\n",
" optimizer.step()\n",
" print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item()}')"
]
},
{
"cell_type": "code",
"execution_count": 90,
"id": "193ce8c0",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T08:06:27.039684Z",
"start_time": "2023-10-16T08:06:27.026198Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean Squared Error on Test Set: 0.044565981098761163\n"
]
}
],
"source": [
"# 在测试集上评估模型\n",
"model.eval()\n",
"total_loss = 0.0\n",
"with torch.no_grad():\n",
" for inputs, labels in test_loader:\n",
" outputs = model(inputs)\n",
" loss = criterion(outputs, labels)\n",
" total_loss += loss.item()\n",
" mean_loss = total_loss / len(test_loader)\n",
" print(f'Mean Squared Error on Test Set: {mean_loss}')"
]
},
{
"cell_type": "code",
"execution_count": 91,
"id": "e14bf5fb",
"metadata": {
"ExecuteTime": {
"end_time": "2023-10-16T08:06:28.436482Z",
"start_time": "2023-10-16T08:06:28.411783Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean Squared Error: 699595.7527474399\n",
"Root Mean Squared Error: 836.418407704804\n",
"Mean Absolute Error: 518.1976214232881\n",
"Coefficient of Determination (R²): 0.3576555083971398\n"
]
}
],
"source": [
"# 在测试集上评估模型\n",
"model.eval()\n",
"test_pred = []\n",
"test_label = []\n",
"with torch.no_grad():\n",
" for inputs, labels in test_loader:\n",
" outputs = model(inputs)\n",
" test_pred += [i[0] for i in scaler.inverse_transform(outputs)]\n",
" test_label += [i[0] for i in scaler.inverse_transform(labels)]\n",
" get_acc(test_pred,test_label)"
]
},
{
"cell_type": "markdown",
"id": "82261348",
"metadata": {},
"source": [
"# 孔体积cm3/g)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "426fe4a4",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:08.852308Z",
"start_time": "2023-09-01T08:11:08.837793Z"
}
},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"\n",
"X = data_2[['煤种', '分析水Mad', '灰分', '挥发分', '碳', '氢', '氮', '硫', '氧', '碳化温度(℃)',\n",
" '升温速率(℃/min)', '保温时间(h)', 'KOH', 'K2CO3']]\n",
"y = data_2['孔体积cm3/g)']\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.15, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "b9593356",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:08.867651Z",
"start_time": "2023-09-01T08:11:08.852308Z"
}
},
"outputs": [],
"source": [
"from sklearn.linear_model import LinearRegression\n",
"clf = LinearRegression()\n",
"clf.fit(X_train, y_train)\n",
"test_pred = clf.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "9febe0b6",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:08.883493Z",
"start_time": "2023-09-01T08:11:08.869428Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean Squared Error: 0.23406172859604119\n",
"Root Mean Squared Error: 0.4837992647741842\n",
"Mean Absolute Error: 0.2891327306690083\n",
"Coefficient of Determination (R²): 0.17152237332862152\n"
]
}
],
"source": [
"get_acc(y_test,test_pred)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "1795c9da",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:08.899283Z",
"start_time": "2023-09-01T08:11:08.885282Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"煤种:-0.5334104525105708\n",
"分析水Mad:1.049110275675087\n",
"灰分:-0.47087329582498033\n",
"挥发分:-0.09779320575303108\n",
"碳:0.8104530679119436\n",
"氢:0.6541821436278573\n",
"氮:-0.13529073464861613\n",
"硫:0.11133231819862932\n",
"氧:0.9365424234738452\n",
"碳化温度(℃):1.3646667632508422\n",
"升温速率(℃/min):-0.05147059728009279\n",
"保温时间(h):0.8081640623452375\n",
"KOH:0.8825591062288682\n",
"K2CO3:-0.46868652599186134\n"
]
}
],
"source": [
"coefficients = clf.coef_\n",
"key = ['煤种', '分析水Mad', '灰分', '挥发分', '碳', '氢', '氮', '硫', '氧', '碳化温度(℃)',\n",
" '升温速率(℃/min)', '保温时间(h)', 'KOH', 'K2CO3']\n",
"for index,i in enumerate(coefficients):\n",
" print(key[index] + ':' + str(i))"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "2f31713f",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.022346Z",
"start_time": "2023-09-01T08:11:08.900332Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[LightGBM] [Warning] Auto-choosing col-wise multi-threading, the overhead of testing was 0.000325 seconds.\n",
"You can set `force_col_wise=true` to remove the overhead.\n",
"[LightGBM] [Info] Total Bins 112\n",
"[LightGBM] [Info] Number of data points in the train set: 58, number of used features: 11\n",
"[LightGBM] [Info] Start training from score 1.226647\n",
"Training until validation scores don't improve for 10 rounds\n",
"[10]\ttraining's rmse: 0.638817\tvalid_1's rmse: 0.579195\n",
"[20]\ttraining's rmse: 0.62939\tvalid_1's rmse: 0.5711\n",
"[30]\ttraining's rmse: 0.621342\tvalid_1's rmse: 0.567154\n",
"[40]\ttraining's rmse: 0.614175\tvalid_1's rmse: 0.565478\n",
"[50]\ttraining's rmse: 0.607441\tvalid_1's rmse: 0.562633\n",
"[60]\ttraining's rmse: 0.601112\tvalid_1's rmse: 0.560704\n",
"[70]\ttraining's rmse: 0.595164\tvalid_1's rmse: 0.558691\n",
"[80]\ttraining's rmse: 0.589578\tvalid_1's rmse: 0.556304\n",
"[90]\ttraining's rmse: 0.584311\tvalid_1's rmse: 0.55425\n",
"[100]\ttraining's rmse: 0.579347\tvalid_1's rmse: 0.552013\n",
"[110]\ttraining's rmse: 0.574669\tvalid_1's rmse: 0.550285\n",
"[120]\ttraining's rmse: 0.570262\tvalid_1's rmse: 0.547892\n",
"[130]\ttraining's rmse: 0.566114\tvalid_1's rmse: 0.546906\n",
"[140]\ttraining's rmse: 0.562209\tvalid_1's rmse: 0.544828\n",
"[150]\ttraining's rmse: 0.558535\tvalid_1's rmse: 0.543634\n",
"[160]\ttraining's rmse: 0.555081\tvalid_1's rmse: 0.542251\n",
"[170]\ttraining's rmse: 0.551832\tvalid_1's rmse: 0.54127\n",
"[180]\ttraining's rmse: 0.54878\tvalid_1's rmse: 0.540094\n",
"[190]\ttraining's rmse: 0.545912\tvalid_1's rmse: 0.539304\n",
"[200]\ttraining's rmse: 0.543218\tvalid_1's rmse: 0.538589\n",
"Did not meet early stopping. Best iteration is:\n",
"[200]\ttraining's rmse: 0.543218\tvalid_1's rmse: 0.538589\n",
"Mean Squared Error: 0.29007798664843815\n",
"Root Mean Squared Error: 0.5385888846313468\n",
"Mean Absolute Error: 0.4479232290957567\n",
"Coefficient of Determination (R²): -0.026751034308880817\n"
]
}
],
"source": [
"import lightgbm as lgb\n",
"# 创建 LightGBM 数据集\n",
"train_data = lgb.Dataset(X_train, label=y_train)\n",
"test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)\n",
"\n",
"# 设置参数\n",
"params = {\n",
" 'objective': 'regression', # 回归问题\n",
" 'boosting_type': 'gbdt', # 使用梯度提升\n",
" 'metric': 'rmse', # 使用均方根误差作为评估指标\n",
" 'num_leaves': 2, # 每棵树的叶子节点数\n",
" 'learning_rate': 0.01, # 学习率\n",
"}\n",
"# 训练模型\n",
"#定义callback回调\n",
"callback=[lgb.early_stopping(stopping_rounds=10,verbose=True),\n",
" lgb.log_evaluation(period=10,show_stdv=True)]\n",
"# 训练 train\n",
"m1 = lgb.train(params,train_data,num_boost_round=200,\n",
" valid_sets=[train_data,test_data],callbacks=callback)\n",
"\n",
"# 进行预测\n",
"y_pred = m1.predict(X_test, num_iteration=m1.best_iteration)\n",
"get_acc(y_test,y_pred)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "1e6fb129",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.165998Z",
"start_time": "2023-09-01T08:11:09.022346Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1200x600 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHBCAYAAAD5IQp3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABI1klEQVR4nO3de3zO9f/H8ee1s7FZSJgxh7ac55AQo6RWKFKY43xzKpHOyrGvinRwJuRcvlER31IohygqOYyRqM2ci5bNxnZt1/v3h6/r5+oazRrX8nncb7frZp/D9blen5fr4rn353DZjDFGAAAAsAwvTxcAAACAa4sACAAAYDEEQAAAAIshAAIAAFgMARAAAMBiCIAAAAAWQwAEAACwGAIgAACAxRAAAQAALIYACAAXWb9+vWw2W66PUaNGebo8ACgQPp4uAAAKo/fee08REREu88qVK1dg29+xY4fWr1+vwYMHF9g2r4Z58+YpPDxcLVq08HQpAAoQARAAclG9enVFRUVdte3v2LFDEyZM+EcEwBYtWhAAgesMh4ABAAAshgAIAFdo+vTpqlq1qooWLaqmTZtq+/btLstXrVql+vXrKzAwUOHh4ZowYYJzWVxcnGw2m3r16qWDBw/men5heHi45s2b57LNFi1auKxzYTohIUFt27ZVSEiIy/q///67evbsqRtuuEGlS5dW//79lZ6e7lyelJQkm82mpKQkzZkzR7Vq1VLfvn2dyy/UtWHDBr300kvO6aSkJOc6J06cUOfOnVWyZEmVKFFCHTt21MmTJ932Y8yYMSpTpoxuuOEGDRw4UMYY5zrffPONGjVqpCJFiqhq1aqaNGnSFe1Hdna2nnnmGYWGhqpo0aKKjo5WfHy8298ZAFccAgaAKzB//nw98cQTGjdunOrWravx48frzjvv1IEDB1SyZEn98ssveuCBB9SjRw9NnDhRu3bt0uOPP6769eurWbNmGjVqlB5//HF98sknmjlzplasWCEpf+cX/vzzz7rjjjv08MMP6+WXX3ZZ1qFDB/3222969913de7cOQ0cOFDp6elauHChy3qvv/66Pv/8c/Xu3VsNGzZ0zv/+++8lSf369VP9+vWd4fDiOrt166ZDhw7p3XfflZeXl5588kk9//zzmj17tnOdCRMmKCAgQLNnz1Z8fLxefPFF3XPPPWrTpo127typli1bql27dhozZozi4+P19NNPKzg4WHFxcXnajylTpmjy5MmaOXOmQkNDNWnSJHXs2FE//vjjFfcTsBQDAHBat26dkeT2+P77740xxoSHh5tBgwY51//999+Nt7e3mTNnjjHGmP3795tZs2aZs2fPGmOMOX36tClbtqx57bXXXF5n7ty5pmLFirnWULFiRTN37lyXec2bNzcjR450mZZkli1b5vb89evXG0lm27ZtznkTJ040vr6+5ty5c8YYYxITE40kU7VqVXPy5MlL9uPPr3uxOXPmmJ07dzqnBwwYYKpVq+ayH2XLljVpaWnOedWrVzcvv/yyMcaYrl27moiICJOdne1cPnToUPPmm2/meT8GDRpkypcvb3Jycowxxhw7dsx88sknxuFwXHKfABjDCCAA5OL9999XZGSkczoyMlJpaWlKSkrSpEmT3A5V7t+/X5JUtWpVpaWlacSIEfrqq6+0fft2ZWdnKyMj42/V43A43Obde++9ateundv8C4dA69Wr57bs4MGDLlc3v/LKKypZsmS+anrwwQc1d+5cDRs2TFu2bNGpU6cUFhbmsk5cXJyKFSvmnL7xxhtlt9slSdu2bVPjxo3l7e3tXH7xSGZe9qN79+6aO3euatasqTvuuEPNmjVT+/btZbPZ8rVPgFUQAAEgF5GRkW5XAaempko6H1Jat27tsqx06dKSpOXLl6tDhw6KjY3VY489pttuu039+vX72/UcOnTIbd7Fh2z/zNvbW99//71bEKpQoUKet3E5aWlpqlu3roKDg9WjRw899dRT+umnn/Tqq6+6rFelSpVLbsNcdC7gBQcPHtSJEyecdf3VfjRo0ED79+/XqlWrtGnTJvXv31/jx4/X119/LR8f/osDLoWLQAAgj4KDg1WhQgWdOnVKUVFRzsc777yjTZs2STp/25Tbb79dCxcuVI8ePVSxYkUdPHjQbVsBAQHKzs7O9XV8fHxcRgy///57l4sv/krNmjWVk5Mjb29vZ43e3t564403lJKSckX7fKk6165dq8TERC1btkxPPfWUWrRooV9++cVtvYtH9/6sbt262rx5s3JycpzzRowYoUcffTTP+zFu3Dj99NNP6tGjh2bOnKkPPvhA3333nXbt2nVF+wlYDb8eAcAVGDlypB577DGVLVtWjRo10rJlyzRjxgx1795dklSqVClt2rRJK1eu1Llz5zRu3DglJSW5haj69evrxIkTmj17tm655RZ9/fXXeuaZZ+Tl5aU6depo0aJF6tmzpw4fPqy4uLgrOkx7xx13KDo6Wl26dNHo0aMVGBioF198UdnZ2SpTpswV7e9tt92mDz74QHfddZcyMzP1+++/KzY2VqVKlZJ0PvDeeeed+uijjzR16lSVLVs2z9t+9tln1bhxY3Xr1k19+/bV7t279f7772vy5Ml53o/9+/fr3Xff1csvv6wSJUpo7ty58vPzU/ny5a9oPwHL8fRJiABQmFy4CGT79u2XXGfy5MmmcuXKJiAgwNStW9d88sknzmXHjh0z9957rwkMDDRlypQxzz//vGnXrp1p3ry523Zmz55twsLCjI+Pj6lRo4bzQoYDBw6Yxo0bm2LFiplq1aqZZcuW5XoRyKUuzjDGmN9++81069bNFC9e3ISEhJiOHTuaw4cPO5dfuAgkMTHxsv04c+aM6dKliwkKCjJFixY1o0aNci4bPXq0uemmm0yRIkXMPffcY8aPH2+8vLzMzz//bIzJ28UsX331lWnYsKHx9/c3ERERZurUqVe0H6dPnzZ9+/Y15cqVM/7+/qZ27dpm+fLll90nAMbYjMnlJAwAAABctzgHEAAAwGIIgAAAABZDAAQAALAYAiAAAIDFEAABAAAshgAIAABgMdwIGm4cDoeOHj2qoKAgvk8TAIB/CGOM0tLSVK5cOXl5XX6MjwAIN0ePHnX7QncAAPDPcOjQob/8NhwCINwEBQVJkhITE1WiRAkPV1N42O12rV69Wnfffbd8fX09XU6hQE9yR1/c0RN39CR39MVdXnuSmpqqsLAw5//jl0MAhJsLh32DgoIUHBzs4WoKD7vdrsDAQAUHB/OP0v/Qk9zRF3f0xB09yR19cXelPcnL6VtcBAIAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACyGAAgAAGAxBEAAAACLIQACAABYDAEQAADAYgiAAAAAFkMABAAAsBgCIAAAgMUQAAEAACzGx9MFoPC6bcyXyvYp6ukyCg1/b6NxDaWao1YpM8fm6XIKBXqSO/rijp64oye5K0x9SRrb2qOvfzUxAniRnJwc58/Z2dn66aefPFgNAAD4p3j++efVtm1b5/SgQYNks9mcj6pVq3qwOneMAF5k+PDhOn36tKZOnaotW7booYceUlJSkgICAtzWPX36tEJCQpSSkqKQkBBlZmZq9uzZOnXqlH777TcdPnxYR48
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12,6))\n",
"lgb.plot_importance(m1, max_num_features=30)\n",
"plt.title(\"Featurertances\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "3b233966",
"metadata": {},
"source": [
"# 微孔体积cm3/g)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "18a0bc92",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.182701Z",
"start_time": "2023-09-01T08:11:09.168020Z"
}
},
"outputs": [],
"source": [
"X = data_3[['煤种', '分析水Mad', '灰分', '挥发分', '碳', '氢', '氮', '硫', '氧', '碳化温度(℃)',\n",
" '升温速率(℃/min)', '保温时间(h)', 'KOH', 'K2CO3']]\n",
"y = data_3['微孔体积cm3/g)']\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.15, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "3aedb95e",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.200357Z",
"start_time": "2023-09-01T08:11:09.183758Z"
}
},
"outputs": [],
"source": [
"from sklearn.linear_model import LinearRegression\n",
"clf = LinearRegression()\n",
"clf.fit(X_train, y_train)\n",
"test_pred = clf.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "f2c29773",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.217024Z",
"start_time": "2023-09-01T08:11:09.202316Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean Squared Error: 0.058644300055131\n",
"Root Mean Squared Error: 0.24216585237215218\n",
"Mean Absolute Error: 0.1869146665913017\n",
"Coefficient of Determination (R²): 0.6014531524700744\n"
]
}
],
"source": [
"get_acc(y_test,test_pred)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "f2328a94",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.234687Z",
"start_time": "2023-09-01T08:11:09.218565Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"煤种:0.038009384028790595\n",
"分析水Mad:0.5270239540332698\n",
"灰分:-0.2935950026944355\n",
"挥发分:-0.47505236069221957\n",
"碳:0.7925565775686018\n",
"氢:1.0226097972268275\n",
"氮:-0.2164263814475165\n",
"硫:-0.187314647621951\n",
"氧:0.4324238526226014\n",
"碳化温度(℃):0.5946628823386292\n",
"升温速率(℃/min):-0.033400473160046816\n",
"保温时间(h):0.27469886155258133\n",
"KOH:0.6542891650386291\n",
"K2CO3:-0.02072386352158367\n"
]
}
],
"source": [
"coefficients = clf.coef_\n",
"key = ['煤种', '分析水Mad', '灰分', '挥发分', '碳', '氢', '氮', '硫', '氧', '碳化温度(℃)',\n",
" '升温速率(℃/min)', '保温时间(h)', 'KOH', 'K2CO3']\n",
"for index,i in enumerate(coefficients):\n",
" print(key[index] + ':' + str(i))"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "f3ca3375",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.285398Z",
"start_time": "2023-09-01T08:11:09.235796Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[LightGBM] [Warning] Auto-choosing col-wise multi-threading, the overhead of testing was 0.000143 seconds.\n",
"You can set `force_col_wise=true` to remove the overhead.\n",
"[LightGBM] [Info] Total Bins 120\n",
"[LightGBM] [Info] Number of data points in the train set: 57, number of used features: 11\n",
"[LightGBM] [Info] Start training from score 0.730716\n",
"Training until validation scores don't improve for 10 rounds\n",
"[10]\ttraining's rmse: 0.396872\tvalid_1's rmse: 0.372902\n",
"[20]\ttraining's rmse: 0.389406\tvalid_1's rmse: 0.360807\n",
"[30]\ttraining's rmse: 0.383114\tvalid_1's rmse: 0.351237\n",
"[40]\ttraining's rmse: 0.377736\tvalid_1's rmse: 0.342674\n",
"[50]\ttraining's rmse: 0.373147\tvalid_1's rmse: 0.335013\n",
"[60]\ttraining's rmse: 0.369238\tvalid_1's rmse: 0.32816\n",
"[70]\ttraining's rmse: 0.365907\tvalid_1's rmse: 0.322454\n",
"[80]\ttraining's rmse: 0.363019\tvalid_1's rmse: 0.317971\n",
"[90]\ttraining's rmse: 0.360347\tvalid_1's rmse: 0.314376\n",
"[100]\ttraining's rmse: 0.357855\tvalid_1's rmse: 0.31094\n",
"[110]\ttraining's rmse: 0.355528\tvalid_1's rmse: 0.30764\n",
"[120]\ttraining's rmse: 0.353358\tvalid_1's rmse: 0.304501\n",
"[130]\ttraining's rmse: 0.351336\tvalid_1's rmse: 0.301502\n",
"[140]\ttraining's rmse: 0.349451\tvalid_1's rmse: 0.298626\n",
"[150]\ttraining's rmse: 0.347695\tvalid_1's rmse: 0.295886\n",
"[160]\ttraining's rmse: 0.34606\tvalid_1's rmse: 0.293263\n",
"[170]\ttraining's rmse: 0.344537\tvalid_1's rmse: 0.29076\n",
"[180]\ttraining's rmse: 0.34312\tvalid_1's rmse: 0.288368\n",
"[190]\ttraining's rmse: 0.341801\tvalid_1's rmse: 0.286156\n",
"[200]\ttraining's rmse: 0.340544\tvalid_1's rmse: 0.283861\n",
"Did not meet early stopping. Best iteration is:\n",
"[200]\ttraining's rmse: 0.340544\tvalid_1's rmse: 0.283861\n",
"Mean Squared Error: 0.0805769145909526\n",
"Root Mean Squared Error: 0.2838607309772745\n",
"Mean Absolute Error: 0.2001926545731756\n",
"Coefficient of Determination (R²): 0.4523990351368772\n"
]
}
],
"source": [
"import lightgbm as lgb\n",
"# 创建 LightGBM 数据集\n",
"train_data = lgb.Dataset(X_train, label=y_train)\n",
"test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)\n",
"\n",
"# 设置参数\n",
"params = {\n",
" 'objective': 'regression', # 回归问题\n",
" 'boosting_type': 'gbdt', # 使用梯度提升\n",
" 'metric': 'rmse', # 使用均方根误差作为评估指标\n",
" 'num_leaves': 2, # 每棵树的叶子节点数\n",
" 'learning_rate': 0.01, # 学习率\n",
"}\n",
"# 训练模型\n",
"#定义callback回调\n",
"callback=[lgb.early_stopping(stopping_rounds=10,verbose=True),\n",
" lgb.log_evaluation(period=10,show_stdv=True)]\n",
"# 训练 train\n",
"m1 = lgb.train(params,train_data,num_boost_round=200,\n",
" valid_sets=[train_data,test_data],callbacks=callback)\n",
"\n",
"# 进行预测\n",
"y_pred = m1.predict(X_test, num_iteration=m1.best_iteration)\n",
"get_acc(y_test,y_pred)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "40493a15",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.416996Z",
"start_time": "2023-09-01T08:11:09.287662Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1200x600 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12,6))\n",
"lgb.plot_importance(m1, max_num_features=30)\n",
"plt.title(\"Featurertances\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "f998e3a5",
"metadata": {},
"source": [
"# 介孔体积cm3/g)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "c7f2f1c3",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.432636Z",
"start_time": "2023-09-01T08:11:09.418533Z"
}
},
"outputs": [],
"source": [
"X = data_4[['煤种', '分析水Mad', '灰分', '挥发分', '碳', '氢', '氮', '硫', '氧', '碳化温度(℃)',\n",
" '升温速率(℃/min)', '保温时间(h)', 'KOH', 'K2CO3']]\n",
"y = data_4['介孔体积cm3/g)']\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.15, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "45435628",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.450578Z",
"start_time": "2023-09-01T08:11:09.434897Z"
}
},
"outputs": [],
"source": [
"from sklearn.linear_model import LinearRegression\n",
"clf = LinearRegression()\n",
"clf.fit(X_train, y_train)\n",
"test_pred = clf.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "84bdf4b6",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.466592Z",
"start_time": "2023-09-01T08:11:09.451556Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean Squared Error: 0.633360271830096\n",
"Root Mean Squared Error: 0.7958393505162308\n",
"Mean Absolute Error: 0.5042366422580364\n",
"Coefficient of Determination (R²): -1.5081213582093067\n"
]
}
],
"source": [
"get_acc(y_test,test_pred)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "7aa248e2",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.485747Z",
"start_time": "2023-09-01T08:11:09.467585Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"煤种:-0.5607084300067899\n",
"分析水Mad:0.4984214658264311\n",
"灰分:-0.14117597792825254\n",
"挥发分:0.7366654205853167\n",
"碳:-8.993414025590598\n",
"氢:-3.3280548911300323\n",
"氮:-0.7426776489865452\n",
"硫:-0.30171686040116197\n",
"氧:-4.8875223095614375\n",
"碳化温度(℃):0.6126040745268642\n",
"升温速率(℃/min):-0.07211666342106407\n",
"保温时间(h):0.23227893599959817\n",
"KOH:0.32346263890721333\n",
"K2CO3:-0.30227894335703315\n"
]
}
],
"source": [
"coefficients = clf.coef_\n",
"key = ['煤种', '分析水Mad', '灰分', '挥发分', '碳', '氢', '氮', '硫', '氧', '碳化温度(℃)',\n",
" '升温速率(℃/min)', '保温时间(h)', 'KOH', 'K2CO3']\n",
"for index,i in enumerate(coefficients):\n",
" print(key[index] + ':' + str(i))"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "aedb406a",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.550839Z",
"start_time": "2023-09-01T08:11:09.487329Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[LightGBM] [Warning] Auto-choosing col-wise multi-threading, the overhead of testing was 0.000148 seconds.\n",
"You can set `force_col_wise=true` to remove the overhead.\n",
"[LightGBM] [Info] Total Bins 74\n",
"[LightGBM] [Info] Number of data points in the train set: 48, number of used features: 9\n",
"[LightGBM] [Info] Start training from score 0.524919\n",
"Training until validation scores don't improve for 10 rounds\n",
"[10]\ttraining's rmse: 0.428728\tvalid_1's rmse: 0.487862\n",
"[20]\ttraining's rmse: 0.417581\tvalid_1's rmse: 0.477524\n",
"[30]\ttraining's rmse: 0.407814\tvalid_1's rmse: 0.470645\n",
"[40]\ttraining's rmse: 0.399242\tvalid_1's rmse: 0.464887\n",
"[50]\ttraining's rmse: 0.391738\tvalid_1's rmse: 0.460082\n",
"[60]\ttraining's rmse: 0.385183\tvalid_1's rmse: 0.456108\n",
"[70]\ttraining's rmse: 0.379467\tvalid_1's rmse: 0.452842\n",
"[80]\ttraining's rmse: 0.374493\tvalid_1's rmse: 0.450179\n",
"[90]\ttraining's rmse: 0.370172\tvalid_1's rmse: 0.448034\n",
"[100]\ttraining's rmse: 0.366423\tvalid_1's rmse: 0.446322\n",
"[110]\ttraining's rmse: 0.363176\tvalid_1's rmse: 0.444977\n",
"[120]\ttraining's rmse: 0.360366\tvalid_1's rmse: 0.443942\n",
"[130]\ttraining's rmse: 0.357934\tvalid_1's rmse: 0.443339\n",
"[140]\ttraining's rmse: 0.35582\tvalid_1's rmse: 0.443088\n",
"[150]\ttraining's rmse: 0.353985\tvalid_1's rmse: 0.44256\n",
"[160]\ttraining's rmse: 0.352391\tvalid_1's rmse: 0.442537\n",
"[170]\ttraining's rmse: 0.350995\tvalid_1's rmse: 0.442414\n",
"Early stopping, best iteration is:\n",
"[167]\ttraining's rmse: 0.351395\tvalid_1's rmse: 0.442179\n",
"Mean Squared Error: 0.19552236767207556\n",
"Root Mean Squared Error: 0.44217911265919785\n",
"Mean Absolute Error: 0.30130148562563\n",
"Coefficient of Determination (R²): 0.22572689166468962\n"
]
}
],
"source": [
"import lightgbm as lgb\n",
"# 创建 LightGBM 数据集\n",
"train_data = lgb.Dataset(X_train, label=y_train)\n",
"test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)\n",
"\n",
"# 设置参数\n",
"params = {\n",
" 'objective': 'regression', # 回归问题\n",
" 'boosting_type': 'gbdt', # 使用梯度提升\n",
" 'metric': 'rmse', # 使用均方根误差作为评估指标\n",
" 'num_leaves': 2, # 每棵树的叶子节点数\n",
" 'learning_rate': 0.01, # 学习率\n",
"}\n",
"# 训练模型\n",
"#定义callback回调\n",
"callback=[lgb.early_stopping(stopping_rounds=10,verbose=True),\n",
" lgb.log_evaluation(period=10,show_stdv=True)]\n",
"# 训练 train\n",
"m1 = lgb.train(params,train_data,num_boost_round=200,\n",
" valid_sets=[train_data,test_data],callbacks=callback)\n",
"\n",
"# 进行预测\n",
"y_pred = m1.predict(X_test, num_iteration=m1.best_iteration)\n",
"get_acc(y_test,y_pred)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "99193c83",
"metadata": {
"ExecuteTime": {
"end_time": "2023-09-01T08:11:09.666009Z",
"start_time": "2023-09-01T08:11:09.553237Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1200x600 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12,6))\n",
"lgb.plot_importance(m1, max_num_features=30)\n",
"plt.title(\"Featurertances\")\n",
"plt.show()"
]
}
],
"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.8.16"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
"width": "374.375px"
},
"toc_section_display": true,
"toc_window_display": true
}
},
"nbformat": 4,
"nbformat_minor": 5
}