55 lines
1.7 KiB
Python
55 lines
1.7 KiB
Python
# frofrom Qtorch.Functions import dLoader
|
|
from Qtorch.Models.Qmlp import Qmlp
|
|
from Qfunctions.divSet import divSet
|
|
from Qfunctions.loaData import load_data as dLoader
|
|
from sklearn.decomposition import PCA
|
|
|
|
def main():
|
|
projet_name = '20241009MaterialDiv'
|
|
label_names =["Acrylic", "Ecoflex", "PDMS", "PLA", "Wood"]
|
|
data = dLoader(projet_name, label_names, isDir=True)
|
|
X_train, X_test, y_train, y_test, encoder = divSet(
|
|
data=data, labels=label_names, test_size= 0.3
|
|
)
|
|
|
|
print(y_train)
|
|
|
|
import pandas as pd
|
|
pca = PCA(n_components=2) # 保留两个主成分
|
|
principalComponents = pca.fit_transform(X_train)
|
|
df_pca2d = pd.DataFrame(data=principalComponents, columns=['PC1', 'PC2'])
|
|
df_pca2d['labels'] = y_train
|
|
|
|
pca = PCA(n_components=3) # 保留三个主成分
|
|
principalComponents = pca.fit_transform(X_train)
|
|
df_pca3d = pd.DataFrame(data=principalComponents, columns=['PC1', 'PC2', 'PC3'])
|
|
df_pca3d['labels'] = y_train
|
|
|
|
# 保存为xlsx文件
|
|
import os
|
|
folder = os.path.join("./Result", projet_name)
|
|
if not os.path.exists(folder):
|
|
os.makedirs(folder)
|
|
df_pca2d.to_excel(os.path.join(folder, 'pca_2d_points_with_labels.xlsx'), index=False)
|
|
df_pca3d.to_excel(os.path.join(folder, 'pca_3d_points_with_labels.xlsx'), index=False)
|
|
|
|
|
|
model = Qmlp(
|
|
X_train=X_train, X_test=X_test, y_train=y_train, y_test= y_test,
|
|
hidden_layers=[128, 128],
|
|
dropout_rate=0
|
|
)
|
|
model.fit(300)
|
|
|
|
cm = model.get_cm()
|
|
epoch_data = model.get_epoch_data()
|
|
|
|
from Qfunctions.saveToxlsx import save_to_xlsx as stx
|
|
stx(project_name=projet_name, file_name="cm", data=cm )
|
|
stx(project_name=projet_name, file_name="acc_and_loss", data=epoch_data)
|
|
|
|
print("Done")
|
|
|
|
if __name__ == '__main__':
|
|
main()
|