Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas as pd
- from sklearn.ensemble import ExtraTreesClassifier
- # МЕТОД ПОИСКА С АДАПТАЦИЕЙ
- dataset_array = pd.read_csv(
- 'dataset3.csv',
- delimiter=',',
- names=['NameOfUser', 'Q1', 'Q2',
- 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8',
- 'Q9', 'Q10', 'Q11', 'Q12', 'Q13']
- )
- print(dataset_array)
- dataset_array['average'] = dataset_array.iloc[:, 12:].astype(float).mean(axis=1) # добавление нового столбца с
- # средними значениями для каждого чела
- dataset_array['R'] = [1 if x > 0.85 else 2 if 0.6 <= x <= 0.85 else 3 if 0.3 <= x <= 0.6 else 4 for x in dataset_array['average']]
- # добавление столбца с классификатором.
- # 1 - талант, 2 - хороший творч. потенц., 3 - есть задатки, 4 - нет творч. потенц.
- print(dataset_array)
- # раздаем каждому признаку коэф. важности
- dataset_values = dataset_array.values
- X, Y = dataset_values[:, 1:11], dataset_values[:, 15] # берем Q от 1 до 10
- Y = Y.astype('int') # целевое значение, чем ближе к average, тем выше коэф. важности у каждого Q
- model = ExtraTreesClassifier() # строим лес
- model.fit(X, Y)
- ratingArray = model.feature_importances_ # раздаем коэф. важности
- ratingArray = list(ratingArray) # на выходе имеем массив ratingArray с коэф. важности для каждого Q
- print(ratingArray)
- # удаление признаков с коэф. важности < limit
- k = 1
- limit = 0.08 # задаем лимит коэф. важности
- for x in ratingArray: # проверяем рейтинг каждого Q (Q1, Q2, Q3, ...)
- if x < limit:
- min = x
- min_index = ratingArray.index(min) + k
- print(dataset_array.columns[min_index])
- dataset_array, k = dataset_array.drop(dataset_array.columns[min_index], axis=1), k-1 # удаляем столбец, уменьшаем k на 1
- dataset_array.to_csv('dataset4.csv', index=False) # сохраняем в csv
- print(dataset_array)
- with open('finish.txt', 'w') as outfile: # сохраняем в txt
- dataset_array.to_string(outfile, columns=dataset_array.columns)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement