File size: 3,581 Bytes
15fb3d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3616471
15fb3d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from warnings import filterwarnings
filterwarnings("ignore")
import h5py
import numpy as np
import pandas as pd
#f=h5py.File('/content/drive/MyDrive/inputCONFIG02h2NOISE3-5000.mat','r')
#mat=scipy.io.loadmat('/content/drive/MyDrive/inputCONFIG02h2NOISE3-5000.mat')
with h5py.File('inputCONFIG02h2NOISE3-5000.mat','r') as file:
  for key in file.keys():
      print (key)
  data=file['Rdnoise'] [:]
  print(data)
  print (len(data))
  data_frame=pd.DataFrame(data)
  #data_frame.to_csv('data_frame_KH.csv')

#---------------------------------------------------------------------------
import pandas as pd

# تعداد کل فیچرها
num_features = 12012
# تعداد فیچرها در هر دسته
features_per_category = 1000

# ایجاد لیست جدید برای نام ستون‌ها
new_column_names = []

# حروف الفبا برای دسته‌بندی
categories = 'abcdefghijkm'

# تولید نام‌های جدید
for letter in categories:
    for i in range(0, features_per_category + 1):
        new_column_names.append(f"{letter}{i}")

# اطمینان از اینکه تعداد نام‌های جدید مطابق با تعداد ستون‌هاست
new_column_names = new_column_names[:num_features]

# تغییر نام ستون‌ها
data_frame.columns = new_column_names

#-----------------------------------------------------------------------
import scipy.io
import h5py
import numpy as np
import pandas as pd
#f=h5py.File('/content/drive/MyDrive/inputCONFIG02h2NOISE3-5000.mat','r')
#mat=scipy.io.loadmat('/content/drive/MyDrive/inputCONFIG02h2NOISE3-5000.mat')
with h5py.File('targetCONFIG02h2NOISE3-5000.mat','r') as file:
  for key in file.keys():
      print (key)
  data=file['re'] [:]
  print(data)
  print (len(data))
  data_frame_T=pd.DataFrame(data)
  
  #data_frame.to_csv('data_frame_KH.csv')



#---------------------------------------------------------------------------------------

import pandas as pd

# تعداد کل فیچرها
num_features = 116
# تعداد فیچرها در هر دسته
features_per_category = 116

# ایجاد لیست جدید برای نام ستون‌ها
new_column_names = []

# حروف الفبا برای دسته‌بند
categories = 't'

# تولید نام‌های جدید
for letter in categories:
    for i in range(1, features_per_category + 1):
        new_column_names.append(f"{letter}{i}")

# اطمینان از اینکه تعداد نام‌های جدید مطابق با تعداد ستون‌هاست
new_column_names = new_column_names[:num_features]

# تغییر نام ستون‌ها
data_frame_T.columns = new_column_names



#---------------------------------------------------------------------------

from sklearn.neighbors import KNeighborsClassifier
from mlxtend.feature_selection import SequentialFeatureSelector as SFS

# Assuming data_frame and data_frame_T are already defined
X = data_frame.iloc[:, 0:8002]

knn = KNeighborsClassifier()
#    y = data_frame_T[column]
# Loop over each column in data_frame_T
for column in data_frame_T.columns[80:116]:

   
    y = data_frame_T[column]
    sfs = SFS(knn,
              k_features=50,
              forward=True,
              floating=False,
              verbose=2,
              scoring='accuracy',
              cv=0)
    
    sfs = sfs.fit(X, y)
    
    print(f'Results for target column: {column}')
    print('Best accuracy score: %.2f' % sfs.k_score_)
    print('Best subset (indices):', sfs.k_feature_idx_)
    print('Best subset (corresponding names):', sfs.k_feature_names_)
    print('-' * 50)