吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1840|回复: 0
收起左侧

[Python 原创] python-论文学习-机器学习(MART、NN)将散点绘制成三维曲面

[复制链接]
知意执意 发表于 2020-2-15 14:04
这个python程序可以将散点数据,通过机器学习绘制出三维曲面,大家可能会用的到。
效果图:

NN模型


MART模型



目录结构:




使用说明:一、Data.csv 文件的四列数据分别是探索式创新、利用式创新、企业成长绩效、企业财务绩效二、NN模型创建参数max_iter=400是迭代次数,默认是200,不同迭代次数得到的最优回归曲面不同。MART模型创建参数max_depth=4是树的深度,数值越大,图形台阶越多。其中 探索式创新、利用式创新为自变量,企业成长绩效、企业财务绩效是因变量四个py文件分别是两种模型对财务绩效和成长绩效的分析
大家用的时候先安装库,将Data.csv中四列数据换成自己的,再将程序中xyz坐标轴标签、区间修改

[Python] 纯文本查看 复制代码
from sklearn.neural_network import MLPRegressor
import pandas as pd
# 定义线性回归模型
import numpy as np
from pylab import mpl
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体 
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

#文本读取与处理
def readfile(path):

    X = []
    che = []
    cai = []
    for line in open(path,'r', encoding='UTF-8'):
        #print(line)
        xx,yy,chee,caii = line.split(',',3)
        X.append([float(xx),float(yy)])
        che.append(float(chee))
        cai.append(float(caii))
    #返回数据集列表
    return(X,che)


if __name__=='__main__':
    print('读取数据...')
    X,y = readfile('data.csv')
    print('创建神经网络模型')
    clf = MLPRegressor(max_iter=400)
    print('训练模型...')
    clf.fit(X, y)

    #向三维图中添加散点
    print('生成散点图...')
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    for i in range(len(X)):
        ax.scatter(X[i][0], X[i][1],y[i], c='black', marker='o', s=4)

    #向三维图中添加影响曲面
    print('生成曲面...')
    ps = np.arange(1, 7, 0.25)
    py = np.arange(1, 7, 0.25)
    XX, YY = np.meshgrid(ps, py)
    R = np.random.randint(2,size=(24,24)).astype(float)
    for i in range(len(XX)):
        for j in range(len(XX[0])):
            R[i][j]= round(clf.predict([[XX[i][j],YY[i][j]]])[0],1)
    ax.plot_surface(XX, YY, R,rstride=1, cstride=1, cmap='Greys')#'rainbow')
    

    # 设置图形坐标范围
    ax.set_xlim3d(1, 7)
    ax.set_ylim3d(1, 7)
    ax.set_zlim3d(1, 7)
    # 设置图形轴标签
    ax.set_xlabel('探索式创新')
    ax.set_ylabel('利用式创新')
    ax.set_zlabel('企业成长绩效')
    print('展示图表')
    plt.show()


最后奉上代码文件,以供大家交流讨论。
百度网盘:链接:https://pan.baidu.com/s/1VF8aSFGK9QEfuX_-zC8Z0Q
提取码:71jl


解压密码:www.52pojie.cn
捕获2.PNG

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-15 12:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表