12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001 |
- import tkinter
- import webbrowser
- from tkinter.filedialog import askopenfilename, asksaveasfilename,askdirectory
- import tkinter.messagebox
- import os
- import chardet
- from tkinter.scrolledtext import ScrolledText
- from Machine_learning_analysis import Learn_Numpy
- print('Start')
- def Main():
- global top,ML,Form_List,PATH,bg,bbg,fg,Merge_list,Cul_list,Cul_Type
- Cul_list = []
- Cul_Type = []
- PATH = os.getcwd()
- Form_List = []
- Merge_list = []
- ML = Learn_Numpy.Machine_Learner()
- top = tkinter.Tk()
- bg = '#FFFAFA' # 主颜色
- bbg = '#FFFAFA' # 按钮颜色
- fg = '#000000' # 文字颜色
- top["bg"] = bg
- FONT = ('黑体', 11) # 设置字体
- top.title('CoTan机器学习')
- top.resizable(width=False, height=False)
- top.geometry('+10+10') # 设置所在位置
- width_B = 13 # 标准宽度
- height_B = 2
- a_y = 0
- a_x = 0
- tkinter.Button(top, bg=bbg, fg=fg, text='导入CSV', command=Add_CSV, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='导入Py', command=Add_Python, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='导出CSV', command=to_CSV, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- global name_Input
- a_y += 1
- tkinter.Label(top, text='表格名称:', bg=bg, fg=fg, font=FONT, width=width_B, height=height_B).grid(column=a_x,
- row=a_y) # 设置说明
- name_Input = tkinter.Entry(top, width=width_B)
- name_Input.grid(column=a_x + 1, row=a_y, columnspan=2, sticky=tkinter.E + tkinter.W)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='删除表格', font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='查看表格', command=Show, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='查看单一表格', command=Show_One, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- global Form_BOX, Index_BOX, Column_BOX, to_HTML_Type, Seq_Input, Code_Input,str_must
- a_y += 1
- to_HTML_Type = tkinter.IntVar() # 正,负,0
- lable = ['选项卡型', '可移动型', '自适应型'] # 复选框
- for i in range(3):
- tkinter.Radiobutton(top, bg=bg, fg=fg, activebackground=bg, activeforeground=fg, selectcolor=bg, text=lable[i],
- variable=to_HTML_Type,
- value=i).grid(column=a_x + i, row=a_y, sticky=tkinter.W)
- str_must = tkinter.IntVar()
- a_y += 1
- tkinter.Label(top, text='编码方式:', bg=bg, fg=fg, font=FONT, width=width_B, height=height_B).grid(column=a_x,
- row=a_y) # 设置说明
- Code_Input = tkinter.Entry(top, width=width_B)
- Code_Input.grid(column=a_x + 1, row=a_y, sticky=tkinter.E + tkinter.W)
- buttom = tkinter.Checkbutton(top, bg=bg, fg=fg, activebackground=bg, activeforeground=fg, selectcolor=bg,
- text='字符串类型',
- variable=str_must)
- buttom.grid(column=a_x + 2, row=a_y, sticky=tkinter.W)
- a_y += 1
- tkinter.Label(top, text='CSV分隔符:', bg=bg, fg=fg, font=FONT, width=width_B, height=height_B).grid(column=a_x,
- row=a_y) # 设置说明
- Seq_Input = tkinter.Entry(top, width=width_B)
- Seq_Input.grid(column=a_x + 1,columnspan=2, row=a_y, sticky=tkinter.E + tkinter.W)
- a_y += 1
- Form_BOX = tkinter.Listbox(top, width=width_B * 3, height=height_B * 10) # 显示符号
- Form_BOX.grid(column=a_x, row=a_y, columnspan=3, rowspan=10, sticky=tkinter.E + tkinter.W + tkinter.S + tkinter.N)
- #422
- a_y += 10
- tkinter.Button(top, bg=bbg, fg=fg, text='添加数据', command=Merge_Add, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='删除数据', command=Merge_Del, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='组合数据', command=Merge, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- global Processing_type, Shape_Input, Merge_BOX
- a_y += 1
- Merge_BOX = tkinter.Listbox(top, width=width_B * 3, height=height_B * 3) # 显示符号
- Merge_BOX.grid(column=a_x, row=a_y, columnspan=3, rowspan=3, sticky=tkinter.E + tkinter.W + tkinter.S + tkinter.N)
- a_y += 3
- Processing_type = tkinter.IntVar()#正,负,0
- lable = ['横向处理','纵向处理','深度处理']#复选框
- for i in range(3):
- tkinter.Radiobutton(top,bg = bg,fg = fg,activebackground=bg,activeforeground=fg,selectcolor=bg,text=lable[i],
- variable=Processing_type, value=i).grid(column=a_x+i, row=a_y, sticky=tkinter.W)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='数据切片', command=Two_Split, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='数据分割', command=Split, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 1, row=a_y,columnspan=2,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Label(top, text='重塑形状:', bg=bg, fg=fg, font=FONT, width=width_B, height=height_B).grid(column=a_x,row=a_y)
- Shape_Input = tkinter.Entry(top, width=width_B)
- Shape_Input.grid(column=a_x + 1, row=a_y, sticky=tkinter.E + tkinter.W)
- tkinter.Button(top, bg=bbg, fg=fg, text='矩阵重塑', command=Reshape, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='矩阵伸展', command=Reval, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='矩阵降维', command=Del_Ndim, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='矩阵转置', command=T, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_x += 3
- tkinter.Label(top, text='', bg=bg, fg=fg, font=FONT, width=1).grid(column=a_x, row=a_y) # 设置说明
- a_x += 1
- a_y = 0
- tkinter.Label(top, text='【机器学习】', bg=bg, fg=fg, font=FONT, width=width_B * 3, height=height_B).grid(column=a_x,
- columnspan=3,
- row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N) # 设置说明
- global ML_BOX, ML_OUT,X_OUT,Y_OUT
- a_y += 1
- X_OUT = tkinter.StringVar()
- Put = tkinter.Entry(top, width=width_B * 2, textvariable=X_OUT)
- Put.grid(column=a_x, row=a_y, columnspan=2, sticky=tkinter.E + tkinter.W)
- Put['state'] = 'readonly'
- tkinter.Button(top, bg=bbg, fg=fg, text='选用X集', command=set_Feature, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y, sticky=tkinter.E + tkinter.W)
- Y_OUT = tkinter.StringVar()
- a_y += 1
- Put = tkinter.Entry(top, width=width_B * 2, textvariable=Y_OUT)
- Put.grid(column=a_x, row=a_y, columnspan=2, sticky=tkinter.E + tkinter.W)
- Put['state'] = 'readonly'
- tkinter.Button(top, bg=bbg, fg=fg, text='选用Y集', command=set_Label, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y, sticky=tkinter.E + tkinter.W)
- ML_OUT = tkinter.StringVar()
- a_y += 1
- Put = tkinter.Entry(top, width=width_B * 2, textvariable=ML_OUT)
- Put.grid(column=a_x, row=a_y, columnspan=2, sticky=tkinter.E + tkinter.W)
- Put['state'] = 'readonly'
- tkinter.Button(top, bg=bbg, fg=fg, text='选用学习器', command=set_Learner, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y, sticky=tkinter.E + tkinter.W)
- global Split_Input
- a_y += 1
- tkinter.Label(top, text='测试数据分割:', bg=bg, fg=fg, font=FONT, width=width_B, height=height_B).grid(column=a_x,
- row=a_y)
- Split_Input = tkinter.Entry(top, width=width_B * 2)
- Split_Input.grid(column=a_x + 1, row=a_y, columnspan=2, sticky=tkinter.E + tkinter.W)
- a_y += 1
- ML_BOX = tkinter.Listbox(top, width=width_B * 3, height=height_B * 5)
- ML_BOX.grid(column=a_x, row=a_y, columnspan=3, rowspan=5, sticky=tkinter.E + tkinter.W + tkinter.S + tkinter.N)
- a_y += 5
- tkinter.Button(top, bg=bbg, fg=fg, text='导入学习器', font=FONT, width=width_B, height=height_B).grid(
- column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='查看数据', command=Show_Args, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='删除学习器', command=Del_Leaner, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='训练机器', command=Fit_Learner, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='测试机器', command=Score_Learner, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='数据预测', command=Predict_Learner, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='单一变量特征选择', command=Add_SelectKBest, font=FONT, width=width_B, height=height_B).grid(column=a_x, row=a_y,columnspan=2,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='映射标准化', command=Add_Mapzoom, font=FONT, width=width_B,
- height=height_B).grid(column=a_x+2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='方差特征选择',command=Add_Variance, font=FONT, width=width_B, height=height_B).grid(
- column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='使用学习器筛选', command=Add_SelectFrom_Model, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 1, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='模糊量化标准化', command=Add_Fuzzy_quantization, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='Z-score',command=Add_Z_Score, font=FONT, width=width_B, height=height_B).grid(
- column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='离差标准化', command=Add_MinMaxScaler, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='Log变换', command=Add_LogScaler, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='atan变换',command=Add_atanScaler, font=FONT, width=width_B, height=height_B).grid(
- column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='小数定标准化', command=Add_decimalScaler, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='Sigmod变换', command=Add_sigmodScaler, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='正则化',command=Add_Regularization, font=FONT, width=width_B, height=height_B).grid(
- column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='二值离散', command=Add_Binarizer, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='多值离散', command=Add_Discretization, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='独热编码',command=Add_OneHotEncoder, font=FONT, width=width_B, height=height_B).grid(
- column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='数字编码', command=Add_Label, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='缺失填充', command=Add_Missed, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='PCA降维',command=Add_PCA, font=FONT, width=width_B, height=height_B).grid(
- column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='RPCA降维', command=Add_RPCA, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='KPCA升维', command=Add_KPCA, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='LDA降维', command=Add_LDA, font=FONT, width=width_B, height=height_B).grid(
- column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='NMF降维', command=Add_NMF, font=FONT, width=width_B, height=height_B).grid(
- column=a_x+1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='t-SNE', command=Add_TSNE, font=FONT, width=width_B, height=height_B).grid(
- column=a_x+2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='线性回归', command=Add_Line, font=FONT, width=width_B, height=height_B).grid(
- column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='岭回归', command=Add_Ridge, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='Lasso', command=Add_Lasso, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='逻辑回归', command=Add_LogisticRegression, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='K邻近预测', command=Add_Knn, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='K邻近分类', command=Add_Knn_Class, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='梯度回归树回归', command=Add_GradientTree, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='决策树回归',command=Add_Tree, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='决策树分类',command=Add_Tree_Class, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='梯度回归树分类', command=Add_GradientTree_class, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='随机森林回归', command=Add_Forest, font=FONT, width=width_B,
- height=height_B).grid(column=a_x+1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='随机森林分类',command=Add_Forest_class, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_x += 3
- tkinter.Label(top, text='', bg=bg, fg=fg, font=FONT, width=1).grid(column=a_x, row=a_y) # 设置说明
- a_x += 1
- a_y = 0
- tkinter.Button(top, bg=bbg, fg=fg, text='多层感知机回归', command=Add_MLP, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='多层感知机分类', command=Add_MLP_class, font=FONT, width=width_B,
- height=height_B).grid(column=a_x+1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='随机森林分类',command=Add_Forest_class, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='支持向量机分类:SVC', command=Add_SVC, font=FONT, width=width_B, height=height_B).grid(
- column=a_x, row=a_y,columnspan=2,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='回归:SVR', command=Add_SVR, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='k-means', command=Add_KMeans, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='凝聚聚类', command=Add_Agglomerative, font=FONT, width=width_B,
- height=height_B).grid(column=a_x+1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='DBSCAN',command=Add_DBSCAN, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='特征分类图', command=Add_ClassBar, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='临近特征回归图', command=Add_FeatureScatter, font=FONT, width=width_B,
- height=height_B).grid(column=a_x+1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='临近特征分类图',command=Add_FeatureScatterClass, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='所有特征回归图', command=Add_FeatureScatter_all, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='所有特征分类图', command=Add_FeatureScatterClass_all, font=FONT, width=width_B,
- height=height_B).grid(column=a_x+1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='临近特征预测图',command=Add_Predictive_HeatMap, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='所有特征预测图', command=Add_Predictive_HeatMap_More, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='矩阵热力图', command=Add_Numpy_To_HeatMap, font=FONT, width=width_B,
- height=height_B).grid(column=a_x+1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='数据y-x散点图',command=Add_FeatureY_X, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='聚类树状图', command=Add_ClusterTree, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='获取数据', command=Add_View_data, font=FONT, width=width_B,
- height=height_B).grid(column=a_x+1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='矩阵散点图',command=Add_MatrixScatter, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='特征相关性', command=Add_corr, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='曲线拟合', command=Curve_fitting, font=FONT, width=width_B,
- height=height_B).grid(column=a_x+1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='快速傅里叶',command=Add_Fast_Fourier, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='数据统计', command=Add_Des, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='双逆向傅里叶',command=Add_Reverse_Fast_Fourier2, font=FONT, width=width_B,
- height=height_B).grid(column=a_x+1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='逆向傅里叶',command=Add_Reverse_Fast_Fourier, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='分类模型评估', command=Show_Class_Score, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='回归模型评估', command=Show_Regression_Score, font=FONT, width=width_B,
- height=height_B).grid(column=a_x+1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='聚类模型评估', command=Show_Clustering_Score, font=FONT, width=width_B, height=height_B).grid(
- column=a_x + 2, row=a_y,sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- a_y += 1
- tkinter.Label(top, text='【学习器配置】', bg=bg, fg=fg, font=FONT, width=width_B * 3, height=height_B).grid(column=a_x,
- columnspan=3,
- row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N) # 设置说明
- global Global_Type
- a_y += 1
- Global_Type = []
- lable = ['聚类仅邻近特征','导出单独页面','导出表格CSV']#复选框
- for i in range(3):
- Global_Type.append(tkinter.IntVar())
- tkinter.Checkbutton(top,bg = bg,fg = fg,activebackground=bg,activeforeground=fg,selectcolor=bg, text=lable[i],
- variable=Global_Type[-1],command=globalSeeting).grid(column=a_x+i, row=a_y, sticky=tkinter.W)
- a_y += 1
- lable = ['导出模型','压缩为tar.gz','创建新目录']#复选框
- for i in range(3):
- Global_Type.append(tkinter.IntVar())
- tkinter.Checkbutton(top,bg = bg,fg = fg,activebackground=bg,activeforeground=fg,selectcolor=bg, text=lable[i],
- variable=Global_Type[-1],command=globalSeeting).grid(column=a_x+i, row=a_y, sticky=tkinter.W)
- for i in Global_Type[1:]:i.set(1)
- globalSeeting()
- global Args_Learner
- a_y += 1
- Args_Learner = tkinter.Text(top, width=width_B * 3, height=height_B * 6)
- Args_Learner.grid(column=a_x, row=a_y, columnspan=3, rowspan=6,
- sticky=tkinter.E + tkinter.W + tkinter.N + tkinter.S)
- a_y += 6
- tkinter.Label(top, text='【矩阵运算】', bg=bg, fg=fg, font=FONT, width=width_B * 3, height=height_B).grid(column=a_x,
- columnspan=3,
- row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N) # 设置说明
- global Cul_Box,CulType_Input,Value_Input
- a_y += 1
- Cul_Box = tkinter.Listbox(top, width=width_B * 3, height=height_B * 1)
- Cul_Box.grid(column=a_x, row=a_y, columnspan=3, rowspan=1, sticky=tkinter.E + tkinter.W + tkinter.S + tkinter.N)
- a_y +=1
- tkinter.Label(top, text='运算类型:', bg=bg, fg=fg, font=FONT, width=width_B, height=height_B).grid(column=a_x,row=a_y)
- CulType_Input = tkinter.Entry(top, width=width_B * 2)
- CulType_Input.grid(column=a_x + 1, row=a_y, columnspan=2, sticky=tkinter.E + tkinter.W)
- a_y +=1
- tkinter.Label(top, text='键入参数:', bg=bg, fg=fg, font=FONT, width=width_B, height=height_B).grid(column=a_x,row=a_y)
- Value_Input = tkinter.Entry(top, width=width_B * 2)
- Value_Input.grid(column=a_x + 1, row=a_y, columnspan=2, sticky=tkinter.E + tkinter.W)
- a_y += 1
- tkinter.Button(top, bg=bbg, fg=fg, text='选择参数', command=Cul_Add, font=FONT, width=width_B,
- height=height_B).grid(column=a_x, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='键入参数', command=Cul_Input, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 1, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- tkinter.Button(top, bg=bbg, fg=fg, text='矩阵运算', command=Cul_Numpy, font=FONT, width=width_B,
- height=height_B).grid(column=a_x + 2, row=a_y,
- sticky=tkinter.E + tkinter.W + tkinter.W + tkinter.S + tkinter.N)
- top.mainloop()
- def Add_Reverse_Fast_Fourier2(): # 添加Lenear的核心
- Add_leaner('[2]Reverse_Fast_Fourier')
- def Add_Reverse_Fast_Fourier(): # 添加Lenear的核心
- Add_leaner('Reverse_Fast_Fourier')
- def Add_Fast_Fourier(): # 添加Lenear的核心
- Add_leaner('Fast_Fourier')
- def Curve_fitting():
- Dic = askopenfilename(title='导入参数')
- with open(Dic,'r') as f:
- ML.Add_Curve_Fitting(f.read(),Text=get_Args_Learner())
- Update_Leaner()
- def Show_Clustering_Score():
- Show_Score(2)
- def Show_Regression_Score():
- Show_Score(1)
- def Show_Class_Score():
- Show_Score(0)
- def Show_Score(func):
- learner = get_Learner(True)
- Dic = askdirectory(title='选择保存位置')
- data = ML.Show_Score(learner,Dic,get_Name(False,True),get_Name(False,False),func)
- webbrowser.open(data[0])
- webbrowser.open(data[1])#还可以打开文件管理器
- Update_BOX()
- def Cul_Numpy():
- global Cul_list, Cul_Type, CulType_Input
- func = CulType_Input.get()
- if len(Cul_list) == 2 and 1 in Cul_Type:
- ML.Cul_Numpy(Cul_list,Cul_Type,func)
- Update_BOX()
- def Add_Cul(num,type_):
- global Cul_list, Cul_Type
- if len(Cul_list) == 2:
- del Cul_list[0]
- del Cul_Type[0]
- Cul_list.append(num)
- Cul_Type.append(type_)
- def Update_Cul():
- global Cul_list,Cul_Type,Cul_Box
- Cul_Box.delete(0, tkinter.END)
- a = ['第一参数','第二参数']
- b = ['参数','矩阵']
- Cul_Box.insert(tkinter.END, *[f'{a[i]} {Cul_list[i]} {b[Cul_Type[i]]}' for i in range(len(Cul_list))])
- def Cul_Input():
- global Cul_Box,CulType_Input,Value_Input
- num = eval(Value_Input.get(),{})
- Add_Cul(num,0)
- Update_Cul()
- def Cul_Add():
- name = get_Name()
- Add_Cul(name,1)
- Update_Cul()
- def Del_Leaner():
- Learn = get_Learner(True)
- set_Learne = get_Learner(False) # 获取学习器Learner
- if set_Learne != Learn:
- ML.Del_Leaner(Learn)
- Update_Leaner()
- def globalSeeting():
- global Global_Type
- args = [bool(i.get()) for i in Global_Type]
- Learn_Numpy.set_Global(*args)
- def Reshape():
- global ML,Processing_type
- shape = eval(f'[{Shape_Input.get()}]')[0]
- ML.reShape(get_Name(),shape)
- Update_BOX()
- def T():
- global ML,Processing_type,Shape_Input
- try:
- Func = eval(f'[{Shape_Input.get()}]')
- except:
- Func = None
- ML.T(get_Name(),Func)
- Update_BOX()
- def Del_Ndim():
- global ML
- ML.Del_Ndim(get_Name())
- Update_BOX()
- def Reval():
- global ML,Processing_type
- Type = Processing_type.get()
- ML.Reval(get_Name(),Type)
- Update_BOX()
- def Two_Split():
- global ML,Processing_type,Shape_Input
- Type = Processing_type.get()
- ML.Two_Split(get_Name(),Shape_Input.get(),Type)
- Update_BOX()
- def Split():
- global ML,Processing_type,Shape_Input
- Type = Processing_type.get()
- try:
- Split = eval(f'[{Shape_Input.get()}]')[0]
- except:
- Split = 2
- ML.Split(get_Name(),Split,Type)
- Update_BOX()
- def Merge():
- global Merge_list,ML,Processing_type
- if len(Merge_list) < 1:
- return False
- Type = Processing_type.get()
- ML.Merge(Merge_list,Type)
- Update_BOX()
- def Update_Merge():
- global Merge_list,Merge_BOX
- Merge_BOX.delete(0, tkinter.END)
- Merge_BOX.insert(tkinter.END, *Merge_list)
- def Merge_Del():
- global Merge_list,Merge_BOX
- del Merge_list[Merge_BOX.curselection()[0]]
- Update_Merge()
- def Merge_Add():
- global Merge_list
- name = get_Name()
- Merge_list.append(name)
- Update_Merge()
- def Show_Args():
- learner = get_Learner(True)
- Dic = askdirectory(title='选择保存位置')
- data = ML.Show_Args(learner,Dic)
- webbrowser.open(data[0])
- webbrowser.open(data[1])#还可以打开文件管理器
- Update_BOX()
- def get_Args_Learner():
- global Args_Learner
- return Args_Learner.get('0.0', tkinter.END)
- def Score_Learner():
- learner = get_Learner()
- socore = ML.Score(get_Name(False,True),get_Name(False,False), learner)
- tkinter.messagebox.showinfo('测试完成', f'针对测试数据评分结果为:{socore}')
- def Predict_Learner():
- learner = get_Learner()
- Data = ML.Predict(get_Name(False,True),learner)
- title = f'CoTan数据处理 学习器:{learner}'
- Creat_TextSheet(Data, title)
- Update_BOX()
- def Fit_Learner():
- learner = get_Learner()
- try:
- split = float(Split_Input.get())
- if split < 0 or 1 < split: raise Exception
- except:
- split = 0.3
- socore = ML.Fit(get_Name(False,True),get_Name(False,False), learner, Text=get_Args_Learner(), split=split)
- tkinter.messagebox.showinfo('训练完成', f'针对训练数据({(1 - split) * 100}%)评分结果为:{socore[0]}\n'
- f'针对测试数据评分({split * 100}%)结果为:{socore[1]}')
- def set_Feature():
- global X_OUT
- X_OUT.set(get_Name())
- def set_Label():
- global Y_OUT
- Y_OUT.set(get_Name())
- def set_Learner():
- global ML_OUT
- ML_OUT.set(get_Learner(True))
- def get_Learner(Type=False):
- global Learn_Dic, ML_BOX, ML_OUT
- if Type:
- try:
- return list(Learn_Dic.keys())[ML_BOX.curselection()[0]]
- except:
- try:
- return list(Learn_Dic.keys)[0]
- except:
- return get_Learner(False)
- else:
- try:
- return ML_OUT.get()
- except:
- return None
- def Add_Des(): # 添加Lenear的核心
- Add_leaner('Statistics')
- def Add_corr():
- Add_leaner('Correlation')
- def Add_MatrixScatter():
- Add_leaner('MatrixScatter')
- def Add_View_data():
- ML.Add_View_data(get_Learner(), Text=get_Args_Learner())
- Update_Leaner()
- def Add_ClusterTree():
- Add_leaner('ClusterTree')
- def Add_FeatureY_X():
- Add_leaner('FeatureY-X')
- def Add_Numpy_To_HeatMap():
- Add_leaner('HeatMap')
- def Add_Predictive_HeatMap_More(): # 添加Lenear的核心
- ML.Add_Predictive_HeatMap_More(get_Learner(), Text=get_Args_Learner())
- Update_Leaner()
- def Add_Predictive_HeatMap(): # 添加Lenear的核心
- ML.Add_Predictive_HeatMap(get_Learner(), Text=get_Args_Learner())
- Update_Leaner()
- def Add_FeatureScatterClass_all():
- Add_leaner('FeatureScatterClass_all')
- def Add_FeatureScatter_all():
- Add_leaner('FeatureScatter_all')
- def Add_FeatureScatterClass():
- Add_leaner('FeatureScatterClass')
- def Add_FeatureScatter():
- Add_leaner('FeatureScatter')
- def Add_ClassBar():
- Add_leaner('ClassBar')
- def Add_DBSCAN():
- Add_leaner('DBSCAN')
- def Add_Agglomerative():
- Add_leaner('Agglomerative')
- def Add_KMeans():
- Add_leaner('k-means')
- def Add_MLP_class():
- Add_leaner('MLP_class')
- def Add_MLP():
- Add_leaner('MLP')
- def Add_SVR():
- Add_leaner('SVR')
- def Add_SVC():
- Add_leaner('SVC')
- def Add_GradientTree():
- Add_leaner('GradientTree')
- def Add_GradientTree_class():
- Add_leaner('GradientTree_class')
- def Add_TSNE():
- Add_leaner('t-SNE')
- def Add_NMF():
- Add_leaner('NMF')
- def Add_LDA():
- Add_leaner('LDA')
- def Add_KPCA():
- Add_leaner('KPCA')
- def Add_RPCA():
- Add_leaner('RPCA')
- def Add_PCA():
- Add_leaner('PCA')
- def Add_Missed():
- Add_leaner('Missed')
- def Add_Label():
- Add_leaner('Label')
- def Add_OneHotEncoder():
- Add_leaner('OneHotEncoder')
- def Add_Discretization():
- Add_leaner('Discretization')
- def Add_Binarizer():
- Add_leaner('Binarizer')
- def Add_Regularization():
- Add_leaner('Regularization')
- def Add_Fuzzy_quantization():
- Add_leaner('Fuzzy_quantization')
- def Add_Mapzoom():
- Add_leaner('Mapzoom')
- def Add_sigmodScaler():
- Add_leaner('sigmodScaler')
- def Add_decimalScaler():
- Add_leaner('decimalScaler')
- def Add_atanScaler():
- Add_leaner('atanScaler')
- def Add_LogScaler():
- Add_leaner('LogScaler')
- def Add_MinMaxScaler():
- Add_leaner('MinMaxScaler')
- def Add_Z_Score():
- Add_leaner('Z-Score')
- def Add_Forest():
- Add_leaner('Forest')
- def Add_Forest_class():
- Add_leaner('Forest_class')
- def Add_Tree_Class():
- Add_leaner('Tree_class')
- def Add_Tree():
- Add_leaner('Tree')
- def Add_SelectKBest():
- Add_leaner('SelectKBest')
- def Add_Knn_Class():
- Add_leaner('Knn_class')
- def Add_LogisticRegression():
- Add_leaner('LogisticRegression')
- def Add_Lasso():
- Add_leaner('Lasso')
- def Add_Variance():
- Add_leaner('Variance')
- def Add_Knn():
- Add_leaner('Knn')
- def Add_Ridge():
- Add_leaner('Ridge')
- def Add_Line():
- Add_leaner('Line')
- def Add_SelectFrom_Model(): # 添加Lenear的核心
- ML.Add_SelectFrom_Model(get_Learner(), Text=get_Args_Learner())
- Update_Leaner()
- def Add_leaner(Type): # 添加Lenear的核心
- ML.Add_Learner(Type, Text=get_Args_Learner())
- Update_Leaner()
- def Update_Leaner():
- global Learn_Dic, ML_BOX
- Learn_Dic = ML.Return_Learner()
- ML_BOX.delete(0, tkinter.END)
- ML_BOX.insert(tkinter.END, *Learn_Dic.keys())
- def Show_One():
- global PATH, to_HTML_Type
- Dic = f'{PATH}/$Show_Sheet.html'
- try:
- name = get_Name()
- if name == None: raise Exception
- ML.to_Html_One(name, Dic)
- webbrowser.open(Dic)
- except:
- # pass
- raise
- def Show():
- global PATH, to_HTML_Type
- Dic = f'{PATH}/$Show_Sheet.html'
- try:
- name = get_Name()
- if name == None: raise Exception
- ML.to_Html(name, Dic, to_HTML_Type.get())
- webbrowser.open(Dic)
- except:
- pass
- def to_CSV():
- global top, Seq_Input, Code_Input, str_must, Index_must
- Dic = asksaveasfilename(title='选择保存的CSV', filetypes=[("CSV", ".csv")])
- Seq = Seq_Input.get()
- name = get_Name()
- ML.to_CSV(Dic, name, Seq)
- Update_BOX()
- def Add_CSV():
- global top, Seq_Input, Code_Input, str_must, name_Input
- Dic = askopenfilename(title='选择载入的CSV', filetypes=[("CSV", ".csv")])
- if Dic == '': return False
- Seq = Seq_Input.get()
- Codeing = Code_Input.get()
- str_ = bool(str_must.get())
- name = name_Input.get().replace(' ', '')
- if name == '':
- name = os.path.splitext(os.path.split(Dic)[1])[0]
- print(name)
- if Codeing == '':
- with open(Dic, 'rb') as f:
- Codeing = chardet.detect(f.read())['encoding']
- if Seq == '': Seq = ','
- ML.read_csv(Dic, name, Codeing, str_, Seq,)
- Update_BOX()
- def Add_Python():
- global top, Seq_Input, Code_Input, str_must, Index_must
- Dic = askopenfilename(title='选择载入的py', filetypes=[("Python", ".py"), ("Txt", ".txt")])
- name = name_Input.get().replace(' ', '')
- if name == '':
- name = os.path.splitext(os.path.split(Dic)[1])[0]
- with open(Dic, 'r') as f:
- ML.Add_Python(f.read(), name)
- Update_BOX()
- def get_Name(Type=True, x=True): # 获得名字统一接口
- global Form_List, Form_BOX, X_OUT
- if Type:
- try:
- return Form_List[Form_BOX.curselection()[0]]
- except:
- try:
- return Form_List[0]
- except:
- return None
- else:
- try:
- if x:
- return X_OUT.get()
- else:
- return Y_OUT.get()
- except:
- return None
- def Update_BOX():
- global top, Form_BOX, Form_List
- Form_List = list(ML.get_Form().keys())
- Form_BOX.delete(0, tkinter.END)
- Form_BOX.insert(tkinter.END, *Form_List)
- def Creat_TextSheet(data, name):
- global bg
- new_top = tkinter.Toplevel(bg=bg)
- new_top.title(name)
- new_top.geometry('+10+10') # 设置所在位置
- text = ScrolledText(new_top, font=('黑体', 13), height=50)
- text.pack(fill=tkinter.BOTH)
- text.insert('0.0', data)
- text.config(state=tkinter.DISABLED)
- new_top.resizable(width=False, height=False)
|