Je parcours itérativement le pipeline pour imprimer les 20 caractéristiques les plus informatives d'une classe appelée safety
.Empêcher la répétition de la ligne d'en-tête de trame de données pandas pour l'instruction
classnum_saf = 3
inds = np.argsort(clf_3.named_steps['clf'].coef_[classnum_saf, :])[-20:]
for i in inds:
f = feature_names[i]
c = clf_3.named_steps['clf'].coef_[classnum_saf, [i]]
print(f,c)
output = {'features':f, 'coefficients':c}
df = pd.DataFrame(output, columns = ['features', 'coefficients'])
print(df)
Je veux une trame de données avec un seul en sortie tête, mais je retourne cette sortie qui semble répéter l'en-tête, encore et encore car il est itérer [i].
1800 [-8.73800344]
features coefficients
0 1800 -8.738003
hr [-8.73656027]
features coefficients
0 hr -8.73656
wa [-8.7336777]
features coefficients
0 wa -8.733678
1400 [-8.72197545]
features coefficients
0 1400 -8.721975
hrwa [-8.71952656]
features coefficients
0 hrwa -8.719527
perimeter [-8.71173264]
features coefficients
0 perimeter -8.711733
response [-8.67388885]
features coefficients
0 response -8.673889
analysis [-8.65460329]
features coefficients
0 analysis -8.654603
00 [-8.58386785]
features coefficients
0 00 -8.583868
raw [-8.56148006]
features coefficients
0 raw -8.56148
run [-8.51374794]
features coefficients
0 run -8.513748
factor [-8.50725691]
features coefficients
0 factor -8.507257
200 [-8.50334896]
features coefficients
0 200 -8.503349
file [-8.39990841]
features coefficients
0 file -8.399908
pb [-8.38173753]
features coefficients
0 pb -8.381738
mar [-8.21304343]
features coefficients
0 mar -8.213043
1998 [-8.21239836]
features coefficients
0 1998 -8.212398
signal [-8.02426499]
features coefficients
0 signal -8.024265
area [-8.01782987]
features coefficients
0 area -8.01783
98 [-7.3166918]
features coefficients
0 98 -7.316692
Comment puis-je retourner un data frame
comme:
features coefficients
0 1800 -8.738003
.. ... ...
18 area -8.01783
19 98 -7.316692
En ce moment, quand je reviens impression (d, f), il montre les principales valeurs suivantes:
1800 [-8.73800344]
hr [-8.73656027]
wa [-8.7336777]
1400 [-8.72197545]
hrwa [-8.71952656]
perimeter [-8.71173264]
response [-8.67388885]
analysis [-8.65460329]
00 [-8.58386785]
raw [-8.56148006]
run [-8.51374794]
factor [-8.50725691]
200 [-8.50334896]
file [-8.39990841]
pb [-8.38173753]
mar [-8.21304343]
1998 [-8.21239836]
signal [-8.02426499]
area [-8.01782987]
98 [-7.3166918]
Je fait des recherches quelques questions similaires here, here, et here, mais il ne semble pas directement répondre à ma question.
Nous vous remercions à l'avance, encore à apprendre ici.
vous remercions de votre aide! votre c est une liste alors que la mienne est un numpy.ndarray. Cela peut expliquer mon erreur lors de l'exécution, "l'index 1169 est hors limites pour l'axe 0 avec la taille 1". Je suppose que je dois transformer c en une liste? – baldr009
Vous pouvez essayer, mais je pense que cela peut fonctionner aussi bien avec ndarray. Le mieux est d'essayer de changer f et c en ndarrays et de le tester. – jezrael