Un.、Traitement sans dimension des données (Thermographe)
1.Traitement sans dimension des données(Seules les méthodes utilisées dans cet article sont décrites.):min-maxNormalisation
2.Affichage du Code
3.Affichage des effets
2.、Corrélation du coefficient Pearce(Thermographe)
1.Connaissance des mathématiques
2.Affichage du Code
3.seaborn.heatmapDescription des propriétés
4Affichage des effets
Résumé
Un.、Traitement sans dimension des données (Thermographe)1.Traitement sans dimension des données(Seules les méthodes utilisées dans cet article sont décrites.):min-maxNormalisationLa méthode est une transformation linéaire des données brutes,Cartographiez - le à[0,1]Entre,Cette méthode est également connue sous le nom de normalisation des écarts..
En haut,minEst la valeur minimale de l'échantillon,maxEst la valeur maximale de l'échantillon.Parce que les valeurs maximales et minimales peuvent varier dynamiquement,Et très sensible au bruit(Points anormaux、Aberration)Impact,Par conséquent, il est généralement approprié pour les scénarios de petites données.En outre,Il y a deux autres avantages à cette approche:
1) Si un attribut/La variance des caractéristiques est faible,Comme la taille.:np.array([[1.70],[1.71],[1.72],[1.70],[1.73]]),Effectif5Il y a une différence de taille,Mais très faible.,Ce n'est pas bon pour l'apprentissage des modèles,En coursmin-maxAprès normalisation:array([[ 0. ], [ 0.33333333], [ 0.66666667], [ 0. ], [ 1. ]]), C'est comme agrandir la différence ;
2) Maintenir la matrice clairsemée comme 0Entrée pour.
2.Affichage du Codeimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsfrom sklearn.datasets import load_winewine = load_wine()data = wine.data # Donnéeslables = wine.target # Étiquettesfeaures = wine.feature_namesdf = pd.DataFrame(data, columns=feaures) # Données brutes# Première étape:Sans dimensiondef standareData(df): """ df : Données brutes return : data Données normalisées """ data = pd.DataFrame(index=df.index) # Nom de la colonne,Un nouveaudataframe columns = df.columns.tolist() # Extraire les noms de colonnes for col in columns: d = df[col] max = d.max() min = d.min() mean = d.mean() data[col] = ((d - mean) / (max - min)).tolist() return data# Une colonne est utilisée comme séquence de référence , Les autres sont des séquences contrastées def graOne(Data, m=0): """ return: """ columns = Data.columns.tolist() # Extraire les noms de colonnes # Première étape:Sans dimension data = standareData(Data) referenceSeq = data.iloc[:, m] # Séquence de référence data.drop(columns[m], axis=1, inplace=True) # Supprimer la colonne de référence compareSeq = data.iloc[:, 0:] # Séquence de comparaison row, col = compareSeq.shape # Deuxième étape:Séquence de référence - Séquence de comparaison data_sub = np.zeros([row, col]) for i in range(col): for j in range(row): data_sub[j, i] = abs(referenceSeq[j] - compareSeq.iloc[j, i]) # Trouver les valeurs maximales et minimales maxVal = np.max(data_sub) minVal = np.min(data_sub) cisi = np.zeros([row, col]) for i in range(row): for j in range(col): cisi[i, j] = (minVal + 0.5 * maxVal) / (data_sub[i, j] + 0.5 * maxVal) # Troisième étape:Calculer le degré de corrélation result = [np.mean(cisi[:, i]) for i in range(col)] result.insert(m, 1) # La colonne de référence est 1 return pd.DataFrame(result)def GRA(Data): df = Data.copy() columns = [str(s) for s in df.columns if s not in [None]] # [1 2 ,,,12] # print(columns) df_local = pd.DataFrame(columns=columns) df.columns = columns for i in range(len(df.columns)): # Chaque colonne fait une séquence de référence ,Calculer le coefficient de corrélation df_local.iloc[:, i] = graOne(df, m=i)[0] df_local.index = columns return df_local# Présentation du diagramme thermodynamique def ShowGRAHeatMap(DataFrame): colormap = plt.cm.hsv ylabels = DataFrame.columns.values.tolist() f, ax = plt.subplots(figsize=(15, 15)) ax.set_title('Wine GRA') # Réglage de la moitié de l'affichage,Si vous n'avez pas besoin de commentairesmaskC'est tout. mask = np.zeros_like(DataFrame) mask[np.triu_indices_from(mask)] = True # np.triu_indices Matrice triangulaire supérieure with sns.axes_style("white"): sns.heatmap(DataFrame, cmap="YlGnBu", annot=True, mask=mask, ) plt.show()data_wine_gra = GRA(df)ShowGRAHeatMap(data_wine_gra)
3.Affichage des effets2.、Corrélation du coefficient Pearce(Thermographe)1.Connaissance des mathématiquesLa similitude de plusieurs caractéristiques dans la table de données peut être observée à l'aide d'un diagramme thermodynamique .
La similitude est mesurée par le coefficient de corrélation Pearson.
Le coefficient de corrélation Pearson entre deux variables est défini comme le quotient de la covariance et de l'écart type entre les deux variables. :
2.Affichage du Codeimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns# ====Thermographefrom matplotlib.ticker import FormatStrFormatterencoding="utf-8"data = pd.read_csv("tu.csv", encoding="utf-8") #Lire les donnéesdata.drop_duplicates()data.columns = [i for i in range(data.shape[1])]# Calculer le coefficient de corrélation Pearson entre deux attributs corrmat = data.corr()f, ax = plt.subplots(figsize=(12, 9))# Retour à la presse“Colonnes”Avant l'ordre décroissantnD'accordk = 30cols = corrmat.nlargest(k, data.columns[0]).index# Renvoie le coefficient de corrélation du moment produit Pearson cm = np.corrcoef(data[cols].values.T)sns.set(font_scale=1.25)hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt=".3f", vmin=0, # Seuil d'échelle vmax=1, linewidths=.5, cmap="RdPu", #Couleur de l'échelle annot_kws={"size": 10}, xticklabels=True, yticklabels=True) #seaborn.heatmapPropriétés connexes# Résoudre les problèmes d'affichage chinoisplt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = False# plt.ylabel(fontsize=15,)# plt.xlabel(fontsize=15)plt.title(" Forte ou faible corrélation entre les principales variables ", fontsize=20)plt.show()
3.seaborn.heatmapDescription des propriétés1)SeabornEst basé surmatplotlibDePythonVisualisez la Bibliothèque
seaborn.heatmap()Thermographe, Matrice des coefficients de corrélation utilisée pour montrer un ensemble de variables , Répartition des données dans les tableaux de contingence , Les diagrammes thermodynamiques permettent de visualiser les différences de taille des valeurs données. .
seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annot_kws=None, linewidths=0, linecolor='white', cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticklabels='auto', yticklabels='auto', mask=None, ax=None, **kwargs)
2)Sortie des paramètres(Sont par défaut)
sns.heatmap( data, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annot_kws=None, linewidths=0, linecolor=‘white', cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticklabels=‘auto', yticklabels=‘auto', mask=None, ax=None,)
3)Présentation détaillée
(1) Paramètres d'entrée des données thermographiques4Affichage des effetsRésumédata: Ensemble de données matricielles ,C'est possible.numpyTableau de(array),C'est possible.pandasDeDataFrame.Si ouiDataFrame,EtdfDeindex/column L'information correspondra à heatmapDecolumnsEtrows,C'est - à - dire:df.index Est l'étiquette de ligne du thermographe ,df.columns C'est l'étiquette du thermographe
(2) Paramètres de couleur du bloc de matrice thermographiquevmax,vmin: Est la plage maximale et minimale de la valeur de couleur du thermographe ,La valeur par défaut est basée surdata La valeur dans le tableau de données est déterminée
(3) Paramètres d'annotation du bloc de matrice thermographique
cmap: La cartographie de l'espace numérique à l'espace de couleur ,La valeur estmatplotlibDans le saccolormap Nom ou objet de couleur , Ou une liste de couleurs ; Modifier la valeur par défaut du paramètre :SeloncenterParamétrage
center: S'il y a une différence dans la valeur de la Feuille de données , Définit la valeur d'alignement du Centre de couleur du diagramme thermique ;Via les paramètrescenterValeur, Vous pouvez ajuster la profondeur globale de la couleur de l'image résultante ;ParamètrescenterHeure des données, S'il y a un débordement de données , Est réglé manuellement vmax、vminÇa change automatiquement
robust:Valeur par défautFalse;Si ouiFalse, Et il n'y a pas de réglage vminEtvmaxValeur de, La plage de cartographie des couleurs du thermographe est définie en fonction du quantile robuste , Au lieu de fixer des valeurs extrêmesannot(annotateAbréviation de):Valeur par défautFalse;Si ouiTrue, Écrivez les données dans chaque carré du thermographe ;Si c'est une matrice, Écrivez les données de position correspondantes de la matrice dans chaque grille du diagramme thermodynamique.
(4) Paramètres de l'espacement et de la ligne d'espacement entre les blocs de matrice du diagramme thermodynamique
fmt: Code de format de chaîne , Format des données identifiant les nombres sur la matrice , Comme garder quelques chiffres après la décimale
annot_kws:Valeur par défautFalse;Si ouiTrue, Définir la taille et la couleur des chiffres sur la matrice thermographique ,matplotlibSactext Paramètres de police sous la classe ;linewidths: Définir le diagramme thermodynamique “ Un petit morceau de matrice représentant la relation entre deux caractéristiques ” Taille de l'intervalle entre
(5) Paramètres de la barre d'échelle de couleur du thermographe
linecolor: Couleur de la ligne de chaque bloc de matrice sur le thermographe de division ,La valeur par défaut est’white’cbar: Si les barres d'échelle de couleur sont peintes sur le côté du thermographe ,La valeur par défaut estTrue
(6)square: Définir la forme de la matrice thermographique ,La valeur par défaut estFalse
cbar_kws: Lors du dessin de la barre d'échelle de couleur sur le côté du thermographe , Paramètres de police connexes ,La valeur par défaut estNone
cbar_ax: Lors du dessin de la barre d'échelle de couleur sur le côté du thermographe , Réglage de la position de la barre d'échelle ,La valeur par défaut estNonexticklabels, yticklabels:xticklabels Contrôle la sortie de chaque nom d'étiquette de colonne ;yticklabels Contrôle la sortie de chaque signature d'étiquette de ligne .La valeur par défaut estauto.Si ouiTrue,ParDataFrame Nom de la colonne comme nom de l'étiquette .Si ouiFalse, Aucune signature d'étiquette de ligne n'est ajoutée .Si c'est une liste, Changez le nom de l'étiquette en ce qui est donné dans la Liste .Si un entierK, Sur le graphique, tous les K Étiquettes à étiqueter une fois . Si ouiauto, Sélectionnez automatiquement l'espacement des étiquettes , La partie du nom de l'étiquette qui ne se chevauche pas (Ou tous)Produits
mask: Contrôle si un bloc de matrice est affiché .La valeur par défaut estNone. Si c'est booléen DataFrame,AlorsDataFrame- Oui.True L'emplacement est recouvert de blanc
ax: Définir l'axe du dessin , En général, lorsque vous dessinez plusieurs sous - graphiques, vous devez modifier cette valeur pour différents sous - graphiques.
**kwargs: Tous les autres paramètres clés sont passés à ax.pcolormesh.
À propos depython L'article sur la réalisation du diagramme thermodynamique ,Plus pertinentpython Pour le contenu de la mise en œuvre du diagramme thermique, veuillez rechercher les articles précédents du réseau de développement de logiciels ou continuer à parcourir les articles connexes ci - dessous. J'espère que vous soutiendrez le réseau de développement de logiciels à l'avenir. !