You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
11 KiB
1 line
11 KiB
4 years ago
|
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QWidget
from PyQt5.QtGui import QPixmap
from functools import partial
import datetime
import numpy as np
import pandas as pd
import FirstUi
import SecondUi
import ThirdUi
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
import matplotlib.pyplot as plt
import seaborn
from sklearn.preprocessing import OneHotEncoder as ohe
from sklearn.preprocessing import OrdinalEncoder as ode
from sklearn.preprocessing import KBinsDiscretizer
from sklearn.linear_model import LogisticRegression
class Util:
def __init__(self, F_Widget, S_Widget, T_Widget, S_Ui, T_Ui):
self.F_Widget = F_Widget
self.S_Widget = S_Widget
self.T_Widget = T_Widget
self.S_Ui = S_Ui
self.T_Ui = T_Ui
self.TrainFile = None
self.TestFile = None
self.TestSurvived = None
self.fig = None
self.canvas = None
self.train = None
self.test = None
self.y_test = None
self.pred_x = None
self.train_y = None
self.train_x = None
self.test_x = None
self.test_y = None
# 将按钮与槽函数连接(数据导入)
self.F_Widget.pushButton.clicked.connect(self.DataInput)
self.S_Widget.pushButton.clicked.connect(partial(self.OpenFile, self.S_Widget.lineEdit))
self.S_Widget.pushButton_2.clicked.connect(partial(self.OpenFile, self.S_Widget.lineEdit_2))
self.S_Widget.pushButton_5.clicked.connect(partial(self.OpenFile, self.S_Widget.lineEdit_3))
self.S_Widget.pushButton_3.clicked.connect(self.FileReady)
self.S_Widget.pushButton_4.clicked.connect(self.FileClear)
self.S_Widget.lineEdit.textChanged.connect(partial(self.SetFileInfo, self.S_Widget.lineEdit, 1))
self.S_Widget.lineEdit_2.textChanged.connect(partial(self.SetFileInfo, self.S_Widget.lineEdit_2, 2))
self.S_Widget.lineEdit_3.textChanged.connect(partial(self.SetFileInfo, self.S_Widget.lineEdit_3, 3))
# 将按钮与槽函数连接(特征分析)
self.F_Widget.pushButton_2.clicked.connect(self.DataProcess)
# 将按钮与槽函数连接(算法预测)
self.F_Widget.pushButton_3.clicked.connect(self.predicted)
def SetFileInfo(self, line, num):
if num == 1:
if line.text() != '':
self.TrainFile = line.text()
if num == 2:
if line.text() != '':
self.TestFile = line.text()
if num == 3:
if line.text() != '':
self.TestSurvived = line.text()
def DataInput(self):
self.S_Ui.show()
def FileClear(self):
if self.TrainFile is not None or self.TestFile is not None or self.TestSurvived is not None:
self.TrainFile = None
self.TestFile = None
self.TestSurvived = None
self.S_Widget.lineEdit.clear()
self.S_Widget.lineEdit_2.clear()
self.S_Widget.lineEdit_3.clear()
curr_time = datetime.datetime.now()
time_str = datetime.datetime.strftime(curr_time, '%Y-%m-%d %H:%M:%S')
self.F_Widget.textBrowser.append(time_str + ":" + "数据清除成功")
self.S_Ui.close()
def FileReady(self):
if self.TrainFile is not None and self.TestFile is not None and self.TestSurvived is not None:
curr_time = datetime.datetime.now()
time_str = datetime.datetime.strftime(curr_time, '%Y-%m-%d %H:%M:%S')
self.F_Widget.textBrowser.append(time_str + ":" + "数据导入成功")
self.S_Ui.close()
def OpenFile(self, line):
# 第一个参数指向父组件
filename, type = QFileDialog.getOpenFileName(self.S_Ui, "选择目录", r"C:\Users\Administrator\Desktop")
line.setText(filename)
def DataProcess(self):
curr_time = datetime.datetime.now()
time_str = datetime.datetime.strftime(curr_time, '%Y-%m-%d %H:%M:%S')
self.F_Widget.textBrowser.a
|