Skip to main content

Les cotes de dettes et les notations de la dette clés ont une gamme de modèles de classement, avec le modèle de notation principale qui sera exprimé dans «quatre cartes», qui est une carte, une carte B, C et une carte F; Le modèle de notation de la dette suit souvent des thèmes d'utilisation financière, divisé en modèles financiers de la société, modèle financier des flux de trésorerie et modèle financier de projet.


Nous discutons principalement du processus de développement du modèle de classement principal.


Le modèle de pointage de crédit typique suivant montre:


Modèle de pointage de processus de développement

Le Processus de développement principal du modèle de classement des risques de crédit est le suivant:


1. Collecte de données


Obtenir des données des clients de titres et des clients potentiels.


Les clients des titres font référence aux clients qui ont mis en œuvre des services financiers pertinents dans des sociétés de valeurs mobilières, y compris des clients individuels et des clients mécaniquesMandarin; Les clients potentiels se réfèrent aux clients qui ont intégré les opérations financières dans les sociétés de valeurs mobilières à l'avenir, notamment des agences de la clientèle, il s'agit également d'une méthode courante pour résoudre de petits échantillons que. Ces organisations potentielles incluent des sociétés cotées, des obligations publiques et des sociétés inscrivant trois nouvelles tables, des centres de négociation équitables, des institutions financières non standard, etc.
2. Traitement des données

L'opération principale comprend le nettoyage des données, l'absence de manutention de la valeur, la gestion anormale de la valeur, principalement pour transférer la modification des données brutes pouvant être utilisées comme données de format développées par le maquette.

3. Analyse des données d'exploration


Cette étape consiste principalement à obtenir la situation globale de l'échantillon et des indicateurs décrivant la situation générale de l'échantillon principal contient des graphiques, un - Boîte à graphique en forme, etc.


4. Sélectionnez Variables

Cette étape est principalement à travers les méthodesLes statistiques et indicateurs les plus importants sur les effets de l'état par défaut sont sélectionnés. La plupart du temps a une méthode et une méthode de choix de transformations uniques basées sur le modèle de modélisation.
5. Développement de modèle

Cette étape se compose principalement de trois parties: des segments changeants, transformant l'estimation de la régression normalisée et logique américaine).


6. Évaluation du modèle

Cette étape consiste principalement à évaluer la différence, la prévisibilité, stabiliser et former un rapport de notation modèle pour supprimer le modèle. Conclure.
7. Scores de crédit

Un procédé de détermination des points de crédit basés sur la régression logique et les coefficients de régression de la malheur et similaires. Convertir des modèles logistiques en points standard.

8. Définition d'un système de points


En fonction du mode de crédit, le système de pointage de crédit automatique est défini.
II. Recueillir des données


Données de Kaggle's pour moi Quelque crédit: https: // www.Kaggle.com/givemesomecredit / données
Il y a 150 000 données d'échantillonnage. La figure suivante peut être vue à partir des données suivantes:





Les données appartiennent aux données Les prêts de consommation personnels et de données ne peuvent être utilisés que lorsque le dernier pointage de crédit est déployé et que les données doivent être extraites de certains aspects:
Attribut de base: Il comprend l'âge des emprunteurs.
Legoyer: Comprend un revenu mensuel des emprunteurs et des ratios de dette.

TUTEURS DE CRÉDIT: 35-59 jours pendant deux ans, 60 à 89 jours pendant deux ans, 90 jours en deux ans ou plus de 90 jours depuis plus de 90 jours.

Statut des biens: y compris la quantité de crédit et de prêt ouvert, des prêts immobiliers ou des quotas.
Propriétés du prêt: Non.

Autres facteurs: incluez le nombre de familles de l'emprunteur (non compris).

Fenêtre TIME: La fenêtre d'observation de la variable est au cours des deux dernières années, en raison de la fenêtre de performance variable au cours des deux prochaines années.
III. TonneProcesseur de données


Avant de traiter les données n'est traitée, il est nécessaire de comprendre la valeur inhabituelle des données à comprendre.


Il existe une fonction de description () en Python, vous pouvez comprendre la valeur manquante, moyenne et moyenne du jeu de données.


Détails de l'ensemble de données:


Détails

Je peux voir que les variables et les codes hebdomadaires ont manqué: Hebdomadaire Il y a un total de 29 731 valeurs manquantes

numériques ont 3924 valeurs manquantes

1. Traitement de la valeur répertoriée


] Cette situation est très populaire dans des problèmes pratiques Cela conduira à certaines méthodes analytiques qui ne peuvent pas gérer les valeurs manquantes. Par conséquent, dans le premier classement des risques de crédit dans le modèle de développement, nous devons faire une valeur manquante.

Supprimer la méthode de manutention de la valeur, y compris les manières suivantes: #载入数据data = pd.read_csv('cs-training.csv')#数据集确实和分布情况data.describe().to_csv('DataDescribe.csv')
Retirez les échantillons contenant directement les valeurs manquantes

Remplir le manque de tHIEU précieux en fonction de la similitude entre la forme

relativité entre les variables remplies de la valeur manquante

