본문 바로가기

728x90

전체 글

(219)
2021-09-25(Learn github) 오늘은 깃허브에 대해 공부했습니다. 그 전부터 몇번 시도는 했었으나 branch는 뭐고 commit은 뭔지 도통 감이 잡히지 않아서 나중에 하기로 미룬지가 거의 반년이 넘어 갔습니다. 공부 할수록 깃허브의 중요성을 조금씩 알게 되었고, 프로젝트를 만들면서 버전관리에 중요성을 깨달았는지라 오늘 시간을 내어봤습니다. 개념을 빠르게 배우기 위해서 유튜브 강의를 시청했습니다. (아래는 해당 링크 입니다) https://www.youtube.com/watch?v=-27WScuoKQs&t=751s 영상 총 길이가 1시간 좀 넘었는데, 좋은 설명 덕분에 이해하기 수월했습니다. 현재는 배운내용을 토대로 commit과 push를 연습 중에 있습니다. 이 과정에서 몇 시간동안 제 발목을 잡은 에러가 있었습니다. 소스트리에..
2021-09-22(따릉이 프로젝트 완성하기 8) 저번 포스팅 마지막에는 count의 분포와 비슷한 파생변수를 만든다는 말 끝으로 끝냈었습니다. 예고 했듯이 제 나름대로 target 변수를 설명해줄 파생변수를 2가지 만들어 봤습니다. 그 외로 몇가지 더 실험해 보았는데 이는 아래 주요 요약에 적어 놓았습니다. *주요 요약 target 분포를 설명해줄 파생변수 2가지 변수들의 왜곡 확인 & target 변수의 이상치 제거 스태킹 모델 1. target 분포를 설명해줄 파생변수 2가지 1.1 시간별 평균 이용 수 train_df = train.copy() test_df = test.copy() train_df['cue'] = 0 test_df['cue'] = 1 df = pd.concat([train_df,test_df],axis=0).reset_index..
2021-09-19(딥러닝 수학16) 지난 포스팅에 이어서 th가 2개 이상인 멀티에서는 Update가 어떻게 진행이 되는지 살펴보도록 합니다. 이해를 돕기 위해서 input data가 1개라는 가정하에 진행합니다. 눈에 띄는 점은 th가 2개 이기 때문에 따로 분리가 된다는 점이다. Loss까지 구할 수 있으며 이를 편미분 하게 된다면 아래처럼 계산이 된다. 이 값들을 이용하여 backward를 간편하게 구할수 있다. 빨간색이 backward 진행 상황을 나타낸다. 빨간색 backward 값을 받은 Z2-2은 th1과 th2 두 방향으로 보내줘야 하는데, 전달되는 값을 보면 초록색 부분이 각각 1이므로 -2(y-y^)값을 그대로 전달한다. 나머지 부분도 편미분을 전개하면 아래와 같이 정리할 수 있다. 만일 X가 한개가 아니라 m개라면 어떻..
2021-09-18(따릉이 프로젝트 완성하기 7) *주요 요약 1. hour_bef_ozone의 결측치 예측 2. 결측치 다수 존재하는 변수들은 미 사용하기로 판단함 * 본 내용 결측치가 많은 ozone, pm10, pm2.5를 예측하여 값을 채우려 시도하고 있습니다. 기존에는 각 시간, 변수 별 평균값으로 결측치를 채웠습니다. 하지만 이러한 방법은 정확성을 떨어뜨릴수 있습니다 게다가 그러한 결측치가 워낙 많다 보니까 새로운 방법을 찾아야 했습니다. ozone, pm10, pm2.5를 제외한 feature을 활용했습니다.(id, count 제외) 먼저, 사용될 X feature들의 결측치 먼저 처리해야 합니다. 결측치 수가 많지 않으므로 이는 기존에 만들어 사용했던 시간,변수별 평균값 함수를 사용하여 채웠습니다. 아래 step 1을 통해 상세하게 설명드..
2021-09-15(따릉이 프로젝트 완성하기 6) *오늘 얻어낸 것들 1. target의 log화는 성능을 떨어뜨린다. 2. 오늘 시도했던 잡다한 방법들 모두 성능에 영향을 주지 못하거나 떨어뜨린다 (자잘한게 많아서 뭘 했는지 조차 기억..) 3. 결측값을 평균값으로 일괄 적용X *현재 시도 중인 것 본래 결측치 값을 평균으로 싹 다 처리했습니다. 그런데 생각해 보니까 날씨 데이터가 있는데 평균값으로 대체 하면 말이 안되더라구요. 예를들어 비가 오는데 기온이 높으면 이치에 어긋나기 때문에 이를 수정하기로 했습니다. 특히, 마지막 3개는 결측값이 엄청 납니다. 가뜩이나 데이터도 많진 않아서 삭제하기 부담스럽습니다. 그래서 평균으로 대체 하는 것보다 예측값을 넣는게 차라리 낫지 않을까 하는 생각에 뒤에 이 3개 변수를 각각 예측모델링 짜고 있습니다. 전처리..
2021-09-14(딥러닝 수학15_multi-variate Linear Regression) 저번 포스팅까지는 X 변수가 하나라는 가정하에 진행해 왔습니다. 이제 부터는 X가 둘 이상인 multi을 다룹니다. 위 그림처럼, X들이 여러개 나뉘어 졌다. X1: 공부시간, X2: 등하교 시간으로 예를 들수 있겠습니다. 그래서 각각의 변수 데이터를 가지고 해당되는 target 값인 y를 예측하게 됩니다. X2가 추가가 되었음을 볼 수 있다. 각 theta, X에 대해서 벡터 형식으로 정리가 가능하다. X 벡터의 1인 dummy 변수를 넣어 줘야 dot product 했을때 계산이 가능합니다. Loss function에 th가 3개로 확장 되었으므로 더이상 평면이 아닌 공간 상에서 표현이 될 것입니다. 전에 배웠던 내용과 다른 점이 있다면 th2가 추가 되었다는 점 뿐이다. 각 th별로 미분을 하면 빨..
2021-09-13(따릉이 프로젝트 완성하기 5) 오늘 진도 나간 부분은 아래 순으로 진행했습니다. step 1) 피처중요도가 작았던 날씨 데이터를 활용한 새로운 파생변수 만들기 -> 처음에는 전체 데이터를 가지고 주말,평일을 나눠볼려고 시도했습니다. 그래서 군집분석을 해봤는데, 시도할수록 2개로 군집 분석해도 이 의미가 과연 주말과 평일을 나누는 기준인가? 를 모르겠다는 겁니다 ㅎ;; 시도해 보고 나니 깨달았네요, 그대신 얻은 게 있다면 중요도가 낮은 변수들을 가지고 군집 분석을 통해 파생변수를 시도 했다는 것입니다. 제가 알수 없는 날씨 데이터간의 의미를 알아보는 시간이었습니다. 제 생각이지만 예를들어, 해당 군집 변수를 통해서 비가 내렸는지 , 눈이 내렸는지, 매우 더웠는지 등 알수 있지 않을까 생각해 봅니다(뇌피셜ㅎㅎ;;) 아래는 제가 책 보면서..
2021-09-10(딥러닝 수학14_dataset 변화에 따른 th1,th0 학습 시각화) 이번 포스팅에서는 주로 weight 변화에 따라서 bias에 어떠한 영향을 미치는지를 중점적으로 살펴보도록 한다. weight, bias가 3,3인 것으로 부터 mu, sigma의 변화에 따른 영향을 살펴본다. *표준편차가 1이하 일 때 (0, std)를 따를 때, std가 0에 가까울수록 뽑히는 x의 값이 0에 가까운 값이 뽑히게 될 것이다. 예를 들어 x의 값이 0.1, 0.5처럼 1보다 작은 값들이 뽑히게 된다는 것이다. 저번 포스팅에서 배웠던 것처럼 x의 값이 1보다 작게 되면 weight가 학습되는 양 자체가 적어진다. 그리고 std =1 일때는 th1,th0이 균등하게 대각선 방향으로 학습이 된다. 위 왼쪽 그림의 보락색이 이에 해당 된다. th1의 loss grdient 양은 -2*x*lr(..