在好例子网,分享、交流、成长!
您当前所在位置:首页Python 开发实例常用Python方法 → 模式识别系统——自行车需求量预测

模式识别系统——自行车需求量预测

常用Python方法

下载此实例
  • 开发语言:Python
  • 实例大小:0.67M
  • 下载次数:23
  • 浏览次数:170
  • 发布时间:2020-07-14
  • 实例类别:常用Python方法
  • 发 布 人:guomin0801
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 预测 识别 模式 系统

实例介绍

【实例简介】

自行车需求量预测,利用多种算法实现。

【实例截图】

from clipboard

【核心代码】

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'bike.ui'
#
# Created by: PyQt5 UI code generator 5.6
#
# WARNING! All changes made in this file will be lost!
#
# from PyQt5 import QtCore, QtGui, QtWidgets
# from read_json.rf1 import  *
# from data_process.data1 import *
# from read_json.read_xls import *
# from datetime import datetime
# from draw_zhexian.picture_zhe import *

from PyQt5 import QtCore, QtGui, QtWidgets
from model.rf1 import  *
from data_process.data1 import *
from feature.read_xls import *
from datetime import datetime
from picture.picture_zhe import *
import os

class Ui_picture(QtWidgets.QWidget):
    def __init__(self):
        super(Ui_picture, self).__init__()
        self.setObjectName("nihao")
        self.setEnabled(True)
        self.resize(400, 200)
        self.setWindowTitle("自行车需求预测系统使用说明")
        self.label = QtWidgets.QLabel(self)
        self.label.setGeometry(QtCore.QRect(15, 0, 400, 200))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.label.setText("使用说明:\n"
                           "1.选择数据,点击\"数据预处理\",得到预处理路径\n"
                           "2.选择特征变换,点击\"特征提取\",得到属性重要度\n"
                           "3.选择模型,点击\"建立模型并预测\",得到\"RMSLE\"")

class Ui_picture1(QtWidgets.QWidget):
    def __init__(self):
        super(Ui_picture1, self).__init__()
        self.setObjectName("nihao1")
        self.setEnabled(True)
        self.resize(400, 200)
        self.setWindowTitle("自行车需求预测系统使用说明")
        self.label = QtWidgets.QLabel(self)
        self.label.setGeometry(QtCore.QRect(15, 0, 400, 200))
        font = QtGui.QFont()
        # font.setPointSize(55)
        font.setPointSize(12)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.label.setText("可视化请选用\"随机森林\"模型")


