程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Un exemple complet de réalisation de diagrammes thermodynamiques Python

編輯:Python

Table des matières

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-maxNormalisation

La 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 effets

2.、Corrélation du coefficient Pearce(Thermographe)1.Connaissance des mathématiques

La 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és

1)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 thermographiques

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 thermographique

vmax,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
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êmes

(3) Paramètres d'annotation du bloc de matrice thermographique

annot(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.
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 ;

(4) Paramètres de l'espacement et de la ligne d'espacement entre les blocs de matrice du diagramme thermodynamique

linewidths: Définir le diagramme thermodynamique “ Un petit morceau de matrice représentant la relation entre deux caractéristiques ” Taille de l'intervalle entre
linecolor: Couleur de la ligne de chaque bloc de matrice sur le thermographe de division ,La valeur par défaut est’white’

(5) Paramètres de la barre d'échelle de couleur du thermographe

cbar: Si les barres d'échelle de couleur sont peintes sur le côté du thermographe ,La valeur par défaut estTrue
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 estNone

(6)square: Définir la forme de la matrice thermographique ,La valeur par défaut estFalse

xticklabels, 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.

4Affichage des effets

Résumé

À 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. !



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved