MATLAB学习笔记_Day07神经网络、决策树和随机森林

学习视频:【零基础教程】老哥:数学建模算法、编程、写作和获奖指南全流程培训!


神经网络的特点是非线性拟合能力超强,如果你的问题非常非线性,而且有足够的数据,可以考虑一下神经网络。

1. 神经网络Matlab编程讲解

1.1 BP神经网络

在这里插入图片描述

防止陷入局部最优解。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

简单的网络:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

哪一个进度条到头了,就代表着依据这一项准则,神经网络的训练停止。

关于P,T的维度说明:
在这里插入图片描述
对100件商品,从质量,价格,美观性来评价。P[3100] (100个样本,3个参数(指标))
对每一件商品,买还是不买,两种情况。(0,1表示)T[2
100]

实战一下:65年人口数据为例。

数据处理:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据分析:

ploterrcorr:

在这里插入图片描述
如果是一个好的预测,那么自相关性图中除了0阶自相关外,其他的自相关系数系数都不应该超过上下置信区间。
在这里插入图片描述

自相关性图中除了0阶自相关外,其他的自相关系数系数都不应该超过上下置信区间。

plotresponse:
在这里插入图片描述
预测值:
在这里插入图片描述

1.2 RBF神经网络

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

决定系数(coefficient ofdetermination),反应了y的波动有多少百分比能被x的波动所描述

有的教材上翻译为判定系数,也称为拟合优度。

拟合优度越大,自变量对因变量的解释程度越高,自变量引起的变动占总变动的百分比高。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
数据量太少了,每次的值都会有波动。

1.3 GRNN神经网络

在这里插入图片描述

其他的和上面两个网络都类似了。

2. 决策树和随机森林

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在执行代码前:

pydotplus.graphviz.InvocationException: GraphViz’s executables not found win10解决办法

import pandas as pd
import sklearn as sklearn
from sklearn.feature_extraction import DictVectorizer
from sklearn import tree
import pydotplus
from six import StringIO
import joblib
import numpy
from sklearn.preprocessing import StandardScaler


import os
os.environ["PATH"] += os.pathsep + 'R:/Program Files (x86)/Graphviz2.38/bin/'
#后面的地址为自己安装graphviz的bin文件的地址

# pandas 读取 csv 文件,header = None 表示不将首行作为列
data = pd.read_csv('data/test.csv', header=None)
data2 = pd.read_csv('data/testtest.csv', header=None)
# 指定列
data.columns = ['Diet Habits', 'viviparous animal', 'Aquatic animals', 'Can fly','mammal']
data2.columns = ['Diet Habits', 'viviparous animal', 'Aquatic animals', 'Can fly']
# sparse=False意思是不产生稀疏矩阵
# 标准化数据,保证每个维度的特征数据方差为1,均值为0,使得预测结果不会被某些维度过大的特征值而主导
ss = StandardScaler()
# 先用 pandas 对每行生成字典,然后进行向量化
feature = data[['Diet Habits', 'viviparous animal', 'Aquatic animals', 'Can fly']]
feature2 = data2[['Diet Habits', 'viviparous animal', 'Aquatic animals', 'Can fly']]
X_train = ss.fit_transform(feature)
X_test = ss.transform(feature2)
# 打印各个变量
print('show feature\n', feature)
print('show vector\n', X_train)

#print('show vector name\n', vec.get_feature_names())
#print('show vector name\n', vec.vocabulary_)
Y_train = data['mammal']
#print('show vector\n', Y_train)
clf = tree.DecisionTreeClassifier(criterion='entropy')#关键代码
clf.fit(X_train, Y_train)#关键代码
joblib.dump(clf, "train_model.m")
#print(X_test)
#读取模型进行预测
clf2 = joblib.load("train_model.m")
RESULT=clf2.predict(X_test)
print("result=",RESULT)
#输出结果
dot_data = StringIO()
tree.export_graphviz(clf,out_file=dot_data)
graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("test.pdf")

在这里插入图片描述

classificationLearner 

在这里插入图片描述

3. 随机森林

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值