mirror of
https://github.com/NanjingForestryUniversity/SCNet.git
synced 2025-11-08 22:34:02 +00:00
153 lines
3.8 KiB
Plaintext
153 lines
3.8 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"collapsed": true,
|
|
"pycharm": {
|
|
"name": "#%% md\n"
|
|
}
|
|
},
|
|
"source": [
|
|
"# Model comparison"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"collapsed": false,
|
|
"pycharm": {
|
|
"name": "#%% md\n"
|
|
}
|
|
},
|
|
"source": [
|
|
"## PLS"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 55,
|
|
"metadata": {
|
|
"collapsed": false,
|
|
"pycharm": {
|
|
"name": "#%%\n"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sklearn.neural_network import MLPRegressor\n",
|
|
"from sklearn.svm import SVR\n",
|
|
"import numpy as np\n",
|
|
"from scipy.io import loadmat\n",
|
|
"from sklearn.cross_decomposition import PLSRegression\n",
|
|
"from sklearn.metrics import mean_squared_error, r2_score\n",
|
|
"\n",
|
|
"data = loadmat('./dataset/mango/mango_dm_split.mat')\n",
|
|
"min_value, max_value = data['min_y'][-1][-1], data['max_y'][-1][-1]\n",
|
|
"retransform = lambda x: x * (max_value - min_value)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 56,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"shape of data:\n",
|
|
"x_train: (8183, 102), y_train: (8183, 1),\n",
|
|
"x_test: (3508, 102), y_test: (3508, 1)\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"x_train, y_train, x_test, y_test = data['x_train'], data['y_train'], data['x_test'], data['y_test']\n",
|
|
"print(f\"shape of data:\\n\"\n",
|
|
" f\"x_train: {x_train.shape}, y_train: {y_train.shape},\\n\"\n",
|
|
" f\"x_test: {x_test.shape}, y_test: {y_test.shape}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 57,
|
|
"metadata": {
|
|
"collapsed": false,
|
|
"pycharm": {
|
|
"name": "#%%\n"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"PLS RMSE: 0.05722520296881164\n",
|
|
"PLS Dry matter content error 0.8648183977750965\n",
|
|
"PLS R^2: 0.8793937498230511\n",
|
|
"SVR RMSE: 0.1139650997574326\n",
|
|
"SVR Dry matter content error 1.7223025845485895\n",
|
|
"SVR R^2: 0.5216575965112935\n",
|
|
"MLP RMSE: 0.15508626630172465\n",
|
|
"MLP Dry matter content error 2.343748023280531\n",
|
|
"MLP R^2: 0.11418748397100065\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"pls = PLSRegression(n_components=90)\n",
|
|
"svr = SVR(kernel=\"rbf\", degree=30, gamma=\"scale\")\n",
|
|
"mlp = MLPRegressor(hidden_layer_sizes=(60, 50, ))\n",
|
|
"pls = pls.fit(x_train, y_train.ravel())\n",
|
|
"svr = svr.fit(x_train, y_train.ravel())\n",
|
|
"mlp = mlp.fit(x_train, y_train.ravel())\n",
|
|
"\n",
|
|
"models = {'PLS': pls, \"SVR\": svr, \"MLP\": mlp}\n",
|
|
"results = {model_name: model.predict(x_test).reshape((-1, )) for model_name, model in models.items()}\n",
|
|
"for model_name, model_result in results.items():\n",
|
|
" rmse = np.sqrt(mean_squared_error(y_test, model_result))\n",
|
|
" print(model_name, \"RMSE: \", rmse)\n",
|
|
" print(model_name, \"Dry matter content error\", retransform(rmse))\n",
|
|
" print(model_name, \"R^2: \", r2_score(y_test, model_result))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": false,
|
|
"pycharm": {
|
|
"name": "#%%\n"
|
|
}
|
|
},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"interpreter": {
|
|
"hash": "7f619fc91ee8bdab81d49e7c14228037474662e3f2d607687ae505108922fa06"
|
|
},
|
|
"kernelspec": {
|
|
"display_name": "Python 3.9.7 ('base')",
|
|
"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.9.7"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0
|
|
}
|