-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMainFunction.py
More file actions
187 lines (148 loc) · 7.12 KB
/
Copy pathMainFunction.py
File metadata and controls
187 lines (148 loc) · 7.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# coding: utf-8
# test1 for compression test
import QuickFunction
def main(method=1, model=0, smooth=0):
# 文件目录
filetrace = r'C:\Users\liuhanqing\Desktop\research\Academic conference\data\Frequency Smoothing\event-150ms\AE'
# 处理用的文件名,若没有DeNoise,则先用method=3生成DeNoise文件
filename = r'TWIN-training-Mg-Test1-EVT40dB-DeNoise'
# 对生成文件进行标记
filename_mark = ''
# file_cluster是所有函数用于处理的文件
file_cluster = filetrace + '\\' + filename + '.csv'
# 放event文件的文件夹路径
filetrace_file_cluster = filetrace + '\\' + filename
# SVM 中训练模型文件
# twin和kink文件名
filename_twin = r'TWIN-training-Mg-Test1-EVT40dB-DeNoise'
filename_kink = r'KINK-train-LPSOMg-0deg-Test1-EVT43dB-DeNoise'
file_twin = filetrace + '\\' + filename_twin + '.csv'
file_kink = filetrace + '\\' + filename_kink + '.csv'
# twin和kink中event文件路径
filetrace_twin = filetrace + '\\' + filename_twin
filetrace_kink = filetrace + '\\' + filename_kink
# 用于制图所用表格的文件
file = filetrace + '\\' + filename + '.csv'
# 调用svm机器学习,生成:
# 1.训练模型中不同cluster的平均频谱
# 2.分类结果的label,对应DeNoise文件的顺序
if method == 0:
QuickFunction.svm_machine_learn_no_model(file_twin, file_kink, file_cluster, filetrace_twin, filetrace_kink,
filetrace_file_cluster, filetrace, filename_mark, smooth)
print('svm machine learning 0 over!')
# 直接导入模型
if method == 1:
QuickFunction.svm_machine_learn_model(file_cluster, filetrace_file_cluster, filetrace, smooth)
print('svm machine learning 1 over!')
# 调用K-Means机器学习
if method == 2:
QuickFunction.kmeans_machine_learn(file_cluster, filetrace, filetrace_file_cluster, smooth, cluster=3)
print('kmeans machine learning over!')
# ==================================
# 生成各种制图文件
# DeNoise
# voice_speed: 纯Mg = 4.8, 纯Zn = 4.2, 纯LPSO = 5.5
voice_speed = 4.8
if method == 3:
filename = r'TWIN-training-Mg-Test1-EVT40dB'
file = filetrace + '\\' + filename + '.csv'
QuickFunction.denoise(file, filetrace, filename, voice_speed, channel=1)
print('denoise over!')
# position-time
if method == 4:
QuickFunction.p_t(file, filetrace, filename, voice_speed, channel=1)
print('p_t over!')
# peak-frequency-time
if method == 5:
QuickFunction.p_f_t(file, filetrace, filename, channel=1)
print('p_f_t over!')
# amplitude-counts
if method == 6:
QuickFunction.a_c(file, filetrace, filename, channel=1)
print('a_c over!')
# time - counts
if method == 7:
QuickFunction.t_c(file, filetrace, filename, channel=1)
print('t_c over!')
# SVM number-time of different cluster
if method == 8:
# 获得分类结果
# 没模型的情况
if model == 0:
label = QuickFunction.svm_machine_learn_no_model(file_twin, file_kink, file_cluster, filetrace_twin,
filetrace_kink, filetrace_file_cluster, filetrace, filename_mark, smooth)
print('svm machine learning model-0 over!')
QuickFunction.n_t_c(file_cluster, filetrace, filename, label)
# 有模型的情况
if model == 1:
label = QuickFunction.svm_machine_learn_model(file_cluster, filetrace_file_cluster, filetrace, smooth)
print('svm machine learning model-1 over!')
QuickFunction.n_t_c(file_cluster, filetrace, filename, label)
# Kmeans number-time of different cluster
if method == 9:
# 获得分类结果
label = QuickFunction.kmeans_machine_learn(file_cluster, filetrace, filetrace_file_cluster, smooth, cluster=3)
print('kmeans machine learning over!')
# 生成文件
QuickFunction.n_t_c(file_cluster, filetrace, filename, label)
# 将分类结果降至二维
# ===========还没写完===========
# svm 学习
if method == 10:
# 获得分类结果
# 没模型的情况
if model == 0:
label = QuickFunction.svm_machine_learn_no_model(file_twin, file_kink, file_cluster, filetrace_twin,
filetrace_kink, filetrace_file_cluster, filetrace, filename_mark, smooth)
print('svm machine learning model-0 over!')
# 有模型的情况
if model == 1:
label = QuickFunction.svm_machine_learn_model(file_cluster, filetrace_file_cluster, filetrace, smooth)
print('svm machine learning model-1 over!')
# kmeans 学习
if method == 11:
label = QuickFunction.kmeans_machine_learn(file_cluster, filetrace, filetrace_file_cluster, smooth, cluster=3)
print('kmeans machine learning over!')
# ==============================
# 数据标准化,专门对分类后的平均频谱进行分类
if method == 12:
filename = r'SVM_averange_frequency-origin_file'
file = filetrace + '\\' + 'File after Processing' + '\\' + filename + '.csv'
QuickFunction.data_standard(file, filename, filetrace)
# 测试svm模型
if method == 13:
filename = r'KINK-test-LPSOMg-0deg-Test2-EVT38dB-DeNoise'
filetrace_file_cluster = filetrace + '\\' + filename
file = filetrace + '\\' + filename + '.csv'
QuickFunction.model_test(file, filename, filetrace, filetrace_file_cluster, smooth)
# 用模型对用建立模型的数据进行分类,查看建立模型时的分类效果, 0:twin, 1:kink
if method == 14:
filename_mark = '-origin_file'
QuickFunction.model_origin_data(file_twin, file_kink, filetrace_twin, filetrace_kink, filetrace, filename_mark, smooth)
print('model_origin_data over!')
# 说明:
# 0:svm机器学习(无model);
# 生成label并保存模型
# 1:svm机器学习(有model);
# 生成label
# 2:K-Means机器学习(默认cluster=3);
# 生成label
# 3:DeNoise;
# 需要手动设置文件名
# 4:position-time;
# 5:peak-frequency-time;
# 6:amplitude-counts(简介数据是否正常,分布是否为三角形);
# 7:time - counts(所有AE的Count和Time);
# 8:SVM number-time of different cluster(model=0为无model,model=1为有model);
# 生成num_time_cluster的N_T_C文件
# 9:Kmeans number-time of different cluster;
# 10:SVM将结果将至2维进行可视化,还没写完
# 11:KMeans将结果将至2维进行可视化,还没写完
# 12:数据标准化,专门对分类后的平均频谱进行分类,需
# 要手动设置文件名
# 13:用已知信号类型的数据对模型准确性进行检测
# 14:用模型对用建立模型的数据进行分类,查看建立模型时的分类效果, 0:twin, 1:kink
#15
# model:0没有模型,1有模型;smooth:0不光滑化,1光滑化
if __name__ == '__main__':
main(method=8, model=0, smooth=1)