이번에는 파이썬 코드 기반으로 싱글 레이어로 보스턴 집값을 예측하는 코드를 작성하겟습니다


 이런 식으로 보스턴 집값을 예측한다


제일 처음으로 할것은 




보스턴 Features들은 

  * **CRIM**: 자치 시(town) 별 1인당 범죄율

  * **ZN**: 25,000 평방피트를 초과하는 거주지역의 비율

  * **INDUS**: 비소매상업지역이 점유하고 있는 토지의 비율

  * **CHAS**: 찰스강의 경계에 위치해 있으면 1, 그렇지 않으면 0

  * **NOX**: 10ppm당 농축 일산화질소

  * **RM**: 주택 1가구당 평균 방의 개수

  * **AGE**: 1940년 이전에 건축된 소유주택의 비율

  * **DIS**: 5개의 보스턴 직업센터까지의 접근성 지수

  * **RAD**: 방사형 도로까지의 접근성 지수

  * **TAX**: 10,000 달러 당 재산세율

  * **PTRATIO**: 자치 시(town)별 학생/교사 비율

  * **B**: 1000(Bk-0.63)^2, 여기서 Bk는 자치시별 흑인의 비율을 말함.

  * **LSTAT**: 모집단의 하위계층 비율(%)

  * **MEDV**: 본인 소유의 주택가격(중앙값) (단위: $1,000)

  

보스턴  데이터 셋 들고오기



보스턴 데이터 셋을 X, Y로 구분여 데이터 셋을 만들 준비를 한다

데이터 프레임 형태로 변환





<output>

CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTATMEDV
00.0063218.02.310.00.5386.57565.24.09001.0296.015.3396.904.9824.0
10.027310.07.070.00.4696.42178.94.96712.0242.017.8396.909.1421.6
20.027290.07.070.00.4697.18561.14.96712.0242.017.8392.834.0334.7
30.032370.02.180.00.4586.99845.86.06223.0222.018.7394.632.9433.4
40.069050.02.180.00.4587.14754.26.06223.0222.018.7396.905.3336.2





X의 Features을 다 구분 해두엇기에  x1~x13가지 데이터 X가 잇으며 이 데이터 X에 1대1로 배치되는 W 값을 만든다 random.uniform형태로

그리고 보스턴 집값예측 가격을 예측하는것이기때문에 output이 한개이므로 식은

y = w1*x1+w2*x2+w3*x3+w4*x4+w5*x5+w6*x6+w7*x7+w8*x8+w9*x9+w10*x10+w11*x11+w12*x12+w13*x13+b 이며,

손실 함수는 loss function은 0.5*Σ(y-y_predict)**2이며 이것을 미분하면 아래 공식이 탄생된다

(y-y_predict)*w 이 공식이 weight를 업데이트 하며 트레이닝 할수가 잇다

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59


    0 error = 328.18781
10000 error = 5.81798
20000 error = 5.34306
30000 error = 5.05000
----------------------------------------
32292 error = 4.99999


에측하기







<output>                                                                                                                                원래가격   예측한 가격

CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTATMEDVMEDV(predict)
00.0063218.02.310.00.5386.57565.24.09001.0296.015.3396.904.9824.030.115258
10.027310.07.070.00.4696.42178.94.96712.0242.017.8396.909.1421.624.928269
20.027290.07.070.00.4697.18561.14.96712.0242.017.8392.834.0334.727.318432
30.032370.02.180.00.4586.99845.86.06223.0222.018.7394.632.9433.426.550113
40.069050.02.180.00.4587.14754.26.06223.0222.018.7396.905.3336.226.108157


+ Recent posts