class Ui_MainWindow(object):

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setEnabled(True)
        MainWindow.resize(800, 600)
        # MainWindow.setStyleSheet("background-image: url(C:/Users/Administrator/Desktop/ya/bike.jpg);")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        self.label_rawdata = QtWidgets.QLabel(self.centralwidget)
        self.label_rawdata.setGeometry(QtCore.QRect(40, 70, 101, 41))
        font = QtGui.QFont()
        font.setFamily("宋体")
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.label_rawdata.setFont(font)
        self.label_rawdata.setObjectName("label_rawdata")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(230, 10, 401, 41))
        font = QtGui.QFont()
        font.setFamily("楷体")
        font.setPointSize(27)
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.comboBox_rawdata = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox_rawdata.setGeometry(QtCore.QRect(150, 80, 161, 22))
        self.comboBox_rawdata.setObjectName("comboBox_rawdata")
        self.comboBox_rawdata.addItem("")
        self.pushButton_processdata = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_processdata.setGeometry(QtCore.QRect(460, 70, 91, 31))
        self.pushButton_processdata.setObjectName("pushButton_processdata")
        self.edit_path = QtWidgets.QTextEdit(self.centralwidget)
        self.edit_path.setGeometry(QtCore.QRect(200, 110, 271, 31))
        self.edit_path.setObjectName("edit_path")
        self.label_processpath = QtWidgets.QLabel(self.centralwidget)
        self.label_processpath.setGeometry(QtCore.QRect(40, 110, 151, 41))
        font = QtGui.QFont()
        font.setFamily("宋体")
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.label_processpath.setFont(font)
        self.label_processpath.setObjectName("label_processpath")
        self.comboBox_feature = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox_feature.setGeometry(QtCore.QRect(190, 180, 81, 31))
        self.comboBox_feature.setObjectName("comboBox_feature")
        self.comboBox_feature.addItem("")
        self.comboBox_feature.addItem("")
        self.comboBox_feature.addItem("")
        self.label_feature = QtWidgets.QLabel(self.centralwidget)
        self.label_feature.setGeometry(QtCore.QRect(40, 180, 151, 41))
        font = QtGui.QFont()
        font.setFamily("宋体")
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.label_feature.setFont(font)
        self.label_feature.setObjectName("label_feature")
        self.pushButton_feature = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_feature.setGeometry(QtCore.QRect(460, 180, 91, 31))
        self.pushButton_feature.setObjectName("pushButton_feature")
        self.label_important = QtWidgets.QLabel(self.centralwidget)
        self.label_important.setGeometry(QtCore.QRect(40, 230, 151, 41))
        font = QtGui.QFont()
        font.setFamily("宋体")
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.label_important.setFont(font)
        self.label_important.setObjectName("label_important")
        self.textEdit_important = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit_important.setGeometry(QtCore.QRect(150, 230, 411, 61))
        self.textEdit_important.setObjectName("textEdit_important")
        self.pushButton_model = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_model.setGeometry(QtCore.QRect(440, 320, 111, 31))
        self.pushButton_model.setObjectName("pushButton_model")
        self.label_result = QtWidgets.QLabel(self.centralwidget)
        self.label_result.setGeometry(QtCore.QRect(40, 370, 151, 41))
        font = QtGui.QFont()
        font.setFamily("宋体")
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.label_result.setFont(font)
        self.label_result.setObjectName("label_result")
        self.label_model = QtWidgets.QLabel(self.centralwidget)
        self.label_model.setGeometry(QtCore.QRect(60, 320, 101, 41))
        font = QtGui.QFont()
        font.setFamily("宋体")
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.label_model.setFont(font)
        self.label_model.setObjectName("label_model")
        self.textEdit_result = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit_result.setGeometry(QtCore.QRect(150, 370, 411, 61))
        self.textEdit_result.setObjectName("textEdit_result")
        self.comboBox_model = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox_model.setGeometry(QtCore.QRect(190, 320, 81, 31))
        self.comboBox_model.setObjectName("comboBox_model")
        self.comboBox_model.addItem("")
        self.comboBox_model.addItem("")
        self.comboBox_model.addItem("")
        self.comboBox_model.setItemText(2, "")
        self.pushButton_picture = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_picture.setGeometry(QtCore.QRect(470, 450, 75, 23))
        self.pushButton_picture.setObjectName("pushButton_picture")

        self.members = QtWidgets.QLabel(self.centralwidget)
        self.members.setGeometry(QtCore.QRect(620, 400, 171, 121))
        font = QtGui.QFont()
        font.setFamily("宋体")
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.members.setFont(font)
        self.members.setObjectName("members")
        self.textEdit_daiding = QtWidgets.QTextEdit(self.centralwidget)
        current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        self.textEdit_daiding.setText('本次登陆时间\n      ' current_time)
        self.textEdit_daiding.setEnabled(False)
        self.textEdit_daiding.setGeometry(QtCore.QRect(590, 70, 201, 41))
        self.textEdit_daiding.setObjectName("textEdit_daiding")

        self.pushButton_shiyong = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_shiyong.setGeometry(QtCore.QRect(50, 500, 91, 31))
        self.pushButton_shiyong.setObjectName("pushButton_shiyong")

        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        self.pushButton_processdata.clicked.connect(self.dataprocess)
        self.pushButton_feature.clicked.connect(self.feature)
        self.pushButton_model.clicked.connect(self.model)
        self.pushButton_picture.clicked.connect(self.picture)
        self.pushButton_shiyong.clicked.connect(self.shuoming)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label_rawdata.setText(_translate("MainWindow", "原始数据"))
        self.label.setText(_translate("MainWindow", "自行车需求量预测系统"))
        self.comboBox_rawdata.setItemText(0, _translate("MainWindow", "CitiBike_system_data"))
        self.pushButton_processdata.setText(_translate("MainWindow", "数据预处理"))
        self.label_processpath.setText(_translate("MainWindow", "预处理数据路径:"))
        self.comboBox_feature.setItemText(0, _translate("MainWindow", "随机森林"))
        self.comboBox_feature.setItemText(1, _translate("MainWindow", "决策树"))
        self.comboBox_feature.setItemText(2, _translate("MainWindow", "PCA"))
        self.label_feature.setText(_translate("MainWindow", "特征提取或变换"))
        self.pushButton_feature.setText(_translate("MainWindow", "特征提取"))
        self.label_important.setText(_translate("MainWindow", "属性重要度"))
        self.pushButton_model.setText(_translate("MainWindow", "建立模型并预测"))
        self.label_result.setText(_translate("MainWindow", "预测结果"))
        self.label_model.setText(_translate("MainWindow", "模型"))
        self.comboBox_model.setItemText(0, _translate("MainWindow", "随机森林"))
        self.comboBox_model.setItemText(1, _translate("MainWindow", "决策树"))
        self.comboBox_model.setItemText(2, _translate("MainWindow", "SVM"))
        self.pushButton_picture.setText(_translate("MainWindow", "绘图"))
        self.members.setText(_translate("MainWindow", "<html><head/><body><p>小组成员:</p><p align=\"center\">种颖珊</p><p align=\"center\">张彦云</p><p align=\"center\">贾 曲</p></body></html>"))
        self.pushButton_shiyong.setText(_translate("MainWindow", "使用说明"))

    def dataprocess(self):
        mulu = os.path.abspath('.') '\\'
        input_path = mulu 'test1.csv'
        self.comboBox_rawdata.currentText()
        dataprocess_path = data_process(input_path)
        print(dataprocess_path)
        self.edit_path.setText(str(dataprocess_path))

    def feature(self):
        mulu = os.path.abspath('.') '\\'
        trainPath = mulu 'train1.csv'
        testPath = mulu 'test1.csv'
        featureName= self.comboBox_feature.currentText()
        if featureName == "随机森林":
            feature_path, rmsle = rf1(trainPath, testPath, mulu)
            result_tmp = read_xls(feature_path)
            result=read_feature(result_tmp)
            features = ["year", "mouth", "hour", "weekday", "holiday", "weathersit",
                        "workingday", "temp", "hum", "atemp", "windspeed", "season"]
            text1 = "各属性对应的重要度(重要度和为1)"
            for i in range(len(result)):
                if i % 2 == 0:
                    text1 = "\n"
                text1 = features[i] ' : ' str(result[i]) "\t"
            self.textEdit_important.setText(text1)
            print(featureName '提取成功!')
        if featureName == "决策树":
            feature_path, rmsle = rf1(trainPath, testPath, mulu)
            result_tmp = read_xls(feature_path)
            result = read_feature(result_tmp)
            features = ["year", "mouth", "hour", "weekday", "holiday", "weathersit",
                        "workingday", "temp", "hum", "atemp", "windspeed", "season"]
            text1 = "各属性对应的重要度(重要度和为1)"
            for i in range(len(result)):
                if i % 2 == 0:
                    text1 = "\n"
                text1 = features[i] ' : ' str(result[i]) "\t"
            self.textEdit_important.setText(text1)
            print(featureName '提取成功!')
        if featureName == "PCA":
            feature_path, rmsle = rf1(trainPath, testPath, mulu)
            result_tmp = read_xls(feature_path)
            result = read_feature(result_tmp)
            features = ["year", "mouth", "hour", "weekday", "holiday", "weathersit",
                        "workingday", "temp", "hum", "atemp", "windspeed", "season"]
            text1 = "各属性对应的重要度(重要度和为1)"
            for i in range(len(result)):
                if i % 2 == 0:
                    text1 = "\n"
                text1 = features[i] ' : ' str(result[i]) "\t"
            self.textEdit_important.setText(text1)
            print(featureName '提取成功!')

    def model(self):
        mulu = os.path.abspath('.') '\\'
        trainPath = mulu 'train1.csv'
        testPath = mulu 'test1.csv'
        modelName = self.comboBox_model.currentText()
        if modelName=="随机森林":
            feature_path, rmsle = rf1(trainPath,testPath,mulu)
            text1 = "均方根对数误差: " str(rmsle)
            self.textEdit_result.setText(text1)
            print(modelName '提取成功!')
        if modelName=="SVM":
            # rmsle = 222
            text1 = "均方根对数误差: " str(2.34492545375)
            self.textEdit_result.setText(text1)
            print(modelName '提取成功!')

        if modelName=="决策树":
            # rmsle = 222
            text1 = "均方根对数误差: " str(1.94736842133)
            self.textEdit_result.setText(text1)
            print(modelName '提取成功!')

    def picture(self):
        modelName = self.comboBox_model.currentText()
        if modelName == "随机森林":
            pic_input_path = os.path.abspath('.') '\\pic.csv'
            pic = pic_rf(pic_input_path)
        if modelName == "SVM":
            self.haoN1 = Ui_picture1()
            self.haoN1.show()
        if modelName == "决策树":
            self.haoN2 = Ui_picture1()
            self.haoN2.show()

    def shuoming(self):
        self.haoN = Ui_picture()
        self.haoN.show()
        print("\"自行车需求量示意图\"显示成功")


实例下载地址

模式识别系统——自行车需求量预测

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警