La variable hebdomadaire est relativement grande, nous remplissons donc la valeur manquante en fonction de la relation entre les variables Nous utilisons une loi aléatoire forestière:


Nombre de variables relativement petites, la suppression directe, n'aura pas beaucoup d'impact sur le modèle global. Après avoir supprimé la valeur manquante, supprimez la répétition.


2. Valeur d'exception de traitement

Une fois la valeur manquante traitée, nous devons également effectuer un traitement de valeur inhabituelle. Les valeurs anomaliques font référence à la valeur numérique clairement déviée de la plupart des données d'échantillonnage.


Lorsque l'ère des clients individuels est 0, cette valeur est souvent considérée comme une valeur d'exception. Apprenez la valeur d'exception globale dans l'échantillon, utilisez souvent la méthode de détection de retard.
Tout d'abord, nous avons constaté qu'avoir 0 en âge de tourner, évidemment un prixÉlimination inhabituelle et directe:

Pour les trois variables suivantes:




NumberSoTime30-59DayStastduenotworse
NumberSoft60DaySlate
NumberSoftime60-89daystchstDuenotworse

# 用随机森林对缺失值预测填充函数def set_missing(df): # 把已有的数值型特征取出来 process_df = df.ix[:,[5,0,1,2,3,4,6,7,8,9] # 分成已知该特征和未知该特征两部分 known = process_df[process_df.MonthlyIncome.notnull()].as_matrix() unknown = process_df[process_df.MonthlyIncome.isnull()].as_matrix() # X为特征属性值 X = known[:, 1:] # y为结果标签值 y = known[:, 0] # fit到RandomForestRegressor之中 rfr = RandomForestRegressor(random_state=0, n_estimators=200,max_depth=3,n_jobs=-1) rfr.fit(X,y) # 用得到的模型进行未知特征值预测 predicted = rfr.predict(unknown[:, 1:]).round(0) print(predicted) # 用得到的预测结果填补原缺失数据 df.loc[(df.MonthlyIncome.isnull()), 'MonthlyIncome'] = predicted return df

data=set_missing(data)#用随机森林填补比较多的缺失值data=data.dropna()#删除比较少的缺失值data = data.drop_duplicates()#删除重复项data.to_csv('MissingData.csv',index=False)








# 年龄等于0的异常值进行剔除data = data[data['age'] > 0]] Ces variables sont visibles à partir du diagramme de la boîte, toutes ont des valeurs exceptionnelles et des fonctions uniques pouvant savoir que deux valeurs inhabituelles, elles sont donc supprimées. Dans le même temps, il trouvera que 96,98 la valeur de l'une des variables et de 96,98 valeurs d'autres variables seront également supprimées en conséquence.




. De plus, les clients sont 0, le client par défaut est 1, prendre en compte la compréhension normale, le client peut modifier et payer l'intérêt est de 1, donc nous l'inverserons.

3. Divisez les données

pour vérifier l'effet approprié du modèle, nous devons couperP Data. Divisé en ministères et testeurs de formation.

IV. Analyse minière


Avant de définir un modèle, nous vous référons souvent à l'analyse de données existante (données d'exploration) disponibles).
EDA faisant référence à l'exploration des données existantes (en particulier des données originales de l'enquête ou de l'observation) pour explorer des hypothèses moins prioritaires. Les méthodes d'analyse de données d'exploration couramment utilisées sont les suivantes: graphique, carte distribuée au lot et carte de la ligne, V.V.




Si la distribution d'âge est représentée dans l'image ci-dessus, on peut voir que la variable d'âge distribue de manière significative la distribution normale, adaptée aux hypothèses analytiques statistiques.

#剔除异常值data = data[data['NumberOfTime30-59DaysPastDueNotWorse'] < 90]#变量SeriousDlqin2yrs取反data['SeriousDlqin2yrs']=1-data['SeriousDlqin2yrs']
La répartition annuelle du revenu indiqué dans l'image ci-dessus et le revenu mensuel est également souvent distribuée, conformément à l'analyse statistique.
5. Sélectionnez les variables
from sklearn.cross_validation import train_test_splitY = data['SeriousDlqin2yrs'] X = data.ix[:, 1:] #测试集占比30% X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=0) # print(Y_train) train = pd.concat([Y_train, X_train], axis=1) test = pd.concat([Y_test, X_test], axis=1) clasTest = test.groupby('SeriousDlqin2yrs')['SeriousDlqin2yrs'].count() train.to_csv('TrainData.csv',index=False) test.to_csv('TestData.csv',index=False)
Choix des fonctions variables (tri) est très importante pour analyser les données et les machines d'apprentissage de l'industrie. Options de fonctionnalitéLe bien peut améliorer les performances du modèle, nous aidant à comprendre les caractéristiques des données, la structure de base, joue un rôle important dans l'amélioration des modèles et des algorithmes supplémentaires.

Dans cet article, nous utilisons la méthode de sélection de la variable de modèles de pointage de crédit. Grâce à la méthode d'analyse WOO, il est déterminé si l'indicateur est conforme à la signification économique en comparant la division par défaut de la boîte de séparation des indicateurs et dans le sens antihoraire. Nous enlevons d'abord les variables (boîtes fractionnées).

