Из проведенного исследования я думаю, потому что в моих функциях есть поплавки. Я не могу показать свои данные из-за их конфиденциальности, но они выглядят так:
Функция 1 (int), функция 2,3 (горячая кодировка cat-one), функции 4,5,6 (с плавающей запятой)
Код
#Importing dependencies
import numpy as np
import pandas as pd
import glob
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.model_selection import RandomizedSearchCV
#Reading multiple CSV files into 1 DF
list_csv= []
for file in glob.glob('C:/Users/Muhammad Ashraf Khan/Documents/Projects/*.csv'):
df = pd.read_csv(file, index_col=None, header=0)
list_csv.append(df)
data = pd.concat(list_csv, axis=0, ignore_index=True)
#input features
Features=fd.drop("Target",axis=1)
#output feature
y=fd["Target"]
print(y.shape)
#One hot encoding
from sklearn.preprocessing import OneHotEncoder,LabelEncoder
ohe=OneHotEncoder()
encoded_var=ohe.fit_transform(Features[["col 2","col 3"]]).toarray()
from sklearn.compose import make_column_transformer
column_trans=make_column_transformer(
(OneHotEncoder(),["col 2","col 3"]))
X=column_trans.fit_transform(Features)
#Feature Importance
from sklearn.ensemble import ExtraTreesClassifier
model = ExtraTreesClassifier()
model.fit(X,y)
print(model.feature_importances_)
feat_importances = pd.Series(model.feature_importances_, index=X.columns)
feat_importances.nlargest(10).plot(kind='barh')