[PYTHON] Ingénierie des fonctionnalités des prévisions financières: quelles sont les fonctionnalités des prévisions financières?

Préface

Salut, c'est KO. Merci de toujours regarder. Si vous êtes un investisseur et que vous parlez constamment d'étiquetage financier, vous pensez probablement à votre stratégie d'investissement et à ce que vous pouvez faire pour l'analyser. Je pense que de nombreux investisseurs analyseront d'abord le marché et réfléchiront à la stratégie d'investissement, mais ici c'est le contraire, dans le machine learning financier, il est plus courant de penser à la stratégie d'investissement et de l'adapter ensuite au marché. Je pense. (Peut-être que ça ne s'applique qu'à moi, même si c'est général (rires)

Les références sont ici.

Principes de base du concept de quantité de caractéristiques

Tout d'abord, décidez d'une stratégie d'investissement et étiquetez-la. Puis backtest. En fait, cela ne fait rien. Même si vous obtenez de bons résultats ici, cela peut arriver, et je pense que ce à quoi vous devez penser pour la faire fonctionner est "** Cette stratégie sera-t-elle valable dans le futur?" .. En d'autres termes, le backtesting lui-même ne garantit pas la performance, il montre simplement la stratégie d'investissement sur le marché passé. Parlons ici des relations logiques importantes. "Stratégie toujours rentable" ⇒ "La stratégie est rentable même dans le passé" Cette relation logique est correcte, mais le contraire n'est clairement pas vrai. Cela semble dur, mais pour l'appliquer dans la pratique, il est nécessaire d'analyser sur la base de ce principe. En d'autres termes, nous pensons que la quantité de caractéristiques est une variable qui rend la stratégie d'investissement plus adaptée au marché. C'est une verge d'or pour un démon.

Définition dans l'ingénierie des quantités d'objets

Dans l'exemple: données d'entraînement Hors échantillon: données de test Effet de substitution: effet qui se produit lorsque l'importance estimée d'une caractéristique est réduite par la présence d'une autre caractéristique associée.

Importance des fonctionnalités en raison de l'effet de substitution

Diminution moyenne des impuretés

MDI (: = Mean Decrease Impurity) est une méthode de mesure de l'importance de l'explication avec un échantillon spécifique à un classificateur basé sur un arbre tel qu'un arbre aléatoire (: = RF). En d'autres termes, comment trouver la quantité de caractéristiques lorsqu'il y a de nombreuses caractéristiques_importance de RF. Tout d'abord, je vais expliquer la méthode MDI à travers le code.

def featImpMDI(fit, featNames):
    df0 = {i: tree.feature_importances_ for i, tree in enumerate(fit.estimators_)}
    df0 = pd.DataFrame.from_dict(df0, orient='index')
    df0.columns = featNames
    df0 = df0.replace(0, np.nan)
    imp = pd.concat({'mean':df0.mean(), 'std':df0.std()*df0.shape[0]**-.5}, axis=1)
    imp /= imp['mean'].sum()
    return imp

Tout d'abord, préparez quelques fonctionnalités. Ici, dans cette méthode, les quatre premières lignes du dataframe model.feature_importances_ du modèle déjà ajusté. Puisqu'il s'agit d'un arbre aléatoire, l'importance des caractéristiques est calculée pour chaque grand nombre d'arbres. Ici, pour le montant de la fonction affiché comme «0», définissez-le sur «np.nan». Cela permet de définir l'importance maximale de la quantité de caractéristiques sur «1». Après cela, la moyenne et l'écart type sont calculés pour la direction de ligne (axe = 1), et ils sont générés en tant que quantité d'entités moyenne. L'utilisation de base est présentée ci-dessous pour ceux qui n'ont jamais utilisé d'arbre aléatoire.

from sklearn.ensemble import RandomForestClassifier as RF

model = RF(max_features=1)
model.fit(X_train, y_train)
model.feature_importances_

Comment choisir des paramètres d'arbre aléatoires

Conclusion

Cette fois, j'ai présenté le positionnement des quantités de caractéristiques dans la finance et les éléments à prendre en compte dans les prévisions. Il s'agira d'un exposé technique sur la manière de contribuer à la stratégie d'investissement par la méthode d'évaluation de la quantité de caractéristiques, je voudrais donc l'introduire lentement à l'avenir.

Recommended Posts

Ingénierie des fonctionnalités des prévisions financières: quelles sont les fonctionnalités des prévisions financières?
Qu'est-ce que l'étiquetage dans les prévisions financières?
[Minecraft] Quels sont les éléments importants de la survie?
L'ingénierie financière a vérifié l'affirmation selon laquelle «les fiducies de placement à effet de levier sont désavantageuses dans un marché volatil»
Utiliser des fonctionnalités qui ne sont plus visibles sur l'interface utilisateur de Slack
Quels sont le "pipeline" et "{...}" dans le pipeline Jenkins Pipeline {...} (pour les débutants Groovy, pour les langages expérimentés)
Utilisez les fonctionnalités de type évoluées dans Sphinx-2.4
Qu'est-ce que "mahjong" dans la bibliothèque Python? ??
Quelle est la raison pour laquelle l'homme n'affiche pas les commandes de base en japonais?
Ingénierie des fonctionnalités pour l'apprentissage automatique à partir du 4e Google Colaboratory - Fonctionnalités interactives
Vérifiez si les caractères sont similaires en Python
[Python] Avant le trait de soulignement (underbar) Quelles sont les deux fonctions?
Qu'est-ce que wheezy dans l'image Docker Python?
Déterminer s'il y a des oiseaux dans l'image