저는 데이터 과학의 초보자이며 boston 데이터 세트를 사용하여 matplotlib (및 pandas 및 numpy와 같은 다른 패키지)로 선형 플롯을 그리려고합니다. [0,1] 간격에서 그려야합니다. 나는 TARGET
지역의 범죄율 ( CRIM
, x 축) 에 대한 주택 가격 ( , y 축) 을 플로팅하도록 요청 받았다 . 내 목표는 Matplotlib의 히스토그램을 사용하는 것이지만 이와 같은 범주 형 데이터 세트에 대해 수행하는 방법을 찾을 수 없습니다. 지금까지 내가 가진 코드는 다음과 같습니다.
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.datasets import load_boston
boston = load_boston()
dataFrame_x = pd.DataFrame(boston.data, columns = boston.feature_names)
dataFrame_y = pd.DataFrame(boston.target)
dataFrame_x.describe()
그리고 이것은 데이터 설명입니다 (너무 어색해 보입니다. 사과드립니다) :
CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO B LSTAT
count 506.000000 506.000000 506.000000 506.000000 506.000000 506.000000 506.000000 506.000000 506.000000 506.000000 506.000000 506.000000 506.000000
mean 3.613524 11.363636 11.136779 0.069170 0.554695 6.284634 68.574901 3.795043 9.549407 408.237154 18.455534 356.674032 12.653063
std 8.601545 23.322453 6.860353 0.253994 0.115878 0.702617 28.148861 2.105710 8.707259 168.537116 2.164946 91.294864 7.141062
min 0.006320 0.000000 0.460000 0.000000 0.385000 3.561000 2.900000 1.129600 1.000000 187.000000 12.600000 0.320000 1.730000
25% 0.082045 0.000000 5.190000 0.000000 0.449000 5.885500 45.025000 2.100175 4.000000 279.000000 17.400000 375.377500 6.950000
50% 0.256510 0.000000 9.690000 0.000000 0.538000 6.208500 77.500000 3.207450 5.000000 330.000000 19.050000 391.440000 11.360000
75% 3.677083 12.500000 18.100000 0.000000 0.624000 6.623500 94.075000 5.188425 24.000000 666.000000 20.200000 396.225000 16.955000
max 88.976200 100.000000 27.740000 1.000000 0.871000 8.780000 100.000000 12.126500 24.000000 711.000000 22.000000 396.900000 37.970000
귀하의 의견에 대한 이해를 바탕으로 다음은 데이터에 대한 선형 피팅을 수행하는 방법입니다. 영역 0에서 1에 대한 CRIM
대 를 플로팅하고 싶기 때문에 Target
인덱싱을 사용 CRIM
하여 DataFrame 에서 값을 가져온 다음 값에 대해 선형 회귀를 수행합니다.
xdata = dataFrame_x['CRIM'][dataFrame_x['CRIM'] < 1].values
ydata = dataFrame_y[dataFrame_x['CRIM'] < 1].values.flatten()
xmesh = np.linspace(min(xdata), max(xdata), 50)
fit = np.poly1d(np.polyfit(xdata, ydata, 1))
plt.plot(xdata, ydata, 'bo', label='Data')
plt.plot(xmesh, fit(xmesh), '-b', label='Fit')
plt.legend(fontsize=16)
plt.xlabel('CRIM', fontsize=18)
plt.ylabel('Target',fontsize=18)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다