이 기사는 Python의 전처리 및 히트 맵에 대한 간략한 소개를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
데이터 분석에는 아직 많은 것들이 있습니다. 여기서는 경험적 소개만 하겠습니다. 이 부분을 이해하신 후에 활용하시면 더 빠르게 해결책을 찾으실 수 있을 거라 믿습니다.
이번에도 sklearn에 설정된 홍채 데이터를 그대로 사용하여 히트맵을 통해 표시해 보겠습니다.
Preprocessing
sklearn.preprocessing은 기계 학습 라이브러리의 전처리 모듈로, 데이터를 표준화, 정규화 등을 수행하고 필요에 따라 사용할 수 있습니다. 여기서는 표준화된 방법을 사용하여 데이터를 정리합니다. 다른 방법은 직접 쿼리할 수 있습니다.
표준화: 특성 데이터의 분포를 가우스 분포라고도 하는 표준 정규 분포로 조정합니다. 이는 데이터의 평균이 0이고 분산이 1임을 의미합니다.
표준화하는 이유는 일부 특성의 분산이 너무 크면 목적 함수를 지배하고 매개변수 추정기가 다른 특성을 올바르게 학습하지 못하게 하기 때문입니다.
표준화 과정은 두 단계로 이루어집니다. 즉, 평균의 분산화(평균이 0이 됨), 분산의 조정(분산이 1이 됨)입니다.
위의 기능을 달성하기 위해 sklearn.preprocessing에서 확장 방법을 제공합니다.
예를 들어보겠습니다.
from sklearn import preprocessing import numpy as np # 创建一组特征数据,每一行表示一个样本,每一列表示一个特征 xx = np.array([[1., -1., 2.], [2., 0., 0.], [0., 1., -1.]]) # 将每一列特征标准化为标准正太分布,注意,标准化是针对每一列而言的 xx_scale = preprocessing.scale(xx) xx_scale
데이터의 각 열을 표준화한 결과는 다음과 같습니다.
array([[ 0. , -1.22474487, 1.33630621], [ 1.22474487, 0. , -0.26726124], [-1.22474487, 1.22474487, -1.06904497]])
안에 있는 데이터가 변경되고 값이 상대적으로 작아서 한눈에 알아볼 수도 있습니다. 당신이 그것을 볼 수 없더라도 상관 없습니다. Python은 일부 통계를 쉽게 계산할 수 있습니다.
# 测试一下xx_scale每列的均值方差 print('均值:', xx_scale.mean(axis=0)) # axis=0指列,axis=1指行 print('方差:', xx_scale.std(axis=0))
위에서 표준화를 무엇으로 변환해야 하는지 소개했는데, 결과는 실제로 일관성이 있습니다. 열별로 평균과 분산을 계산한 결과는 다음과 같습니다.
均值: [0. 0. 0.] 方差: [1. 1. 1.]
물론 분산과 평균은 꼭 가지고 다닐 필요는 없습니다. 때로는 두 가지 방법 중 하나의 이점을 원할 경우 다음과 같은 방법이 있습니다.
with_mean, with_std 이 두 가지는 부울 매개변수이며 둘 다 기본적으로 true이지만 false로 사용자 정의할 수도 있습니다. 즉, 센터링을 의미하지 않거나 분산을 1로 조정하지 마십시오.
히트 맵
히트 맵에 대한 자세한 정보는 이미 인터넷에 많이 있으므로 여기서는 히트 맵에 대해 간단히 언급하겠습니다. .
히트맵에서는 데이터가 행렬 형태로 존재하며, 속성 범위는 색상의 그라데이션으로 표현됩니다. 여기서는 히트맵을 그리는 데 pcolor가 사용됩니다.
작은 밤
가져오기 라이브러리에서 시작한 다음 데이터 세트를 로드하고 데이터를 처리한 다음 이미지를 그리고 이미지에 주석과 장식을 추가하는 등의 작업을 수행합니다. 저는 코드에 댓글을 다는 데 익숙합니다. 이해가 안 되는 부분이 있으면 메시지를 남겨주시면 제 시간에 답변해 드리겠습니다.
# 导入后续所需要的库 from sklearn.datasets import load_iris from sklearn.preprocessing import scale import numpy as np import matplotlib.pyplot as plt # 加载数据集 data = load_iris() x = data['data'] y = data['target'] col_names = data['feature_names'] # 数据预处理 # 根据平均值对数据进行缩放 x = scale(x, with_std=False) x_ = x[1:26,] # 选取其中25组数据 y_labels = range(1, 26) # 绘制热图 plt.close('all') plt.figure(1) fig, ax = plt.subplots() ax.pcolor(x_, cmap=plt.cm.Greens, edgecolors='k') ax.set_xticks(np.arange(0, x_.shape[1])+0.5) # 设置横纵坐标 ax.set_yticks(np.arange(0, x_.shape[0])+0.5) ax.xaxis.tick_top() # x轴提示显示在图形上方 ax.yaxis.tick_left() # y轴提示显示在图形的左侧 ax.set_xticklabels(col_names, minor=False, fontsize=10) # 传递标签数据 ax.set_yticklabels(y_labels, minor=False, fontsize=10) plt.show()
그렇다면 그려진 이미지는 어떤 모습일까요?
위의 간단한 단계를 통해 이러한 데이터의 직관적인 이미지를 그릴 수 있습니다. 물론 실제로 사용할 때는 그렇게 간단하지 않습니다. 지식을 더 넓혀보세요.
위 내용은 Python의 전처리 및 히트맵에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!