【sklearn学习】多层感知机MLP

 多层感知机可用于解决分类和回归问题

导入常用的包和数据

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
from sklearn.neural_network import MLPRegressor
from sklearn.metrics import accuracy_score
from sklearn.metrics import mean_absolute_error, mean_squared_error
from sklearn.datasets import load_breast_cancer, load_wine
from sklearn.datasets import load_boston
import warnings
warnings.simplefilter("ignore")

sklearn.neural_network.MLPClassifier

class sklearn.neural_network.MLPClassifier(hidden_layer_sizes=(100,)activation='relu'*solver='adam'alpha=0.0001batch_size='auto'learning_rate='constant'learning_rate_init=0.001power_t=0.5max_iter=200shuffle=Truerandom_state=Nonetol=0.0001verbose=Falsewarm_start=Falsemomentum=0.9nesterovs_momentum=Trueearly_stopping=Falsevalidation_fraction=0.1beta_1=0.9beta_2=0.999epsilon=1e-08n_iter_no_change=10max_fun=15000)

多层感知机MLP解决分类问题

mlpc = MLPClassifier()
mlpc.fit(X_train, y_train['LABEL'])
train_score = mlpc.score(X_train, y_train['LABEL'])
test_score = mlpc.score(X_test, y_test['LABEL'])
print('train_score',train_score)
print('test_score',test_score)
y_pred = mlpc.predict(X_test)
acc_score = accuracy_score(y_pred, y_test)
print('mse_score',acc_score)

 

 

sklearn.neural_network.MLPRegressor

class sklearn.neural_network.MLPRegressor(hidden_layer_sizes=(100,)activation='relu'*solver='adam'alpha=0.0001batch_size='auto'learning_rate='constant'learning_rate_init=0.001power_t=0.5max_iter=200shuffle=Truerandom_state=Nonetol=0.0001verbose=Falsewarm_start=Falsemomentum=0.9nesterovs_momentum=Trueearly_stopping=Falsevalidation_fraction=0.1beta_1=0.9beta_2=0.999epsilon=1e-08n_iter_no_change=10max_fun=15000)

多层感知机解决回归问题 

boston = load_boston()
df_data = pd.DataFrame(boston.data)
df_data.columns = boston.feature_names
df_target = pd.DataFrame(boston.target)
df_target.columns = ['LABEL']
df = pd.concat([df_data, df_target], axis=1)
from sklearn.neural_network import MLPRegressor
mlp_model = MLPRegressor()
mlp_model.fit(X_train, y_train)
train_score = mlp_model.score(X_train, y_train['LABEL'])
test_score = mlp_model.score(X_test, y_test['LABEL'])
print('train_score',train_score)
print('test_score',test_score)
y_pred = mlp_model.predict(X_test)
mae = mean_absolute_error(y_pred, y_test)
mse = mean_squared_error(y_pred, y_test)
print('mae_score',mae)
print('mse_score',mse)

回归预测结果可视化 

plt.figure(figsize=(20,5),dpi=80)

x = np.arange(0,50,1)
y = y_test[0:50]
z = y_pred[0:50]
plt.scatter(x, y, s=20, color='blue', label='y_test')
plt.scatter(x, z, s=20, color='red', label='y_pred')

