machine-learning - 如何从 MLP 和其他模型中获取系数
问题描述
我对多层感知器(MLP)中的系数有疑问。
我有一个示例代码和数据如下:
**T,x1,x2,x3,x4,x5,x6** 2.1186,-0.5449,-0.6028,-0.5626,-0.4564,-0.4607,-0.4648 -0.4109,-0.5015,-0.5595,-0.5191,-0.5360,-0.5033,-0.5346 -0.6174,-0.5775,-0.6028,-0.5626,-0.2720,-0.2601,-0.2742 2.0325,0.0740,0.0467,0.0887,-0.1686,-0.1603,-0.1704 0.2086,1.0944,1.0647,1.1088,2.0132,2.0126,2.0116 0.7248,-0.5720,-0.6136,-0.5897,-0.3825,-0.4096,-0.3851 0.5183,-0.4580,-0.5162,-0.4757,-0.5871,-0.6311,-0.6243 -0.6518,-0.4472,-0.4729,-0.4323,-0.3453,-0.3261,-0.3267 1.1205,1.2358,1.1724,1.2177,1.3076,1.3099,1.3092 -0.5658,-0.0897,-0.1465,-0.1075,-0.3556,-0.3419,-0.3647 1.3442,-0.3603,-0.3430,-0.3455,0.1415,0.1456,0.1473 1.3959,-0.1106,-0.0832,-0.1284,-0.4933,-0.5033,-0.4748 -1.0992,-0.2300,-0.2564,-0.2152,0.0435,0.0495,0.0474 -0.5658,-0.5449,-0.5595,-0.5626,-0.5700,-0.5459,-0.5346 0.0881,-0.3712,-0.4296,-0.3889,0.2139,0.2140,0.2113 1.6712,-0.0237,-0.0399,-0.0415,0.9342,0.9352,0.9316 -0.8067,-0.3510,-0.4049,-0.3687,-0.3675,-0.3567,-0.3763 -0.1356,3.2446,3.2939,3.2584,1.6339,1.6331,1.6319 0.1914,-0.2528,-0.2759,-0.2380,-0.5104,-0.5992,-0.5794 -1.0304,1.5722,1.5408,1.5865,-0.2839,-0.2888,-0.2848 -0.6174,-0.5883,-0.6028,-0.6060,-0.4763,-0.5033,-0.5047 -0.0323,-0.2409,-0.2564,-0.2586,-0.1259,-0.1256,-0.1327 0.1741,-0.5594,-0.5306,-0.5445,-0.4933,-0.4607,-0.5047 -0.1700,-0.4472,-0.4296,-0.4323,-0.3502,-0.3486,-0.3505
import pandas as pd
from sklearn import linear_model
from sklearn.metrics import mean_absolute_error
from sklearn.neural_network import MLPRegressor
def demo():
df = pd.read_csv('sample.csv')
df_train = df.head(17)
x_train = df_train[['x1', 'x2', 'x3', 'x4', 'x5', 'x6']].values
y_train = df_train['T'].values
df_test = df.tail(7)
x_test = df_test[['x1', 'x2', 'x3', 'x4', 'x5', 'x6']].values
y_test = df_test['T']
linear_regr = linear_model.LinearRegression(fit_intercept=False)
linear_regr.fit(x_train, y_train)
y_pred_mlr = linear_regr.predict(x_test)
regrMLP = MLPRegressor(hidden_layer_sizes=(9, 3), activation='relu', solver='adam', alpha=0.01)
regrMLP.fit(x_train, y_train)
y_pred_mlp = regrMLP.predict(x_test)
print(y_pred_mlr)
print(y_pred_mlp)
print('MAE MLR: %.4f' % mean_absolute_error(y_test, y_pred_mlr))
print('MAE MLP: %.4f' % mean_absolute_error(y_test, y_pred_mlp))
print("Coefficient MLR: ", linear_regr.coef_)
print("Coefficient: ", 'HOW TO GET COEFFICIENT LIKE MLR???')
if __name__ == '__main__'
demo()
MLR 模型 Y = β0+ β1X1+..+ βnXn我们可以使用 coef_ 属性确定 βi。
但是,对于 MLP,我不知道如何得到它
请解释并帮助我这个案例和另一个模型,如 GRNN 或 bagging-and-random-forest。
解决方案
推荐阅读
- powershell - 在 Powershell 6.0 中为变量设置默认值的优雅方式?
- google-cloud-platform - 如何通过覆盖 Cloud Dataproc 上的 log4j.properties 文件来限制 pyspark 中的错误?
- swift - UITableView 后面的 MKMapView
- python - 克服python中的opencv CV_IO_MAX_IMAGE_PIXELS限制
- php - 如何在 laravel 5.8 中将变量传递给路由?
- python-3.x - 在 MatplotLib Python 中更改网格单元格大小
- ms-access - 如何为 64 位 office 重新编译 32 位 MS Access 文件
- javascript - 使用 Open Weather API 时如何利用存储在变量中的国家代码?
- express - ExpressJs 服务器使用 axios 在删除请求时从 VueJS 接收空请求对象,但 Postman 可以工作
- docusignapi - SOAP API - RequestRecipientToken 在生产中无法正常工作,错误 113。其他服务调用有效