1. Traitement de courtage

Binning est la conception de changement continu (discrète).

Le développement de scores de crédit utilise généralement souvent des segments équivalents, un segment de notaire, un segment optimal.
Segment isométrique: le temps du segment convient, tel que l'âge qu'un segment de la décennie; Période de fréquence égale: d'abord, déterminez le nombre de segments, puis apportez des donnéesDans chaque segment égal;

Binning optimal: également appelé distinction de surveillance, divisant les variables continues en segments à l'aide de partitions récursives, derrière un algorithme de groupe préféré des recherches conditionnelles.


En premier lieu, nous choisissons le segment optimal des variables continues, puis envisagez des variables continues en fonction du segment d'équation lors de la distribution de variables continues sans répondre aux avantages du segment sombre.


Utilisons le segment optimal pour tourner autour de la chimie, de l'âge, de la debtratio et de la semaine dans le jeu de données. Le code de la meilleure boîte de fraction est le suivant:




RevolinessUtiliséTilizedofunSuredLines




















# 定义自动分箱函数def mono_bin(Y, X, n = 20): r = 0 good=Y.sum() bad=Y.count() - good while np.abs(r) < 1: d1 = pd.DataFrame({"X": X, "Y": Y, "Bucket": pd.qcut(X, n)}) d2 = d1.groupby('Bucket', as_index = True) r, p = stats.spearmanr(d2.mean().X, d2.mean().Y) n = n - 1 d3 = pd.DataFrame(d2.X.min(), columns = ['min']) d3['min']=d2.min().X d3['max'] = d2.max().X d3['sum'] = d2.sum().Y d3['total'] = d2.count().Y d3['rate'] = d2.mean().Y d3['woe']=np.log((d3['rate']/(1-d3['rate']))/(good/bad)) d4 = (d3.sort_index(by = 'min')).reset_index(drop=True) print("=" * 60) print(d4) return d4








.




# 连续变量离散化cutx3 = [ninf, 0, 1, 3, 5, pinf]cutx6 = [ninf, 1, 2, 3, 5, pinf]cutx7 = [ninf, 0, 1, 3, 5, pinf]cutx8 = [ninf, 0,1,2, 3, pinf]cutx9 = [ninf, 0, 1, 3, pinf]cutx10 = [ninf, 0, 1, 2, 3, 5, pinf]








]




Pour que ces variables ne puissent pas être une rotation de la boîte, les cases sont les suivantes: Analyse WOO, est la tendance de la boîte à indicateurs, Calcul de l'appareil KRécupérez-vous et observez la tendance de notre valeur avec le changement de l'index. La définition mathématique de Woe est la suivante: Lorsque vous analysez, nous devons organiser des indicateurs de petite à grande et la valeur malheureuse de la partition correspondant. Plus l'indicateur asexuel est grand, plus la valeur malheureuse est petite; Plus le plus grand est plus grand, plus le plus grand indicateur inverse est grand, la plus grande valeur malheureuse. La plus grande valeur malheureuse de l'indicateur de transition, plus l'indicateur inverse est grand, plus la pente positive et la zone indicatrice est séparée. Bonne force. La valeur WoO a été attaquée de la ligne droite et de la signification des chiffres plus faibles. Si l'indicateur vers l'avant et la tendance à la corrélation positive du Malheur, l'indicateur inverse a tendance à être lié négativement à la malheur, cet indice ne correspond pas au sens économique, il devrait être supprimé. 3. Analyse de corrélation et de dépistage IV Ensuite, nous utiliserons des données de nettoyage pour voir la corrélation entre les variables. Remarque: analyse des interventionsn Voici simplement une vérification préliminaire, ajoutant VI (solde des preuves) du modèle comme base pour le dépistage variable. Nous appelons la fonction Heatmap () pour dessiner à travers le python à l'intérieur de l'emballage maritime et exécuter le code comme suit: . ] La corrélation entre les variables du jeu de données Comme on peut le voir ci-dessus, la corrélation entre variables est très petite. NumberopencreditLinesAndLoans et NumberElteloansorlines ont un coefficient de corrélation de 0,43. Ensuite, je chargerai des informations supplémentaires (IV) de chaque variable. L'indicateur IV est souvent utilisé pour déterminer la prévisibilité de l'argument. La formule est la suivante: IV = somme ((Goodattribution-badttribution) * ln (GoodAtTribution / BadTtrik)) Tournez le jugement par la valeur IV de la prévisibilité est : & lt; 0,02: non prédit 0,02 à 0,1: faible 0,1 à 0,3: moyenne 0,3 à 0,5: fort & gt; 0.5: chaque diabolique vLe déploiement IV est placé dans la fonction mono_bin (), le code obtenu comme suit: Créé Graphic IV: . Image de sortie: Variable de sortie cartographique IV peut voir que les variables suivantes: ] Hebdomadaire NumberofopencreditLinesAndloans NumberEeEeEseAndoansorlines La valeur des variables faibles claires, supprimée. Terminer. Cet article est copié partagé, tel que des violations, veuillez contacter la plate-forme pour supprimer .

Sujets

Catégories