# 添加描述信息
plt.xlabel('index')
plt.ylabel('value')
plt.title('y_test and y_pred')
plt.legend(loc='upper left')
plt.show()

 

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sklearn0.19中文文档 PDF格式高清。 .1. 广义线性模型 1.1.1. 普通最小二乘法 1.1.1.1. 普通最小二乘法复杂度 1.1.2. 岭回归 1.1.2.1. 岭回归的复杂度 1.1.2.2. 设置正则化参数:广义交叉验证 1.1.3. Lasso 1.1.3.1. 设置正则化参数 1.1.3.1.1. 使用交叉验证 1.1.3.1.2. 基于信息标准的模型选择 1.1.3.1.3. 与 SVM 的正则化参数的比较 1.1.4. 多任务 Lasso 1.1.5. 弹性网络 1.1.6. 多任务弹性网络 1.1.7. 最小角回归 1.1.8. LARS Lasso 1.1.8.1. 数学表达式 1.1.9. 正交匹配追踪法(OMP) 1.1.10. 贝叶斯回归 1.1.10.1. 贝叶斯岭回归 1.1.10.2. 主动相关决策理论 - ARD 1.1.11. logistic 回归 1.1.12. 随机梯度下降, SGD 1.1.13. Perceptron(感知器) 1.1.14. Passive Aggressive Algorithms(被动攻击算法) 1.1.15. 稳健回归(Robustness regression): 处理离群点 (outliers)和模型错误 1.1.15.1. 各种使用场景与相关概念 1.1.15.2. RANSAC: 随机抽样一致性算法(RANdom SAmple Consensus) 1.1.15.2.1. 算法细节 1.1.15.3. Theil-Sen 预估器: 广义中值估计 1.1.15.3.1. 算法理论细节 1.1.15.4. Huber 回归 1.1.15.5. 注意 1.1.16. 多项式回归:用基函数展开线性模型 1.2. 线性和二次判别分析 1.2.1. 使用线性判别分析来降维 1.2.2. LDA 和 QDA 分类器的数学公式 1.2.3. LDA 的降维数学公式 1.2.4. Shrinkage(收缩) 1.2.5. 预估算法 1.3. 内核岭回归 1.4. 支持向量机 1.4.1. 分类 1.4.1.1. 多元分类 1.4.1.2. 得分和概率 1.4.1.3. 非均衡问题 1.4.2. 回归 1.4.3. 密度估计, 异常(novelty)检测 1.4.4. 复杂度 1.4.5. 使用诀窍 1.4.6. 核函数 1.4.6.1. 自定义核 1.4.6.1.1. 使用 python 函数作为内核 1.4.6.1.2. 使用 Gram 矩阵 1.4.6.1.3. RBF 内核参数 1.4.7. 数学公式 1.4.7.1. SVC 1.4.7.2. NuSVC 1.4.7.3. SVR 1.4.8. 实现细节 1.5. 随机梯度下降 1.5.1. 分类 1.5.2. 回归 1.5.3. 稀疏数据的随机梯度下降 1.5.4. 复杂度 1.5.5. 实用小贴士 1.5.6. 数学描述 1.5.6.1. SGD 1.5.7. 实现细节 1.6. 最近邻 1.6.1. 无监督最近邻 1.6.1.1. 找到最近邻 1.6.1.2. KDTree 和 BallTree 类 1.6.2. 最近邻分类 1.6.3. 最近邻回归 1.6.4. 最近邻算法 1.6.4.1. 暴力计算 1.6.4.2. K-D 树 1.6.4.3. Ball 树 1.6.4.4. 最近邻算法的选择 1.6.4.5. leaf_size 的影响 1.6.5. 最近质心分类 1.6.5.1. 最近缩小质心 1.7. 高斯过程 1.7.1. 高斯过程回归(GPR) 1.7.2. GPR 示例 1.7.2.1. 具有噪声级的 GPR 估计 1.7.2.2. GPR 和内核岭回归(Kernel Ridge Regression)的比 较 1.7.2.3. Mauna Loa CO2 数据中的 GRR 1.7.3. 高斯过程分类(GPC) 1.7.4. GPC 示例 1.7.4.1. GPC 概率预测 1.7.4.2. GPC 在 XOR 数据集上的举例说明 1.7.4.3. iris 数据集上的高斯过程分类(GPC) 1.7.5. 高斯过程内核 1.7.5.1. 高斯过程内核 API 1.7.5.2. 基础内核 1.7.5.3. 内核操作 1.7.5.4. 径向基函数内核 1.7.5.5. Matérn 内核 1.7.5.6. 有理二次内核 1.7.5.7. 正弦平方内核 1.7.5.8. 点乘内核 1.7.5.9. 参考文献 1.7.6. 传统高斯过程 1.7.6.1. 回归实例介绍 1.7.6.2. 噪声数据拟合 1.7.6.3. 数学形式 1.7.6.3.1. 初始假设 1.7.6.3.2

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值