메뉴 열기
찾기 버튼

사용자별
바로가기

분석교육실습

분석교육실습에서는 날씨마루를 활용한 분석 과정을 사례중심으로 설명합니다.

선택  

R 교육 동영상

기상 또는 통계 분야 초급자를 위한 동영상 교육자료를 제공합니다. R을 활용한 기상데이터 탐색과 처리, 상관분석 , 회귀분석을 담고 있으며, 날씨마루의 시각화 도구를 활용한 기상데이터 시각화 예제를 소개하고 있습니다. 동영상 교육에서 활용된 자료는 본 페이지에서 다운로드 받으실 수 있습니다.
R교육 동영상 자료
주제 강의자료 강의보기
1강 날씨마루 분석환경 사용 방법 강의자료 다운로드 강의보기
2강 통계량을 활용한 데이터 탐색 강의자료 다운로드 강의보기
3강 그래프를 활용한 데이터 탐색(I) 강의자료 다운로드 강의보기
4강 그래프를 활용한 데이터 탐색(II) 강의자료 다운로드 강의보기
5강 이상치·결측치 확인 및 처리 강의자료 다운로드 강의보기
6강 Mapping & 보간법 강의자료 다운로드 강의보기
7강 상관분석 강의자료 다운로드 강의보기
8강 회귀분석 강의자료 다운로드 강의보기
9강 로지스틱 회귀분석 강의자료 다운로드 강의보기
10강 날씨마루 데이터 시각화 강의자료 다운로드 강의보기

Python 교육 동영상

기상 또는 통계 분야 초급자를 위한 동영상 교육자료를 제공합니다. Python을 활용한 기상데이터 탐색과 처리, 상관분석 , 회귀분석을 담고 있으며, 날씨마루의 시각화 도구를 활용한 기상데이터 시각화 예제를 소개하고 있습니다. 동영상 교육에서 활용된 자료는 본 페이지에서 다운로드 받으실 수 있습니다.
선택  
파이썬 활용법 기초 동영상 자료
주제 강의자료 강의보기
1강 날씨마루 소개와 파이썬 개발환경 강의자료 다운로드 강의보기
2강 넘파이 기본 사용법 강의자료 다운로드 강의보기
3강 판다스 기본 사용법 강의자료 다운로드 강의보기
4강 기술통계 강의자료 다운로드 강의보기
5강 데이터 요약과 결측치 확인 강의자료 다운로드 강의보기
6강 수치형 변수의 시각화 강의자료 다운로드 강의보기
7강 수치형 변수의 상관계수와 회귀분석 강의자료 다운로드 강의보기
8강 범주형 변수 강의자료 다운로드 강의보기
9강 시계열 데이터 분석 강의자료 다운로드 강의보기
10강 딥러닝을 통한 평균기온 예측하기 강의자료 다운로드 강의보기
딥러닝(CNN)기법을 활용한 이미지 분석 자료
주제 강의자료 강의보기
1강 1. 딥러닝 개요 강의자료 다운로드 강의보기
2강 2. 심층 신경망 모델 구현 강의자료 다운로드 강의보기
3강 3. 심층 신경망 훈련 강의자료 다운로드 강의보기
4강 4. 이미지 데이터 이해 강의자료 다운로드 강의보기
5강 5. 합성곱 신경망 강의자료 다운로드 강의보기
6강 6. 합성곱 신경망 성능개선 강의자료 다운로드 강의보기
7강 7. 다양한 합성곱 신경망 모델 강의자료 다운로드 강의보기
날씨데이터를 활용한 태양광 발전량 예측 자료
주제 강의자료 강의보기
1강 1. 데이터중심 AI의 이해 강의자료 다운로드 강의보기
2강 2. 태양광 발전량 예측의 이해 강의자료 다운로드 강의보기
3강 3. 태양광 발전량 예측의 이해 2 강의자료 다운로드 강의보기
4강 4. 탐색적 데이터 분석 Ⅰ 강의자료 다운로드 강의보기
5강 5. 데이터 전처리 강의자료 다운로드 강의보기
6강 6. 데이터 상관관계 분석 강의자료 다운로드 강의보기
7강 7. 태양광 발전량 예측 모델 구현 강의자료 다운로드 강의보기
8강 8. 모델의 학습과 결과 분석 강의자료 다운로드 강의보기
닫기

영상제목

영상 스크립트

안녕하세요 날씨 마루 사용자 여러분 총 10강 동안 함께할 유재용이라고 합니다. 저와 함께 기상 기후 빅데이터 분석 플랫폼 인 날씨 마루를 활용해서 통계분석 비정형 데이터 분석 시각화 등 기상 기후 빅데이터에 대해 알아보도록 하겠습니다. 먼저 우리가 활용할 날씨마루 분석 환경에 대해 소개해 드리고 분석 환경 사용에 대한 신청 방법과 분석에 사용할 데이터 신청 방법을 알아보겠습니다. 다음으로 기상 기후 데이터 뿐만 아니라 사용자 여러분들이 가지고 계신 데이터를 함께 분석하기 위한 데이터 업로드 방법 분석의 최종결과를 다운로드할 수 있는 기능에 대해 설명드리도록 하겠습니다. 마지막으로는 데이터를 탐색해 볼 수 있는 시각화 도구 와 비정형 데이터 분석 도구에 대해 소개해 드리고 1강을 마치도록 하겠습니다 먼저 기상 기후 빅데이터 분석 플랫폼 인 날씨 마루는 타 분야와 기상을 융합 분석한 융합 시범 서비스와 기상 기후 빅데이터를 분석할 수 있는 분석 환경을 제공하고 있습니다. 분석 환경은 인터넷이 사용 가능한 환경 어디에서든 접근 가능하며 웹브라우저 방식입니다. 분석 환경에 사양은 다음과 같은데 분석에는 충분한 사양을 가지고 있고요. 소프트웨어 같은 경우는 알과 파이썬을 구축해 놓고 있습니다. 빅데이터 소프트웨어 같은 경우는 하둡 또는 하이브 등을 구축해 놓았습니다. 기상 기후 데이터는 관측 예보 특보 지수 수치 자료 등 다양하게 제공되고 있으니 원하는 데이터를 활용하시면 되겠습니다. 이번 총 10강 동안에는 통계분석 에서 많이 사용되는 R 를 이용해서 진행 되겠구요. R을 좀 더 유용하게 사용할 수 있도록 R 스튜디오 환경을 활용할 예정입니다. 먼저 분석 환경은 서비스 신청이 이루어져야 사용가능하며 서비스 신청이 안되어 있다면 로그인 전에 신규 서비스 신청 을 클릭해서 분석 환경을 사용할 수 있도록 신청해야 합니다. 기본적인 정보를 입력 후 이메일 인증을 하면 인증키가 날아오게 됩니다. 그 이후에 여러 가지 다른 정보들을 입력하면 되는데 사용 기간이나 사용목적 등을 클릭하고 분석 서비스 이용 신청을 할 수가 있습니다. 원활하게 신청이 이루어졌다면 이렇게 서비스 번호가 주어지게 되구요. 이 서비스 번호와 앞서 지정했던 비밀번호를 이용해서 로그인이 이루어진 이 메모를 해 두었다가 이용하시면 되겠습니다. 분석 환경에 알과 파이썬 메뉴를 선택하고 보이시는 R스튜디오 이용하기를 클릭해보시면요. 새로운 웹브라우저가 열리게 되고 어 일어날 환경에 대해서 분석 환경을 사용할 수가 있게 됩니다. 분석 환경 접속이 잘 되었다면 분석에 사용할 기상 기후 데이터 를 신청하여 사용할 수가 있습니다. 분석 환경에 데이터 메뉴를 클릭하여 기상 데이터를 선택합니다. 여기서는 관측 예보 특보 지수 수치 자료 중 원하는 원하는 데이터를 선택하고 데이터의 기간 그리고 이용 목적 등을 선택해서 데이터를 신청할 수가 있습니다. 승인이 완료된 이후에는 데이터를 실제로 사용할 수 있게 되는데 데이터는 금속의 용이한 형태인 csv 파일로 조성됩니다. 기상 데이터 생긴 후에는 사용자 분석 환경인 다운로드 디렉토리에 기상 데이터가 저장됩니다. 여기에 저장된 데이터는 아래 with.csv함수를 이용해서 불러들여서 사용할 수가 있습니다. 이외에도 다른 방법으로 기상 데이터를 사용할 수 있는 방법을 소개해 보도록 하겠습니다. 하이브 라는 빅데이터 환경에 접근하여 사용하는 방법입니다. 기본적으로 사용자들이 분석 환경 에 접속하면 특별한 설정 없이 바로 사용할 수 있는 환경이 구성됩니다. 데이터의 질의 하기 위해 저는 비비게 쿼리 함수를 사용하며 첫번째 파라미터에 는 콘 이라는 변수를 꼭 넣어줘야 합니다. 다음과 같이 다양한 질의 를 통해서 데이터를 실제로 처리하고 가공 할 수가 있습니다. 이뿐만 아니라 타 분야 데이터를 업로드 후에 사용하기 위해서는 데이터 업로드 신청 탭에서 파일을 업로드하고 이용 목적과 데이터 분야를 선택한 후에 신청 을 누르시면 되겠습니다. 이것 역시 다운로드 디렉토리에 저장이 되겠습니다. 다음으로는 분석 결과를 다운로드 하는 방법에 대해서 알아보겠는데요. 이동 방법은 다음에 보는 바와 같이 우측 하단에서 데이터를 클릭 후에 More 를 클릭하면 무브 라는 선택 버튼이 있고 export 디렉토리를 이동하시면 분석결과를 다운로드 할 수가 있습니다. 최종 출제 버튼을 누르면 은 익스포트 디렉토리로 잘 이동 되었는지 확인할 수가 있구요. 날씨마루 홈 페이지로 돌아가서 분석 결과 다운로드 신청 탭에서 export 이동 시켰던 데이터를 확인 및 신청이 가능합니다. 또한 날씨마루 홈페이지에서는 시각화 도구 라는 것을 제공해서 데이터를 시각화할 수가 있습니다. 그래서 시각화 만들기를 통해서 어떤 데이터를 통해서 시각화를 할 수 있을지 선택할 수가 있구요. 이런식으로 시각화를 진행할 수 있습니다. 시각화 내용은 10강 에서 다시 다룰 내용이기 때문에 10강에서 더 자세하게 얘기해 보도록 하겠습니다. 그리고 마지막으로는 비정형 데이터 분석에 대해서 이야기를 좀 해 보겠는데요. 비정형 이라고 하는 것은 엑셀 파일 처럼 데이터가 행과 열로 정형화된 것이 아니라 글이나 그림 처럼 정형화 되지 않는 파일을 이야기합니다. 비정형 도구 이용하기 를 눌러보면은 기상관련 비정형 데이터나 csv로 내 파일을 업로드할 수도 있구요 또는 직접 입력할 수도 있습니다 여기서는 샘플 문서를 추가한 이후에 자료 분석을 눌러 보면 다음과 같이 어떤 단어가 많이 나왔는지 막대그래프나 워드 클라우드 등으로 표현할 수 있으며 더 심도 깊은 분석을 위해서 회기 분석이나 lda붕 또 제공하고 있습니다. 다음으로는 실제로 기상청 날씨마루 홈페이지 들어가서 어떻게 분석 환경을 신청하고 데이터를 신청하는지 대해서 알아보도록 하겠습니다. 보시고 있는 화면이 잘 기상청 날씨마루 홈페이지 메인 인데요 여기서 분석 환경 에 들어가서 마이 페이지에 들어가 보도록 하겠습니다 로그인 창이 뜨는데 만약 서비스 번호가 없다면은 신규 서비스 신청을누르시면 됩니다. 여러가지 안내문과 보안 서약에 대해서 동의를 하시고 단 이후에 사용 기간과 이메일을 적어 주시고 나서 인증번호 발송 을 누르시면은 이메일로 그 인증 번호가 전송됩니다. 실제로 이런 식으로 인증 키가 이렇게 전송이 되겠구요. 앞에서 부여받은 서비스 번호와 그리고 비밀번호를 입력하시면 접속을 할 수가 있는데요. 원활하게 신청이 이루어졌다면 분석 환경에서 빅데이터 분석 도구 환경 중에 R 스튜디오 에 접속할 수가 있습니다. 이중에서 R 스튜디오 이용하기를 누르시면요. 다음과 같이 날씨마루 에서 제공하고 있는 R 스튜디오 환경을 접속할 수가 있습니다. 먼저 파일 밑에 초록색 플러스 를 클릭한 이후에 il스크립트 이라는 것을 클릭해보면 은 크게 4가지로 나누어져 있습니다. 왼쪽 위는 우리가 코딩을 기록하는 공간 이구요. 아래쪽은 그 결과에 대한 확인을 하는 공간입니다. 그리고 오른쪽 위는 우리가 불러들인 데이터가 어떤 것이 있는가 확인할 수 있고 그 아래에서는 현재 작업 공간에 대한 확인이 가능하며 시각화 결과나 헬프 기능 등을 확인할 수 있습니다. 코드를 적고 실행할 때는 컨트롤 엔터를 누르면 실행이 되구요 그 아래 콘솔에서 는 코드 결과가 나오고 객체의 결과가 이 환경에 저장이 됩니다. 분석 환경 접속에 잘 되었다며 는 분석에 사용할 기상 기후 데이터를 신청 해야 되는데요. 실제로 데이터를 신청하기 위해서는 기상청 날씨마루 홈페이지에서 분석 환경의 데이터를 누르시면 됩니다. 실제 데이터를 클릭하셔서 이 화면에 들어오시면 은 원하는 데이터를 선택하시고 신청 항목에 대한 사용 기간과 이용 목적을 지정하신 이후에 기상 데이터 사용 신청을 할 수가 있습니다. 기상 데이터 승인 후 에는 사용자 분석 환경인 다운로드 디렉토리에서 기상 데이터가 저장되는 지 확인해 볼 수 있습니다 실제로 승인이 완료된 데이터 에 대해서만 이런식으로 csv 데이터로 제공을 하고 있습니다. 그 다음에는 실제로 어떤 분석 결과의 다운로드를 하기 위해서 export 디렉터를 이동하는 방법에 대해서만 알아보도록 하겠습니다. 실제 이동하고자 하는 데이터를 선택을 하고 More 클릭한 이후에 무브를 클릭합니다. 그 위에 익스포트 디렉토리로 Choose 를 누르면 은 export 디렉토리로 변경된 것을 확인할 수 있습니다. 이 이후에는 날씨마루 홈페이지로 가서 분석 결과 다운로드 탭에 가서 export로 이동 시켰던 데이터를 다운로드할 수 있습니다. 그리고 분석 환경에서 데이터 탭의 업로드 데이터를 눌러주면요. 실제로 우리가 가지고 있는 데이터를 업로드할 수 있는데요. 그래서 파일 업로드를 해 주고나서 이용 목적과 데이터 분야를 선택해 주고 나서 데이터 업로드 신청 을 눌러주면 은 R 스튜디오의 다운로드 폴더에서 그 데이터를 확인해 볼 수가 있습니다. 그리고 날씨마루 홈페이지에서는 시각화 도구 라는 것을 제공해서 데이터를 시각화할 수 있는데요. 실제로 분석 환경 탭에서 비정형 도구를 눌러 보면요. 여러가지 소셜 데이터 분석의 사례를 조금 확인해 볼 수도 있고요 비정형 도구를 이용해 볼 수도 있는데 비정형 도구 이용하게 눌러보면은 여러가지 데이터를 업로드할 수도 있고 이걸 통해서 자료 분석을 이용해 주면은 이런 비정형 데이터 분석 및 시각화 에 대한 결과를 확인해볼 수가 있겠습니다. 앞으로는 우리가 신청하거나 업로드 했던 데이터를 활용해서 통계 분석 및 시각화 에 대해서 한번 알아보도록 하겠습니다.
2강부터는 실질적으로 R 을 활용한 분석에 대한 이야기를 해 보겠습니다. 먼저 2강은 데이터 탐색 입니다. 그중에서 중심 경향 값 산포도 분포도 와 같이 이런 척도를 가지고 데이터를 한번 탐색해 보는 걸 이야기 해보도록 하겠습니다. 이런 데이터에 대한 탐색을 통해서 변수간의 관계를 확인하거나 추후 모형을 만들 때 분석 방향 등을 설정할 수가 있습니다. 데이터 탐색이란? 보통 EDA 탐색적 자료분석 이라고 부르고요. 실제 본 분석에 들어가기 이전에 사전 분석으로 내가 가진 데이터에 대한 분포를 확인하거나 데이터에 대한 특성을 이해하고 여러 가지 인사이트를 발견할 수도 있습니다. 또는 값 중에서 동떨어져 있는 이상치 들이 있는지 등을 체크하는 역할을 합니다. 이런 확인을 통해서 앞으로의 분석 방향을 설정하는데 도움을 줄 수가 있습니다. 통계는 크게 두가지로 구분이 됩니다. 하나는 기술 통계 또 하나는 추론 통계입니다 우리가 알고자하는 전체 집단을 모집단 이라고 하는데 현실적으로 모집단을 알기 힘들기 때문에 우리는 그 중에서 일부를 추출해서 표본 데이터를 수집합니다. 수집된 표본 데이터로 모집단을 추측하는 것을 추론 통계 라고 부르고요. 방법으로는 추정 또는 검정 등이 있습니다. 또한 기술통계 라고 하는 것은 말 그대로 데이터의 여러 가지 특성을 기술하는 것입니다. 영어로는 디스크립트 스테이스틱스 라고 하고요. 즉 기술 한다 라는 말 자체가 데이터를 요약 및 묘사하는 것입니다. 이런 기술통계 를 표현하는데 있어서 두가지 방법이 있는데요. 한가지는 이번 시간에 다룰 평균 중앙값 분산 등의 통계량 을 통해서 기술하는 것이구요. 또 한가지는 다음 시간부터 총 2강 에 걸쳐 다루게 될 시각화를 통해 데이터를 기술하는 것입니다 이번 시간에는 통계량 을 통해 기술하는 내용을 한번 알아보겠습니다. 크게 3가지 정도로 구분을 할 수가 있는데요. 분포 의 중심 측도 인 대표 값을 나타내는 평균 또는 중앙 값이 있구요. 자료가 퍼져있는 정도인 산포도 를 나타내는 분산 표준편차 등이 있습니다. 그리고 마지막으로 자료의 모양을 나타내는 외도나 청도 등이 있습니다. 가장 많이 이용되는 측도인 평균은 중심 경향값을 다 더해서 전체 갯수로 나눠 줌으로써 중심 측도 가 무엇인지 확인 가능합니다. 중이수는 크기 순으로 쭉 정해 놓고 나서 중앙에 해당하는 값을 이야기합니다. 중이수는 수위를 고려하여 쓰는 것이므로 평균에 비해 이상 치에 덜 영향을 받습니다. 이러한 것을 보통 로버 스타다 라고 표현을 하고요. 가운데 값을 정하는 데 있어서 홀수 개냐 짝수 개냐에 따라서 방법이 달라집니다. 홀수 개일 때는 그냥 가운데 값이 지만 짝수 개일 때는 가운데 2개 값에 평균값으로 중앙 값을 정의합니다. 최린 값은 가장 많이 등장하는 관측 값을 의미하는데 예를 들어서 최근 2주간 비온 날씨가 5회 해뜬 날이 6회 구름 낀 날씨였다 라는 튜빙 값은 했든 날이 되겠습니다. 이러한 값들을 통해 내가 가진 자료에 중심 측도 가 무엇인가를 파악할 수 있습니다. 그리고 산포도에 대한 측도 인데요. 자료가 퍼져 있는 정도인 분산은 실제 편견으로부터 얼마나 차이가 나는가 를 확인하는 측도 입니다. 10 에 보시면 각 관측치 값인 xi 에서 평균 nx 발을 뺀 xi - x 바 가 들어 있습니다. 즉 평균과 관측 치의 차이를 측정해서 평균 으로부터 얼마나 퍼져있는 가를 측정한 측도 입니다. 이러한 분산은 측정 단위의 영향을 받는다는 한가지 단점이 있습니다. 그러므로 측정 단위에 영향을 받지 않도록 분산의 제곱근을 취해서 단위에 대한 부분을 없애 주고 표준 편차 를 만들어 줄 수 있습니다. 이렇게 표준화하는 것의 목적은 단위에 대한 내용을 없애서 비교를 하려는 게 목적입니다. 또한 산포 를 나타내는 측도로 범위와 4분위 범위 라는게 있는데요. 범위는 최대값에서 최소값을 빼서 전체 데이터가 어느 정도 범위 퍼져 있는가를 알 수 있는 것이고 4분위 범위는 인터 콘텍트 레인지 라고 하며 itu 아니 라고 부릅니다. 데이터를 크기 순으로 정렬한 이후에 25% 에 해당하는 q1과 75% 해당하는 q3 의 값에 차이를 말합니다 즉 q3 - q 원을 iq id 라고 부르고요. 이 값이 의미하는 바는 25% 부터 75% 의 값 즉 데이터의 가운데 50% 값이 어느정도 범위에 있는가를 나타내 주는 측도 입니다. 외도와 청도는 데이터가 가지고 있는 분포의 모양을 추측할 수 있게 해주는 측도 인데요. 외도는 어디로 치우쳐 있는가 그리고 청도는 얼마나 분포가 뾰족한 가을에 나타냅니다. 이렇게 조심해야 사항은 외도는 왼쪽으로 치우쳐 있을 때 표현이 스튜 더 레프트가 아니라 스튜 더 라이트 입니다. 왜냐하면 치우침 방향이 아니라 꼬리에 방향으로 이야기를 하기 때문에 논문이나 페이퍼를 읽을 때 조심해야 합니다. 위와 같은 내용을 R 상에서는 코드 한 줄이면 다 표현이 가능합니다. 예를 들면 평균은 영어로 민 분산은 배런스 를 의미하는 var 등으로 이미 내장 함수 로 구현되어 있습니다. 실습에 들어가기 전에 데이터를 잠시 소개해 드리도록 하겠습니다. 총 8개의 변수 이며 측정 위치 측정 날짜 온도 강수량 풍향 풍속 습도 조는 양 등을 나타내고 있습니다. 이제 이 데이터를 불러 들여서 실습을 진행해 보도록 하겠습니다. 날씨 마루에서는 데이터를 신청해서 승인받은 데이터는 다운로드 디렉토리에 들어 있다라고 얘기 했는데요. 저희는 저희가 가지고 있는 weather.csv 데이터를 불러 들여서 사용해보도록 하겠습니다. 먼저 리드 점 csv 함수를 통해서 실제 데이터에 이름을 적고 불러들여서 df 라고 하는 데이터 스트림으로 저장을 했습니다. 여기 보이는 샵에 기능은 주석을 다는 기능으로 초록색으로 표시된 부분을 실행이 되지 않도록 하는 것입니다. 해태 함수는 상위 6개 에 대한 값을 보여주는데요. 보통은 데이터 매우 많은 경우에 데이터를 불러 들이면 내려질 수도 있고 상위 몇 개만 봄으로써 데이터와 변수가 잘 매칭이 되어 있는가 어디가 어긋나게 들어가는 것은 없는가 등을 판단할 수가 있습니다. 데이터를 불러 들이고 나서 레인지 함수를 이용해 주면은 변수명이 무엇인지 확인할 수 있습니다. 실제 데이터가 표면은 지점 일시 기온 점점 c 이런식으로 들어갔는데 데이터를 분석하며 있어서 이런 식으로 변수명 에 들어가 있으며 는 분석할 때 어렵기 때문에 변수명을 변경해 줄 수가 있습니다. 변수명을 4 이미지 함수에 할당이 줌으로써 다음과 같은 값들로 할당해서 변수명을 변경해 줄 수가 있습니다. 실제로 할당한 이외 다시 한번 amg 를 확인해보면요. 지점은 에로 쉬라고 로케이션으로 제가 지정하고 했고요. 1 씨는 데이트 이라고 지정했고 기온은 캠프로 초 이런식으로 제가 변수명을 변경했습니다. 그 밑에 str 이란 남순은 스토어 업체 약자로써 구조를 파악해 주는 함수로 데이터가 어떤 변수 타입 으로 들어가 있고 어떤 값들이 들어가 인가를 파악해 줄 수 있는 함수입니다. 그 다음에는 데이터의 형태 변경에 대해서 말씀을 드릴 건데요. 먼저 이딸라 에 대한 설명 먼저 드리면은 달라는 데이터 3 에서 특정 변수에 접근하는 방법입니다. bf 라는 데이터에서 애로 쉬라는 특정 변수에 접근하는 방법이구요. 특히 지점이나 풍향 존을 양 등 같은 경우는 숫자가 아닌 범주형 변수 이므로 lg 점 벡터를 이용해서 범주로 병영 한 이후에 다시 할당해 주는 것이 필요합니다. 그리고 날짜 형태는 lg 점 데이트 이라는 함수를 통해서 날짜 행사로 변경해 준 이후에 다시 하자 하는 것이 필요합니다. 그 이후에 서머리 함수를 이용하면 한 번에 여러 가지 통계량 등을 확인해 볼 수 있는데요. 예를 들어서 숫자 형태라면 은 평균 표준편차 4분의 수 등이 나오구요. 문제 형태라면 은 각 수준에 대한 빈 도우를 확인할 수가 있습니다. 이렇게 서머리 가지고 기초 통계 라는 확인해 볼 순 있지만 민과 메디안처럼 내장 함수를 이용해서 도 우리가 값을 확인해 볼 수가 있습니다. 특히 이미 내에서 na 점 아래 및 코트로 라는 값이 들어 있는데요. 여기서 na 는 나 더벨 업을 이라고 해서 결집 값을 의미합니다. 결 치 값을 아래 m 리무버 할 것이냐 그렇다 란 어떤 아기 먼트 를 통해서 결 치 값이 없는 나머지 깐마늘 이용해서 평균값을 제시하라 는 의미입니다. 크기 외에 왜인지는 검 이라고 해서 두 가지 값을 어 반 해주고 있는데요. 하나는 최소 값이 그 다음에 최대값을 반응해 주고 있습니다. iq r 이라는 함수는 인터 콘텐츠로 렌즈라고 해서 데이터를 정렬하는이후에 25% 에 해당하는 q1 값과 75% 에 해당하는 q3 갑 제 차일에 이야기합니다. 이 값이 의미하는 바는 25% 부터 75% 의 값 즉 가운데 데이터 50% 는 어느정도 범위의 있는가를 나타내 주는 측도 라고 이야기했습니다. 그리고 외도와 청도는 sql as 그리고 쿨토시 스 라는 함수로 정의가 되어 있는데 이 함수들은 내장 함수가 아니라 패키지를 설치 후에 사용할 수 있습니다. 패키지 라는 것 자체가 여러 가지 함수나 데이터를 모아 놓고 다운로드 받아서 사람들이 그것을 쓸 수 있게 배포 해놓았습니다. 설치방법은 보시는 바와 같이 스토어 점 패키지 를 통해서 실제 설치가 가능하구요. 사용방법은 설치된 이후에 라이브러리 라는 것을 가지고 나는 이것을 사용하겠다 라고 명시를 해 줄 수가 있습니다. 사용하겠다는 명시 이후에는 그 패키지 안에 들어있는 여러 가지 함수를 사용할 수 있는데요 여기서는 f 베이식 쓰라는 패키지 안에 있는 스큐 니즈와 쿨토시 스트 함수를 이용하고 있습니다. 외도가 정도 값에 이렇게 실제로 확인할 수가 있구요. 이 뿐만이 아니라 통계 라는 확인하는 다른 패키지 도 사용할 수 있는데 예를 들면 은 psyche 라는 패키지 안에는 dri 이라는 함수가 있습니다. 요거 를 이용해 보시면요 실제로 템플러 쇼 에 대한 값이 평균 것이고 그 다음에 표준편차는 것이고 메디안 같은 것이고 이런 식으로 알을 활용하면 여러 가지 데이터에 대한 통계 랑 탐색을 손쉽게 할 수가 있습니다. 이번이 가는 통계량 을 통해서 데이터를 탐색하는 방법과 그것을 어떻게 R로 표 하는가에 대한 방법에 대해서 이야기 해보았습니다. 다음으로 3강 부터는 시각화를 통해서 데이터를 탐색하는 방법에 대해서 알아보도록 하겠습니다.
안녕하세요 이번 3강 에서는 그래프를 활용한 데이터 탐색에 대해서 이야기 해보도록 하겠습니다. 실제로 직접 데이터 분석에 대해서 2강에서 얘기를 했었는데요. 2강에서는 통계량 을 통한 탐시적 데이터 분석 이었다면은 3강 부터는 그래프를 통한 데이터 탐색 입니다 그래서 데이터의 형태 구분에 따라서 또는 데이터의 개수에 따라서 그래프가 달라질 수 있기 때문에 9분을 해서 이야기를 한번 해보도록 하겠습니다. 상식적 자료 분석에 는 평균 분산 등을 활용한 통계량 으로 탐색하는 방법과 그래프를 이용해 탐색하는 방법이 있습니다. 그래서 이번 상황에서는 eda 중에서 가장 많이 이용되는 그래프를 이용한 탐색적 자료분석에 대해서 이야기를 해볼 거구요. 백번의 말보다 하나의 그림이 더 큰 효과를 가진다는 말이 있습니다. 왼쪽 그래프처럼 이러한 시각화를 통해서 추세를 파악하거나 다른 것과 아예 좀 동떨어져 있는 이상치가 있는지 파악할 수도 있구요. 오른쪽 그래프 처럼 두 변수 간의 관계성을 눈으로 확인해 볼 수도 있습니다. 이렇듯 인사이트를 파악하는 시간이 단축 되서 분석하는 도움이 되므로요. 많은 사람들이 시각화를 이용을 하고 있구요. 분석을 하고자 하는 변수에 개수에 따라서 그래프가 달라질 수가 있구요. 그리고 변수의 어떤 타입의 따라서 달라질 수도 있습니다. 변수의 개수가 하나일 때를 일변량 또는 단변량 이라고 하고요. 2개일 때 이변량 세 개 이상 일 때를 다변량 이라고 부릅니다. 또는 크게 문자 형 데이터를 그래프로 그리는가 아니면 숫자형 데이터를 그래프로 그린 가로 나눌 수가 있습니다. 이렇게 구분을 하는 이유는 개수나 타입에 따라서 사용하는 통계 방법이나 그래프가 달라질 수 있기 때문입니다. 먼저 데이터가 문자형 이면서 변수가 하나 일때 표현 가능한 그래프에 대해서 한번 알아보겠습니다. 가장 많이 이용되는 것은 파이 차트나 막대 그래프 입니다. 각 범레에 대한 빈도 또는 비율을 쉽게 파악이 가능합니다. 먼저 파이 차트는 각 범주가 전체 중에 어느 정도의 비율인지 등을 파악하는 데 좋습니다. 여기서는 저는 양이 영과 10 그리고 아무것도 적혀있지 않은 값이 가장 많은 것을 확인할 수가 있습니다. 하지만 바 차트는 범례 수가 너무 많아 지면 보기 힘들다는 단점이 있기 때문에 범례 수가 3개 부터 5개 정도 일 때 쓰는 것이 적당합니다. 또한 막대 그림은 범죄 간의 비교를 하여 차이를 확인하는 데 좋습니다. 이 슬라이드에 넣지 않았지만 이 외에도 파레토 차트 와 같은 문자형 변수 를 표현하는데 여러 가지 방법론이 개발되어 있습니다. 숫자형 데이터 의 경우 시각화 로 가장 많이 이용되는 것은 박스 클락 상자 그림이라고 합니다. 값을 크게 새로 정애란 이후에 25% 해당 1가 q1 이라고 하고요. 50% 에 해당하는 q2 또는 주위 수라고 합니다. 그리고 75% 해당 할 떄 q3 라고 하는데 이러한 개념이 4분이 수에개념입니다. 이러한 개념과 최소 카페 최대값 등을 그래프로 한번에 표현할 수 있으며 예 4분이 수를 박 씨의 아랫부분 이사 분이 수를 박스안에 라인 그리고 3 4분 이주를 박스에 윗부분으로 표현하며 3 4분 위에서 1사 분이 수를 값을 뺀 iq r 내 값으로 박스에 크기로 편합니다 그 뜻은 25% 부터 75% 의 값인 가운데 50% 값이 어느정도 거미 펼쳐져 있는가를 표현해 줍니다. 1 4분이 수와 상자 분해 수에서 상자 길이의 1.5 배 를 넘어가는 값이 있다면 그 값을 이상 치로 환전할 수 있고 여러가지 정보를 이렇게 담고 있기 때문에 실질적으로 가장 많이 이용되는 그래프 중 하나입니다. 숫자 의 값을 범위로 나눠서 빈도를 확인한 그래프를 히스토그램 이라고 합니다. 풍속 값이 0 부터 0.5 구간에는 몇 건 0.5 해서 1 구간에는 몇 건 등을 표현할 수 있고 아래서는 히 스 트 이라는 함수로 구현 가능합니다 실제 빈도에 대한 곡선 추정치를 라인즈 라는 함수를 이용해서 적합 시켜서 확인할 수도 있습니다. 또한 기상 데이트 의 경우에는 날짜에 따른 갑제 변화를 보는 경우가 많기 때문에 시간에 따른 변화 추이를 알고자 할 때 시계열 그래프를 그려서 확인합니다. 함수로 는 플랫 점 ts 인데 ts 가 타임 시리즈 의 약자입니다. 변수의 개수가 2개 일때를 이변량 이라고 하며 영어로는 바이너리 라고 명합니다. 이런 이변량 데이터에 대해서 표현하는 가장 많은 흔한 방법이 스켈터 플랍 이라고 하는 3 정도를 가장 많이 이용합니다. 스케터 라는 말 자체가 흑 뿌리다 라는 말인데요. 각 2개의 변수를 x 축과 y 축에 놓고 해당 포인트를 흩뿌리는 모양을 통해 어떻게 분포하고 있는 것을 알 수 있습니다. 추후에 배우겠지만 그래프를 통해서 파악하는 것에는 이 사이트를 볼 수 있다는 장점이 있지만 정확한 수치 값을 알 수 없다는 단점이 있으므로 수치로 나타내는 시도가 있었습니다. 이런 산 점도의 값을 수치로 나타내는 시도로서 상당 관계를 확인할 수가 있습니다. 이러한 3 정도를 각 숫자형 변심을 조합으로 페어와이스하게 표현한 것이 산 정도 행렬이라고 부릅니다. 대각선을 기준으로 위 아래는 동일한 정보를 담고 있는 그래프 입니다. 그렇기 때문에 구제 위아래를 동일한 정보를 담지 말고 다른 정보를 담아서 보여주자 라는 시도로써 폐 얼쑤 패널 대공 같은 여러 함수들이 개발되어 있습니다. 이제 실습으로 한번 넘어가 보도록 하겠습니다. 엘이디 정 csb 함수를 이용해서 데이터를 불러오고 레인지 함수를 이용해서 변수명이 변경한 것은 지난 시간에 언급을 했구요. 먼저 일변량 그래프를 먼저 보면 케이블 이라는 함수를 이용해서 데이터의 클라우드 라는 값이 어떤 범주의 요건 정도가 있는지 확인할 수 있습니다. 빈도를 확인할 수가 있고요 그리고 전원량을 사실 목적으로 관측 되며 낮에는 매 시 관측 되지만 밤에는 3시간 간격으로 관측 됩니다. 그러므로 관측 값이 없는 시간대가 존재해서 결집 값이 비율이 높습니다 결과를 보시면은 명은 391 건 일은 130건 등의 결과를 확인할 수 있습니다. 이러한 결과를 시작하기 위해서 파이 차트를 그릴 건데요. 함수는 파이라는 함수입니다. 안에 들어가는 내용들을 보시면 실제 빈도수를 잉크 변수로 넣어주고요 각 빈도에 대한 레이블을 가려줄 수 있습니다. 메인 이라는 어떤 아기면 들을 통해서 실제 그래프의 전체적인 어떤 제목 타이틀을 정해 주고 있습니다. 막대 그래프를 이용하기 위해서는 바 플라이 라는 함수를 사용합니다. 여기서는 색깔도 정해 주기 위해서 칼라 라는 인자를 넣어주었습니다. 상자 도표를 그리기 위해서는 박스 플라이 라는 함수를 사용할 수가 있습니다. 안에 들어가는 이 무슨 숫자형 교수가 들어갑니다 풍속의 중앙값 일상 매수 3 차분히 수 등 한번에 여러가지 통계 란 값 등을 파악할 수 있습니다. 그리고 히스토그램 를 그리기 위해서는 키이스트 함수를 이용할 수가 있고 데스티 함수를 이용해서 실제로 밀도 추정 값도 표현해 줄 수가 있습니다. 또한 시간에 따른 값의 변화를 보기 위해서 시계열 타임 시리즈 약자인 ps 를 써서 플레이 점 ps 를 이용한 시계열 그래프를 확인할 수도 있습니다. 이변량 그래프에서 가장 많이 쓰이는 산 점도를 그려보도록 하겠습니다. 3 정도는 두 개의 숫자 n 변수에 대해 값일 수 뿌리 듯이 표현한 건데요. 블라드 안에 두개의 변수를 넣어주면 됩니다 메이는 타이틀에 대한 것을 지정해주고 칼라는 색깔에 대한 것을 지정해줍니다. 또한 pch 이라는 값은 점에 모양을 컨트롤 해 줄 수 있습니다. pc 에 지는 20번 이속이 차이는 점인데 깔끔해서 많이 사용하고 있습니다. 배열 쓰는 산 점도 해를 만들어 주는 함수입니다 숫자 형태만 뽑아내 주기 위해서 제가 이런 식으로 지금 작성을 했는데요. 콤마 를 기준으로 왼쪽은 행 이고 오른쪽은 열의 기준입니다. 그러므로 행은 조건이 없으므로 모든 힘을 가지고 올 거고 열은 숫자형태인 템포로 챠 웨인 윈드 스피드 흄 at 만 가지고 와서 3점 된게를 그려 줄 수가 있습니다. 사실 산 점등 열은 위아래가 hy 충만 바퀴 어찌 같은 정보이기 때문에 굳이 같은 정보를 위아래로 표현할 필요가 있겠는가 하는 의문으로 다음과 같은 패럴 스핀 아래 함수를 만들어 냈습니다. 3 점 행렬 과 더불어서 상당 난제 그리고 대각성 보내는 히스토그램을 편해질 수 있기 때문에 더 많은 정보를 담고 있습니다. 이렇게 이번 챕터에서는 데이터 탐색 중에서 시각화를 통해 특히 단변량과 이변량 데이터에 대한 탐색에 된 이야기 해보았습니다 다음 시간에는 3개의 이상의 변수를 활용한 다변량 데이터 탐색에 대해서 이야기 해보도록 하겠습니다
4강은 그래프를 활용한 데이터 탐색 두번째인데요. 그 중에서 다변량 그래프에 대해 확인해보겠습니다. 특히나 스팀에 그래프와 바람 장미 산 점도 그리고 레이더 차트 그 위에 기타 그래프에서 확인해 보는 시간을 가지겠습니다. 두개의 변수를 고려한 것을 다변량 바이너리 라고 하고요. 세 개 이상의 변수를 고려한 것을 다변량 멀티 베리라고 부릅니다. 3강 에서는 기본적인 단변량과 이변량 일대 그래프를 그리는 방법에 대해 확인해 보았다면 이번 시간에는 좀 더 다양한 이변량 그래프와 3개 이상의 변수를 고려하는 다변량 그래프에 대해서 알아보도록 하겠습니다. 먼저 캘린더 히트 맵 이라고 해서 날짜에 따른 온도 등의 수치가 어떻게 변하는지를 확인할 수도 있습니다. 열을 뜻하는 히트와 지도 를 뜻하는 맵이 결합된 단어이고요. 색상으로 표현 가능한 정보를 일정 이미지 위해 그래픽으로 출력한 것이 특징입니다. 값이 크면 빨간 색에 가깝게 작으면 노란 색에 가깝게 표현하며 그래프 만 보고도 어느 시기가 온도가 높은 지 쉽게 파악이 가능합니다. 시간에 대한 정보와 온도와 같은 수치 정보 두 가지가 필요하므로 이변량 그래프 라고 볼 수 있습니다. 다음은 기상청에서 가장 유명한 그래프 로서 바람 장미 라고 부르는 윈드 log 그래프가 있습니다. 바람 장미 는 어떤 관측 지점에 대해서 해당 기간동안 방위 * 풍향 촬영 빈도와 풍향 * 풍속 계급 빈도를 나타낸 것이며 막대는 바람이 불어오는 방향을 나타내고요 길이는 해당 바람이 불어온 빈도를 백분율로 나타낸 그래프입니다. 그림을 그릴 때는 필요한 변수는 풍향과 풍속 두 가지 이지만 풍향 풍속 구간 해당 품속 구간의 빈도 등 여러가지를 표현하고 있기 때문에 답에 대한 그래프 로서 확인할 수가 있습니다. 다음은 200년 그래프에서 시작해서 여러가지 정보를 조금씩 추가하여 다변량 그래프를 만드는 내용에 대해서 확인해보겠습니다. 2018년 11월 기준으로 현재 만 3천여 개의 패키지가 개발되어 있습니다. 그중에서 패키지 다운로드 스 1위는 헨리 위컴 이라는 뉴질랜드 출신의 데이터 사이언티스트 만든 주지 플라투라는 패키지입니다. 취지 라는 말은 그래픽 오브 크래머 라는 뜻이고요. 이런 주제 플라 투란 은 패키지를 통해서 그래프를 깔끔하게 그릴 수가 있습니다. R을 활용하는 가장 큰 이유 중 하나는 시각화에 뛰어나다는 것인데 그 이후에 가장 큰 공헌을 한 패키지이기도 합니다. 먼저 보시는 바와 같이 2개 축의 3 점도를 그려 주는데요 여기까지는 이변량 그래프로 볼 수 있습니다. 하지만 산정도의 칼라란 어떤 값을 지정해 줌으로써 색을 구별할 줄 수 있고 이로 인해 3차원 정보를 표현할 수 있는 다변량 그래프로 표현이 가능합니다. 책 뿐만이 아니라 사이즈로 크게도 지정이 가능하고 이외에도 셰프로 모양 알파를 통한 투명도 를 지정하는 등 여러가지 정보를 추가할 수 있다는 것이 큰 장점이라 보기좋게 표현할 수 있습니다. 또한 기상 데이터를 표현하는 데 서울은 108번 부산은 159 번 제주 184 번 등 각 지역별로 연평균 날씨를 레이더 차트를 통해 상대적으로 비교가 가능하게 그리고 직관적으로 경향성을 알 수 있습니다. 레이더 차트는 다른 말로는 거미줄 그림 이라고도 합니다. 각 항목의 수준을 점으로 찍고 품 깐 점을 선으로 이어서 균형과 경향을 직관적으로 알 수 있게 해주는 그래프입니다. 그림에서 보면 각 온도 전을 양 등의 수치 평균값을 기준으로 108번 소외 보다는 184 번 제주도가 더 높게 올라가 있는 부분이 상대적으로 더 큰 값을 의미하고 그런 것들이 어떤 것들이 있는가 쉽게 파악 가능 합니다. 이외에도 모자이크 그림 * 그림 평행 좌표 그리고 t 맵 등 여러 가지 방법론이 있으니 데이터 또는 상황에 맞는 시각화를 고려해 가장 잘 표현할 수 있는 방법이 무엇일까를 고민하는 것이 필요합니다. 모자이크 그림의 가장 흔한 예시가 다음에서 보는 것처럼 타이타닉호 승객 데이터를 통해 사망과 생존을 빈도 기반으로 나누어서 표현한 것입니다. 평행 좌표 역시 다음 보시는 바와 같이 표현함으로써 변수 값에 높고 낮음이 다른 변수가 어떻게 연결되어 있는가를 확인할 수 있고요. 버블 그림이나 틀린 앱을 통해서 어떤 값이 큰지 작은지 등을 시각적으로 쉽게 파악할 수 있습니다. 지금껏 이야기한 다변량 그래프를 이번에는 R로 어떻게 구현할 수 있는가를 이야기 해보도록 하겠습니다. 먼저 바람 장미 를 먼저 그러 볼 건데요. 바람 장미를 그리는 함수는 오픈 에어 라는 패키지 안에 윈드 오지 라는 함수로 구현되어 있습니다. 바람 장미 를 그리는 방법은 윈드 log 란 함수 안에다가 풍속에 대한 변수를 웬디 스피디 압전 nws 로 넣어주고 풍향에 대한 변수를 wp 윈드 디렉 지원의 약자입니다 그래서 이런식으로 값을 넣어주면은 다음과 같은 그래프를 확인할 수 있습니다. 그 다음에 날짜에 따른 히트 맵 클레이튼 m 역시 오픈 에어 나는 패키지 안에 구현 되어 있구요. 날짜 변수와 그리고 취업 연수 두가지를 지정해 주면 되는데 여기서는 조는 온도인 텐프로 처우를 지용 해주었구요 그리고 날짜는 데이트를 통해서 지정해 주었습니다. 날짜 형태의 변수를 지정해 주고 있으므로 원스 이걸 7 처럼 열에 대한 값만을 출력해 줄 수도 있습니다. 그 다음으로는 주지 플라토 패키지 를 활용한 시각화를 알아보도록 하겠습니다. 주지 플러튼 크게 주지 플랍 이라는 함수와 jeom 이라고 시작하는 함수로 나누고 있습니다. 주 집합 함수를 통해 도와 제 와 같은 틀을 만들어 놓고요 그 위에다가 주위에 먼저 버 포인트 주의 음원 드박 박스 클라 팅 으로 실제 그래프를 그려 줄 수가 있습니다. 실제 뒤집 프라 부분만 놓고 보면은 데이터명과 시카코 하려는 변수명을 적어주고 이것만 돌리면 아무런 어떤 값이 나오지 않는 도화지 같은 틀만 나오게 됩니다. 이런 도 아직 뒤에다가 geum 언더바 포인트라는 것을 추가로 적어 줌으로써 산정도를 우리가 그려 줄 수가 있는 것입니다. 또한 s 테리 이라고 하는 미적 감각에 뜻을 가지고 있는 as 안에다가 여러가지 파라메터들을 추가해 줄 수가 있는데요. 보시는 바와 같이 칼라를 지정해 줄 수도 있구요. 사이즈 또는 뭐 셰프 알파 앗흥 여러가지 추가적인 정보를 보여줄 수 있다라는 장점이 있습니다. 실제로 칼라를 돌려서 되는 칼라 가지고 구분을 할 수가 있고요 그 다음에 어디다가 사이즈가까지 추가로 입혀 줄 수가 있습니다. 특징은 플러스를 연결 된다는 것인데요. 해들리 및 껌 이라는 개발자가 만들때 플러스 로서 여러가지 정보를 연결해서 쓸 수 있게 해놓았습니다. 이렇게 사가는 산 점도 히트 맵 등이 별양 에서부터 시작해서 바람 장미 레이더 차트 같은 다 블랑의 이르기까지 여러가지 시각화 에 대해 알아보았습니다. 시각화를 이용하면 더 빠르게 데이터에 대한 이해를 할 수 있고 통찰력을 얻을 수가 있습니다. 다음 강에서는 실제로 데이터를 분석할 때 크게 영향을 미칠 수 있는 이상치 결집 값에 대해서 알아보고 이런 것들을 어떻게 처리 하는가에 대해서 알아보도록 하겠습니다.
이번 시간에는 분석을 함에 있어서 크게 영향을 미칠 수 있는 결측치 또는 이상치에 대해서 알아보겠습니다. 크게 영향점 이상치를 이야기 할 건데요. 먼저 영향점 이라는 단어가 있습니다. 일반적인 정의는 하나의 점이 일반적인 범위에서는 벗어나서 다른값에 들어가는 크게 다르고 그점 때문에 전체적인 결과에 크게 영향을 끼칠 수 있는 점이라고 합니다. 영향점은 크게 두가지로 구분이 되는데요 아웃라이어라고 불리는 이상치구요. 또 하나는 레버리지 포인트라고 부리는 지렛점 입니다. 아웃라이어라고 한 것은 y 값 즉 확인하고자 하는 타겟 변수가 다른 것과는 차이가 많이 나는 것을 아웃라이어라고 부르고 요. x 축에 해당하는 값이 편견으로부터 너무 떨어져 있다보니까 차이가 크게 나는 것 즉 x 값이 다른 가까 크게 차이나는 점을 지렛점 이라고 부릅니다. 이번 시간에 다룰 내용 중 하나가 아웃라이어라고 합니다. 보통은 그 원인을 파악해 보면은 데이터를 수집하는 기계의 오작동으로 인해서 그런 값이 나올 가능성이 있고요 또는 실제 이상치일 수도 있습니다. 기상 데이터 에서는 기상 기후 품질검사 알고리즘 기준이라고 해서 그 기준을 넘어가는 값을 아웃라이어라고 판단하고 있습니다. 여러 그래프를 그려 보다 보면은 다른 데이터와 는 동떨어져 있는 아웃라이어를 발견할 수가 있구요. 이러한 점은 모형을 세우거나 통계량 은 9회 때 영향을 미칠 수 있는 값이기 때문에 잘 처리를 해야 합니다. 이상치 를 검출하기 위해서는 가장 쉬운 방법으로는 그래프를 그려 봄으로써 떨어져 있는 값이 있는지 없는지를 볼 수 있는데요. 그래프로 는 산점도나 박스 플랫 를 이용할 수가 있습니다 또는 편견으로부터 많이 떨어져 있는 값으로 상위 2.5% 에 해당하는 값 그리고 하위 2.5% 에 해당하는 값을 의심해 볼 수도 있습니다. 마지막으로는 기상 기후 품질검사 아이보리 중 기준과 같은 해당 분야의 지식을 통해서 정해 된 기준값 보다 크거나 작은 것들을 이상 지로 판단할 수가 있습니다. 예를 들면 은 기상 데이터 에서는 다음과 같은 기준 값으로 상한가 1 을 정해 두고 여기서 정해 둔 값보다 큰 값이면 상한 작은 가시면 한해 로 대체하는 방법을 쓰고 있습니다. 다음은 결측지에 대한 설명입니다. 미씽 밸류 라고 편하고요 나더벨 러브 의 약자로써 na 로 표현을 많이 합니다. 결측치 값이 포함되어 있는 모형은 잘못된 결론에 다다를 수 있기 때문에 잘 처리를 해야 합니다. 보통 결집값을 표현하는 정보가 존재하지 않는 경우가 대다수 이기 때문에 유지 얼린 5 인포메이션 이라고 표현을 하고 있습니다. 대다수는 정보가 없지만 가끔씩 정보를 출원할 수 있는 경우가 있습니다. * 측을 크게 두가지로 나누면 더 많은 규칙과 넌랜덤한 규칙으로 나눌 수가 있는데요. 넌랜덤 하다면 시그널에서 트렌드를 고려하는 등 이건 얻어낼 수 있는 정보를 활용해서 결측치를 표현할 수 있습니다. 결측치를 탐색하는 방법으로는 결측치의 패턴을 파악하는 방법과 각 변수에 결 치게 빈도 및 패턴을 시각화 해 주는 방법이 있습니다. 이외에도 여러가지가 있겠지만 여기서는 두 가지에 대해서 알아보도록 하겠습니다. 먼저 결측의 패턴을 테이블 형태로 표현해 줌으로써 어떤 변수의 조합이 결치가 맞는지 등을 파악이 가능합니다. 여기서 보면 숫자 0 값은 결치고요 일은 결치기 아닌 것을 표현해 주고 있습니다. 그래서 어떤 결집 패턴이 가장 많이 나오는지 파악이 가능합니다. 시각화로도 표현이 가능한데요 시각화에 왼쪽 결과는 각 변수 별로 어느 변수가 결 충혈이 높은지 한눈에 알 수 있게 해주는 그래프입니다. 이 예시에서 보면 왜 레인이라는 변수와 클라우드 라는 교수가가 장교 춘계 높다라는 것을 알려주고 있습니다. 오른쪽 결과를 보면 빨간색이 결측이고 파란색은 결측이 아닌 것을 표현하고 있는데요. 왜 이것만 결치인 패턴이 가장 많고 왜인가 클라우드가 결정 패턴이 그다음 번째로 많고 마지막 세번째가 모두 결정이 아닌 값이 이정도가 존재한다. 라는 결과를 표현하고 있습니다. 그렇다면 과연 어느 정도 결측일 때 어떻게 처리해야 하는가 또 큰 문제인데 사실 명확한 가이드라인이 있는건 아닙니다. 하지만 통계에서는 일반적으로 이 헤어 라는 책에 보면 은 다음 같은 가이드라인을 제시하고 있습니다. 10% 미만 이라면 삭제를 하고 10% 에서 20% 라면 은 여러 가지 모양을 만들거나 핫 100 방법을 이용하라고 제시하고 있습니다 하 때기 라고 한 것은 매년 조사에 오던 자료에 대해서 올해 값이 결제기라면은 작년 자료를 이용해서 채우는 것을 얘기합니다. 20% 이상 이라며 는 모형으로 대체를 하고 50% 이상 이라면 보통 변수를 사용하지 않습니다. 보통은 미간 즉 데이터를 제외하고 분석을 수행하거나 다른 값으로 대체를 해서 채워 넣기도 합니다. 채워 넣는 경우 결치기 아닌 나머지 값에 평균값 또는 중앙 값으로 채워 넣기도 하구요. 조건부 대체 라고 해서 컨디션의 인플레이션 이라고 합니다 다른 여러 주권 들이 비슷한 값들을 추출해서 그 값들의 평균으로 대체하기도 합니다. 또는 통계적인 방법으로 가중 대체 라고 부르는 멀티플 임프 테이션 방법을 이용해서 대체하는 방법들도 최근 대로 많이 이용하고 있는 추세입니다. 기상청의 관측 자료는 실시간으로 품질관리를 하고 있기 때문에 기기 오작동 및 점검 의사 외에는 결집 찌가 없지만 관측 죽이나 기상 상황에 따라서 값이 없는 경우 제거하고 분석하는 것이 좋습니다. 이번 실습 에서는 결치값이나 이상치 를 제거하는 방법을 해 볼텐데요. 결집값을 발견하기 위해서는 이 g.na 라는 함수를 이용해 줄 수 있습니다. 이점 na 란 함수를 의미는 na 낫 어 베러 불결치 값이냐 라고 묻고 있습니다. 그렇기 때문에 이것에 대한 결과는 묻고 있기 때문에 트러플 슥 벌써 대답을 해 줄 수가 있고요. na 가 아닌가 를 확인할 수 있기 때문에 na 라멘은 트로 결 치기 아니라 실제 값이 잘 들어가 있다면 폴스 를 반환합니다. 느낌표 를 붙여주면은 트루는 펄스로 그리고 펄스는 트루로 변경되는 것을 알 수 있습니다. 그래서 저희가 하려할 것은 느낌표로 붙여놓고 이 g.na 라는 걸 가지고 결치가 아닌 값들을 우리가 확인해 볼 수가 있을 것입니다. 보통 아래서는 트루에 해당하는 값만을 추출 해주는데요. 그래서 콤마를 기준으로 왼쪽에는 행의 기준 이고 오른쪽은 열의 기준입니다. 이런 행의 기준에다가 트루 펄스 해당하는 논리 값들을 넣어 줌으로써 프로의 외치 해당하는 행을 뽑아 올 수가 있습니다. 만약 존 열량이 na 운행을 제외 하고자 한다면 은 이런 식으로 적어주면 콤마를 기준으로 왼쪽에 적었음 으로 행위의 기준을 준 것이고 그 기준이 저널 양이 na 가 아닌 것에만 트롤 할당해서 값을 뽑아 올 수가 있습니다 또는 컴플렉스 점 케이스에 가는 걸 가지고 할 수도 있는데요 이 함수는 변수 중에 하나라도 결치가 없으면 트루 아니면 펄스로만 내주는 논리 연산자 입니다. 그렇기 때문에 이 함수를 이용해서도 결치가 없는 데이터를 만들 수가 있습니다. 저는 이 함수를 이용해서 결치가 없는 데이터를 만들어서 d 없으리라고 초장을 했습니다 실제로 결집 패턴을 보고자 할 때는 vim 패키지와 마이스 이라는 패키지를 이용해서 확인해 볼 수가 있는데요. 마이스 패키지 안에 md 점 패턴 이라는 함수를 이용해 보면은 이런식으로 테이블 형태로 어떤 값들이 지금 결제 있는가에 대한 조합을 확인해 볼 수가 있구요. 그리고 vin 패키지 안에 agi 라는 함수를 이용해 주면은 실제로 어떤 변수들이 지금 결치치 값을 나타내고 있고 어떤 조합이 결치가 많은지를 조합으로 서식 악화로 표현해줄 수 가 있습니다. 이상치 에 대해서는 데이터를 제가 임의로 생성을 하고 그 중에서 다섯번째 값을 일부러 온도를 300도 라고 지금 놓았습니다. 그래서 먼저 데이터를 생성 을 시켜 놓고 나서 박스 플러스 한번 템 포즈를 그려보았습니다 그랬더니 한 날 값이 뚝 떨어져 있는 값을 확인해 볼 수 있습니다. 이 값이 아마 이상 칠 것이다 라고 의심해 볼 수가 있을 거고요. 그리고 다른 플러스 그려 봐도 1 값이 뚝 떨어져 있는 것을 알 수가 있습니다. 그래서 저희가 온도 기준을 예시로 백도 이상은 이상하다고 가정을 하고 그 다음에 백도 이상은 제외한 코드를 한번 짜보도록 하겠습니다. 실제로 데이터 프레임 텐프로 차가 100보다 큰 야장냐 에 대해서 논리 연산자를 해보면 은 100보다 작다 라는 어떤 값에 대해서 트루로 틀어 두고 마지막 300도 만 paul's 에 값을 나온 것을 알 수 있습니다. 아래 저는 트루에 해당하는 값만 가져올 수 있다 라고 얘기했습니다. 그러므로 이 값을 해에 기존의 넣어주면 첫 번째부터 네 번째 값에 해당하는 값을 가져올 수가 있습니다. 그래서 이상치를 제외한 나머지 데이터를 추출할 수 있게 됩니다. 이렇게 오가는 분석 결과에 영향을 줄 수 있는 이상치와 결측지에 대해서 확인해 봤습니다. 실제로 이러한 값들을 어떻게 발견하며 이상치와 결측치를 처리하는 방법에 대해서 논의해 보았고 전체적인 분석 전에 이러한 전철을 해주어야 전반적인 효과를 제대로 추정할 수가 있겠습니다. 다음 6강은 실제 매핑 과 보관법을 통해서 데이터를 결합하는 방법이라든지 값을 추정하는 방법에 대해서 이야기 해보도록 하겠습니다
6강은 여러가지 데이터를 합치는 데이터 결합 및 병합과 더불어 보간법에 대한 내용을 다뤄보도록 하겠습니다. 데이터 분석을 하기 전에 서로 다른 데이터 간의 시간 공간적인 것에 대한 해상도를 맞추는게 선행되어야 합니다. 본 강의에서는 이뤄진 대대로 합치는 데이터 결합 및 경합을 통해서 기준이 시간이 된다면 시간적 매핑을 할 수 있을 것이고요. 그리고 공간적인 해상도에 대한 맵핑은 보간법을 통해서 할 수 있을 것입니다. 데이터 결합이란? 데이터를 결합하는 방법에는 크게 두 가지가 있습니다. 바인드 를 활용하는 방법과 머지를 활용한 방법입니다. 그 중에서 먼저 바인드를 먼저 보고 있는데요 영어로는 먹는다라고 하여 바인드 라고 합니다. 바인드는 세부적으로 두 가지 측면이 있습니다. 행 에로우 앞 짜인 알을 따서 행 * 데이터를 결합하는 r 바인드 열애 칼럼 4 앞 짜인 씨를 따서 10 * 데이터를 결합하는 c 바인드 가 있습니다. 또한 머지라고 하는 병합은 일부가 동일한 데이터를 가진 서로 다른 데이터를 특정 기준에 따라서 결합하는 방식이며 특정 기준에 해당하는 키가 존재합니다. 그래서 이 키를 기준으로 두 개 혹은 그 이상의 데이터를 결합 할 수 있게 됩니다. 데이터 결합 : 행 합치기 먼저 i'll 바인드 설명을 드리면 로우를 보인다 라고 해서 행 합치기 라고도 합니다. 다음과 같은 예시 데이터 데이터 프레임 뭔가 데이터 프레임 투가 있을 때 데이터팩 뭐 4 5 5 개의 행과 네 개의 변수가 있구요. 데이터 fm2 해도 다섯 개의 행과 네 개의 변수가 있습니다. R 바인드를 통해 단순히 위아래로 결합해 줄 수 있는데 그 결과를 보시면 10개의 대표가 생성되어 있는 것을 확인할 수 있습니다. 변수의 속성이나 이름 개수가 다를 경우에는 오류가 발생할 수 있기 때문에 주의하셔야 합니다. 다음은 c 바인드 입니다. 칼럼을 묶어 주어 열 합치기 라고 부르며 다음과 같은 nc 데이터 데이터 프레임의 뭔가 투가 있을 때 c 바인드를 수행하면 결과가 단순히 좌우로 결합이 됩니다. 즉 변수가 8개가 된것을 확인할 수가 있고요. 이 경우에는 행의 개수가 서로 다를 경우에는 오류가 발생할 수가 있습니다. 데이터 병합이란? 다음으로는 정말 많이 사용되는 데이터 병합 하기에 대해 알아보겠습니다. 두 개의 데이터를 기준으로 키 변수에 따라서 결합해 주는 방식이며 기준이 되는 키를 시간적인 변수를 써주면 시간적인 맵핑을 진행할 수가 있습니다. 보통 기준이 든 기반 수가 이름이 맞지 않는 경우가 존재할 수도 있는데요. 그럴 때는 네임 g 라는 함수를 통해서 변수명을 할당해 줄 수가 있고 변경을 통해서 동일하게 맞춰 줄 수가 있습니다. 머지는 크게 4가지 부분으로 나누어져 있습니다. 이 데이터에서 공통으로 존재하는 부분만 결과로 보여 주는 이너조인 이라는게 있구요. 왼쪽의 데이터 셋을 기준으로 해서 오른쪽 데이터를 붙여 주는 레프트 조인 반대로 오른쪽 데이터를 기준으로 해서 왼쪽 데이터를 붙여 주는 라이트 조인 이란 게 있고 마지막으로는 모든 가능한 결합에 대해서 보여주는 쏠 조인 까지 에서 크게 네 가지로 나눌 수가 있습니다. 하나씩 예시로 한번 살펴보겠습니다. 먼저 예시 데이터 데이터 프레임 쓰리 와 허가 있습니다. 데이터 프레임 3n 은 로케이션과 텐프로쳐 지역과 그 다음에 온도 값이 들어가 있구요. 데이터 프레임 코에는 로케이션 과 윈드 디렉션 이라고 해서 지역과 풍향 값이 들어가 있습니다. 기준 키 변수는 공통적으로 들어가 있는 로케이션 지역 변수가 되겠습니다. 데이터 병합 : Inner Join 먼저 어조에는 2 공통된 부분에 대해 정은 보여줍니다 시 변수 즉 로케이션 이 서로 겹치는 대전 서울 제주 총 주만 보여지게 되구요. 코드로 구약에는 머지함수를 적어진 이후에 두 개의 데이터 셋을 적고 바위에는 기준 매수 올 2골 프로세스를 통해서 이너조인 을 구할수가 있습니다. 데이터 병합 : Left Join 레프트 조인은 왼쪽 데이터를 기준으로 예시 쓰는 데이터 프레임 쓰리 를 기준으로 먼저 적었음 으로 데이터프레임 쓰기가 왼쪽입니다 즉 데이터 프레임 3d 에 로케이션을 기준으로 데이터 프레임 후에 있는 것만 값을 채우고 나머지는 na 즉 결집 값으로 값을 반환하게 됩니다. 이것을 R에서 구현하기 위해서는 올 점 x 이고 투란 옵션을 주면 레프트 조인을 수행할 수 있습니다. 반대로 라이트 쪽에는 오른쪽에 있는 데이터 프레임 포의 로케이션을 데이터 병합 : Right Join 기준으로 하는 거고요. 데이터 프레임 포의 로케이션 에 있는 값만을 왼쪽에 값을 붙이는 것이고 나머지는 결집 값으로 채 원하는 것입니다 이것을 R로 구현하기 위해서는 우울증 yeo 툴을 통해 수행 가능 합니다. 데이터 병합 : Full Join 마지막 풀 조인은 모든 결과값이 나오게 되구요. 5 1.2 꼴 트롤을 통해서 수행할 수 있습니다. 이런식으로 데이터를 결합하는 방법으로 바인드와 머지를 배우고요 각각에 대한 사용 방법 차이를 이야기를 했습니다. 다음으로는 보간법이라는 것을 말씀드리겠습니다. 내사법 이라고도 하고 영어로는 인터넷 플레이션 이라고 합니다. 측정되지 않은 지점에 값을 측정된 값을 기반으로 해서 출원하는 것인데요. 이 방법은 공간 통계의 기본적인 성질인 가까울수록 비슷한 값을 가진 다른 특성을 활용합니다. 그 중에서 역거리 가중법 이라고 하는 것을 말씀드리겠습니다. 보간법 : 역거리 가중법 idw 라고 해서 임펄스 디스턴스 베이 td 방법입니다 즉 거리에 따른 가중치를 기반으로 추정한 것입니다. 가까이 있는 실제 가진값은 더 큰 가중치를 주고요 그리고 멀리 있을수록 작은 가진 값을 줘서 영향력이 감소한다고 생각하는 것입니다. 실제로 예시를 보면 측정을 하지 않은 해 구의 온도에 대한 값을 추정하기 위해서 그 주위에 22 34 27 등 측정된 해고의 값을 확인하고 각 거리를 측정합니다. 실제 값을 보면 가중치를 거리에 지고 분의 1로 정의하고 있습니다, 이말은 즉 거리가 멀수록 가중치가 적어지도록 설정했습니다. 각 측정 소화에 거리와 측정 값을 기반으로 했을 때 이 97 해고의 기운 값은 30.2 또 노 추정한 것이 좋겠다라는 출원을 한 것입니다. 또한 이렇게 거래 기반으로 값을 추정 하지 않고 크리깅 일하는 방법을 통해서도 보관을 할 수가 있습니다. 이런 idw 이와는 다르게 직전 값들의 선형 조합으로 및 측정 값을 예측하는 방법입니다. idw 가 거리 기반으로 치중하는 것이라면 크랙이 은 측정값을 통계적으로 모형을 만들어서 값을 수정한 것입니다. 이런 방식을 통해서 미 측정된 값에 대한 보관을 할 수 있고 값을 지원할 수 있게 됩니다. 다음으로는 실습을 한번 넘어가 보도록 하겠습니다. 먼저 데이터 플레이 뭔가 데이터 프레임 툴을 실습 용기 제 데이터를 생성했습니다. 변수로는 장소 온도 그리고 풍속 풍향 에 값을 예시로 생성해 놓았습니다. 데이터를 먼저 불러들이고요 실제로 값을 확인해보면 데이터 소스의 뭔가 그 다음에 투가 값이 잘 들어 있는 확인하고 있습니다. 먼저 알바 인들의 먼저 얘기를 할 건데요 알바 이는 단순하게 알바 있네 라고 좋고 두 개의 데이터 셋을 적어주면 은 단순 이미 아래로 합천호는 결과를 확인할 수 있습니다. 변수명이 동일하다면은 존수명은 맨 위에 한 번만 보여지게 됩니다. c 바이니 역시 단순히 c 반 이라고 좋고 두 개의 데이터 셋을 적어주면은 단순히 좌우로 합쳐놓은 결과를 얻을 수가 있습니다. 다음은 병합 머지입니다. 머지를 위해서도 데이터 프레임 쓰리 와 소 를 생성해 놓았습니다. 각 데이터에는 장소와 군도 그리고 장수가 풍양 에 대한 정보를 담아 두었습니다. 머지를 하기 위해서는 tv 안수 라는게 필요한데요. 키 변수는 공통으로 들어가 있는 장소를 활용해서 병합해 보도록 하겠습니다. 이를 위해서는 머지 함수를 이용할 수 있고요 두 개의 데이터 데이터 프레임 쓰리 와 데이터 프레임 포 를 적어주고 난 이후에 바이 변수에다가 키 변수를 적어 주었습니다. 총 4개의 모두 종류가 있다 라고 했었는데요. 각각에 대해 알아보면 은 올 2골 펄스 라고 넣어주면 은 공통 부분에 대해서만 보여주는 인어 주행을 수행할 수 있고요. 다음과 같이 2 데이터의 공통적으로 존재하는 대전 서울 제주 총 주에 대한 온도와 풍향을 알 수가 있습니다. 다음은 올 점 x 를 틀어놓은 냐 아니면 우울증 y 를 틀어놓은냐에 따라서 레프트 조인과 와이프 조인을 수행할 수가 있습니다. 기준을 왼쪽 데이터에 놓는가 오른쪽 데이터에 놓는가 에 차이를 볼 수 있습니다. 마지막은 5 1.2 끝으로 락온 옴으로써 가능한 모든 부분을 보여주는 풀 주에는 수용할 수 있습니다. 그렇다보니 키 변수가 한쪽에 자리만 있는 경우에는 결집 값이 발생하는 것을 확인할 수 있구요. 이런 식으로 여러 데이터 3 존재하는 경우 결합해서 하나의 데이터 셋으로 생성 시켜야 하는 경우가 생길 수가 있구요. 지금까지 데이터를 결합하는 방법에 대해 크게 바인드 와 머지 에 대해 확인해 보았고 실제 분석을 함에 있어서 유용하게 쓰일 수 있는 두드림으로 잘 익혀 놓으면 도움이 많이 될 것 같습니다. 다음으로는 실제 2개 숫자형 변수에 대한 연관성을 보는 상관관계에 대해서 확인해 보도록 하겠습니다
7강은 상관분석입니다. 영어는 코 릴레이션 이라고 부르고요. 두 변수에 직선적인 경향이 얼마나 되는지를 알려주고 있습니다. 그래서 이번 시간에는 산점도와 상관관계가 무엇인지 그리고 상관계수 대한 개념과 그것을 어떻게 구하는지 그리고 예시와 그 다음에 상관계수가 여러가지 종류가 있습니다 2개 대해서 말씀드리고 마지막은 상당히 수주의 점에 대해서 이야기하고 이 장을 마무리 하도록 하겠습니다. 먼저 앞서 배운 산점도 즉 스켈터 플라스틱 그려보면 다음과 같은 그래프를 그릴 수가 있는데요. 예를 들어서 기온과 습도 자료가 있을 때 기온이 25도이며 습도가 85인 것을 점 하나로 찍어주고 기온이 30도 이면서 습도가 60인 것을 점 하나로 찍어 주어 모든 행을 점으로 표현하면 산점도를 표현할 수 있구요. 이 그림을 보고 과연 두 변수 간의 관계가 어느 정도 될까를 대략적으로 알 수가 있습니다. 하지만 정확히 얼마나 연결 되어 있는가를 수치적인 값을 통해서 알고자 할 때 상관계수를 통해서 알 수가 있습니다. 상관계수는 1 변수가 증가할 때 다른 변수는 어떻게 변한가에 대한 책도 로써 사실 상관관계와 인과관계는 다릅니다. 상관관계는 직선적인 경영에 대한 책도라면 인과관계는 원인과 결과에 대한 책도 입니다. 그래서 통계에서는 이런 말이 있습니다. 코 릴레이션 더 진한 인 플라이 코디네이션 상관성 2인과 승을 의미하진 않는다 라는 뜻입니다. 예를 들어 지금 다음 그래프를 보시면 요 초콜렛 소비량과 노벨평화상 수상자 예수를 그래프로 그려 본 것입니다. 다음과 같이 직선적인 경향을 띠고 있습니다. 특히 노벨 평화상 지정과 연관되어 있는 스웨덴을 제외하고 나면 요 콜 에이션 0.87 까지 올라가게 됩니다. 그런데 이것을 보고 노벨평화상에 원인이 초콜렛 소비 라고 단언해서는 안된다 라는 것입니다. 상관관계 의 정확한 정의는 직선적인 경향이 과연 얼마나 강할까 입니다. - 일과 일 사이의 값으로 표현할 수 있는데요. 부은 방향성이 같으면 플러스 반대인 - 이고요 절대 값의 크기를 통해서 직선적인 경향의 정도를 나타낼 수가 있습니다. 절대적인 기준은 없지만 0.7 이상이면 보통 높은 상관관계를 보인다 라고 얘기를 하고요. 0.32 아이면 낮은 상관관계를 보인다 고 동 얘기를 하고 있습니다. 어제가 계속 이런 정의를 직전 적인 경향이라고 이야기 하고 있습니다. 다음과 같은 그래프에서 호 릴레이션이 일입니다. x 와 y 가 각도가 40 모듈 띄는 정확히 상황 해주고 아이린 값을 가지고 있는데요 만약에 x 와 y 의 어떤 각도가 30도 올 때는 어떻게 될까요. 누군가는 0.8 또는 뭐 45분에 30 등으로 이야기할 수 있지만 제가 계속 얘기하는 정의상 직선적인 경향 이기 때문에 이것도 직선 저것도 지키려는 입니다. 따라서 2개의 대한 직선 모두 코 릴레이션 은 1의 값을 가지고 있습니다. 코 릴레이션 0.8 이다 라고 얘기한 것은 보통 지금 다음 보시는거와 같이 직선적인 경향을 보이긴 하지만 약간 뭉툭한 이런 것들을 가지고 코 릴레이션 0.5 이다 라고 얘기를 하고 있습니다. 가장 밑에 를 보면요 콜렉션이 여행 값들의 지금 그런 하는데요. 코렐 레이 션의 영 이란 말은 관계가 없다는 뜻이 아닙니다. 관계가 분명히 있지만 다만 직선적인 관계가 없다 라고 해석을 해야 한다는 것입니다. 상당 관계를 구하는 식으로는 다음과 같은 수식이 있습니다. 공부산이라고 하는 두 변수가 같은 방향으로 움직이는 정도가 있구요 그 값을 표준 편차를 나눠준 값이 상관계수인데요 이런 복잡한 수식을 통해 결과를 손으로 구할 수 있지만 저희는 R이라는 프로그램을 통해서 cor 함수를 통해서 호 릴레이션 함수를 바로 구할 수 있습니다. 지금의 예시 에서는 두 변수에 상관계수가 -0.7 4로 강한 음의 상관관계를 보이고 있습니다. 라운드 라고 하는 함수는 뒤의 삶 이라고 적어 줌으로써 소수점 셋째 자리까지 보여줘라 하는 함수입니다. 이야기한대로 절대적인 기준은 없지만 어느 정도의 가이드라인은 항상 이렇게 존재를 하고 있습니다. 또한 실제 논문에서는 이런 식으로 표현을 하고 있는데요. 다이고 날 이라고 하는 대각선 라인에는 값이 표현되어 있지 않습니다. 그 이유는 같은 변수 끼리의 생각에는 무조건 일이기 때문에 표현하고 있지 않습니다. 보통 우리가 사용하고 있는 상관계수는 prc 네코 릴레이션 이라는 축복인데요. 이것 말고도 b 모습 통계에서는 스피어 아마 네코 릴레이션 켄 달에 타오 등 여러 가지 다른 책도 들이 많이 있습니다. 이런 것들은 실제 까지의 이용하는 것이 아니라 순위정보 랭크나 부호 등을 이용해서 통계 분석을 수행한 결과기 때문에 보수적인 법이 아니라 비보수적인 방법이라고 얘기하고 있습니다. 상관관계가 직선적인 경향을 나타낸다면 스피어 많은 모노톤 잉크 레싱 즉 감수하지 않고 증가하고 있는가 에 대한 측도 입니다. 다음 그림에서는 감수하고 있지 않기 때문에 스피어 많은 상관계수가 1에값이 나오게 됩니다. 분명 직선적인 경향을 보이지 않기 때문에 필승코리아 레이저는 0.82 되지만 스피어 만에 콜렉션은 감소하고 있지 않기 때문에 1의 값을 가지고 있습니다. 또한 켄 달에 타오 라는 값은 모든 점에서 연결한 이후에 양의 기울기 개수와 음메 기울기 개수를 세서 양의 기획이 개수를 필요하고 넣고요 음에 계획이 개수를 q 라고 놓습니다 그래서 p 플러스 큐브 4 p - q 라는 하나의 측도 를 표현하고 요걸 가지고 두 개의 어떤 변수에 대한 관련 송 의 축도로 사용하고 있습니다. 주의점이 하나 있는데요 상관관계는 포인트 하나의 크게 영향을 받을 수가 있습니다. 왼쪽의 데이터와 오른쪽에 데이터는 데이트 하나의 차이밖에 없지만 상관관계는 크게 차이가 나고 있습니다. 이렇듯 이상치 등에 크게 영향을 받을 수 있기 때문에 전처리를 잘하고 상관관계를 구해야 의미가 있습니다. 이번에는 알로이 실제 실습을 한번 들어가 보도록 하겠습니다. 코디는 정말 간단합니다. 2개의 벡터를 코 릴레이션 함수에 넣어주면 되는데요. 저는 기온과 습도를 넣어 보도록 하겠습니다. 먼저 플러스를 통해 서산점 도로 그려 봄으로써 대략적인 관계를 보았더니 기온 가수 또는 음의 관계를 보이는 것을 확인했습니다. 이제 이 관계가 실제 수치적으로 확인했을 때 어떤 값이 인지를 확인해 보기 위해서 저희는 코 릴레이션 함수 안의 값을 넣어 보았습니다. 실제로 수치로 확인해 보았더니 - 0.74 값이 나왔구요 이 말 뜻은 기온과 습도가 4는 강한 음의 상관관계가 있다는 것을 보여주고 있습니다. 저희가 스피어 만에 상 나는게 또는 켄 달의 타오르는 것을 이야기를 했었는데요. 이런 방법을 알로 구현하기 위해서는 뒤에다가 메서드에 있고 스킬만 또는 메서드 이걸 켄달 이라는 값을 기반으로 구현할 수가 있습니다. 그 다음에 제가 주의 종으로 제가 하나의 데이터를 생성 시켜 놓았습니다. 데이터 프레임 투 라고 해서 x 와 y 를 생성시켜 놓았고 실제로 그래프를 그려 파실때 영과 20 차이 의 값이 거기 들어 있습니다. 코넬 레이션에 구해 봐도 제로 0.27 정도가 되는 것을 확인 했고요 약한 양의 상관관계를 뛰는 것을 확인했는데 제가 8번째 값에 다가 x 값이 50 이고 y 값이 50인 좀 특이한 값이 한계를 추가를 했습니다. 그 이후에 상점들의 그려 보았더니 1개의 값이 동떨어진 것이 확인해 볼 수 있고요 그 다음에 이 값에 대한 코 릴레이션 을구 해봤더니 0점 부 가까이 나온 것을 확인 할 수 있습니다. 이와 같이 이상 취해 크게 영향을 받을 수 있으니 주의를 해야 되고요 이런 식으로 이번 시간엔 저희는 상당 관계 즉 코 릴레이션 에 대해서 알아보았고 특히 직선적인 경향을 나타내는 피어싱 코 릴레이션 해석의 유의를 해야 되고요 비보수 적인 방법도 있고 데이트 하나가 상관관계를 b 바꿀 수 있으므로 주의해야 한다 라는 것을 이야기했습니다. 다음 시간부터는 통계 분석의 꽃 이라고 불리는 회개 분석과 그것을 어떻게 R로 구현할 수 있는가에 대해서 한번 이야기 해 보도록 하겠습니다.
8강은 통계 분석의 꽃인 회귀분석 입니다. 그래서 먼저 얘기를 하기 전에 함수가 모양이 무엇인지 이야기를 하고 그리고 회귀분석에 대한 간략한 얘기를 하고 난 후에 변수의 개수가 1개냐 또는 여러 개냐에 따라서 단순회구와 다중회귀 기본적으로 나눌 수가 있고요 그리고 여러 개의 변수를 사용하다보면 여러가지 문제점이 생길 수도 있는데 그중에서 다중공선성 이라는 문제를 얘기해 보도록 하겠습니다. 그리고 마지막으로 회귀 분석의 결과를 R 로서 어떻게 구현하고 어떻게 해석하는지에 대해서 이야기 해보도록 하겠습니다 먼저 함수에 대한 내용을 알고 넘어가면 회귀분석을 이해하는 데 편리합니다. 함수 라고 하는 것은 인풋이 에 들어가면 아웃풋이 나오는 것이구요 이것의 중간에 과정을 이야기 합니다. 이런 것들을 모형을 만든다고도 이야기를 합니다. 예를 들어서 한 지역의 습도라는 것을 예측하는데 있어서 온도 풍속 강수량 등의 인 뜻을 넣어주는 것을 예로 될 수가 있습니다. 모형에는 크게 2가지 종류가 있는데요 인풋과 아웃풋 사이에 오차 없이 완전히 명확한 모형을 수학적 모형 이라고 하고요 결정 되어져 있다 라고 해서 디터 미니 스틱 모델이 라고도 합니다. 또 하나는 같은 인풋이라 하더라도 다른 아웃풋을 내는 것을 오차를 포함한 통계적 모형 스테 티스 티 컬 모델이라고 합니다. f 는 m&a 와 같이 수학적인 모양과는 다르게 통계적 모형은 항상 오차를 수반합니다. 같은 광고비를 지출했다 하더라도 회사에 따라서 또는 다른 요인에 따라서 다른 매출의 뵐 수가 있고요 그러한 차이는 설명할 수 없는 오차 라고 생각하는 것입니다. 그러한 오차를 최대한 줄일 수 있도록 모형을 만드는 것이 중요하겠습니다. 회귀 라는 말 뜻은 문자 그대로 보면은 돌아올 해 돌아올 귀라고 해서 돌아 온다는 뜻입니다. 처음 회귀 라는 단어를 쓴 프란치스코 골 턴 이라는 과학자는 아버지 키와 아들 키를 조사 했는데요 그래프를 그려 보았고 아버지 키가 큰 사람 들의 아들 쥐들은 평균적으로 작은 경향을 보였고요 아버지 키가 큰 사람들의 아들 키는 평균적으로 큰 경향을 확인했습니다. 결국에는 전체적으로 평균적으로 가까이 가는 현상을 발견했고 계속 커지거나 계속 작아지는 것이 아니라 전체적으로 평균 을 유지하려는 현상을 발견합니다. 이걸 통해서 평범으로의 회귀 또는 평균으로의 회귀라고 하는 왜 그리 쉬운 토 메 디 어 크 래 프 이라는 단어를 처음 논문의 등장시킵니다. 쉽게 설명해서 산정도를 그려놓고 그 산정도를 가장 잘 설명하는 직선 하나를 찾고 싶은 것입니다. 직선을 구성하기 위해서는 두 가지 요소가 필요한데요 하나는 기울기와 또 하나는 절편 것입니다. 더 많은 직선을 그릴 수가 있지만 몇차례 가장 잘 줄여주는 기울기와 절편 값을 찾아서 그 과정 자체가 회귀분석의 가장 큰 목적 중 하나입니다. 이와 같이 변수 간의 관련성을 규명하기 위해서 x 와 y 에 대한 수리적인 모형을 가정하고요 그 관련성을 데이터로부터 추정할 수가 있을 것입니다. 여기서 사용하는 타겟 y 값은 보통 강수량과 같은 연습형 변수를 사용합니다. 이를 통해 어떤 x 가 y 에 영향을 주고 있는지 알 수 있고 또한 얼마나 여행을 주고 있는지 알 수 있습니다. 각 변수 별로 얼마나 영향을 주는지에 대한 값은 회귀 분석의 결과 중에 회계 갯수 값으로 확인 가능합니다. 해석은 문자형 과 숫자 0에 조금 다르지만 여기서는 일단 숫자 행에 대해서 알아보도록 하겠습니다. 투자형 변수에 해석은 다른 변수들이 일정한 때 그 독립변수가 한다니 증가한다면 y 값이 어떻게 달라지는가로 해석할 수 있습니다. 만약 습도가 y 값이고요 강수량이란 값이 x 변수는 그 개수가 0.1 라는 값이 나왔다면 다른 변수가 일정한 때 강수량이 한달에 증가한다라면은 습도는 0.5 만큼 증가한다 라고 얘기할 수 있습니다. 회귀 분석 의 종류로는 설명 변수가 하나인 단순 회귀 분석 이란 게 있고요 설명된 수 가 여러 개인 다중회귀분석으로 나눌 수가 있습니다. 다중회귀분석은 중회기분석 이라고도 얘기합니다. 그렇다면은 여러개의 변수를 사용할 때 어떻게 표현할 수 있을까요 단순 회귀분석과 마찬가지로 절편과 기울기 값으로 표현할 수 있는데요 다만 여러 개이기 때문에 리니어 컴비네이션 이라고 해서 가중 합으로 표현할 수가 있습니다. 원래 회귀분석 이라고 하는 것은 x 가 y 에 영향을 주는 건데요 여러 변수를 쓰다보면 은 x 가 x 한테 영향을 주는 x 길이 영향을 미치는 경우가 있습니다. 이런 경우를 다중공선성의 문제가 있다고 합니다. 다중공선성을 확인하는 방법은 여러 가지가 있지만 가장 흔히 쓰는 방법은 viaf 하고 해서 베리에이션 인플레이션 팩토 분산 팽창 지수 값을 통해서 확인이 가능합니다. 보통 6에서 8이상의 값을 가지면 문제가 있다고 판단합니다. 가장 0 우수성에 예시를 보면요 다음과 같이 x 길이 연관성이 있는 것인데요 태어난 날짜와 나이라는 것은 독립적이지 않고 서로 연관성을 가지고 있습니다. 또 다른 예시는 상품의 내부도와 불량률은 연관이 되어 있기 때문에 다중공선성에 문제가 생길 수가 있습니다. 둘 중에 하나의 변수는 빼주어야 합니다. 왜냐하면 회귀개수의 해석 자체가 다른 변수들이 일정 할 때 독립변수가 한단이 증가할 때의 y 값이 변화이기 때문에 두 변수 와 연관이 되어 있다면은 일정하다는 해석의 문제가 생길 수가 있습니다. 이 뿐만 아니라 여러 통계 분석을 하기 전에는 여러 가지가 정상에 대한 체크를 해야합니다. 회귀분석의 가정은 보통은 선형성 리뉴얼이 t 독립성 인디펜던트 정규성 노말 리티 다음에 등 분해성 이퀄 배려한 쓰라고 해서 앞 글자만 따서 라이너 30원 이라고 부르기도 합니다. 이런 여러 가지 가정을 만족해야 하지만 많이 가정을 만족하지 않는 경우에는 일부의 수정을 통해서 다른 회귀분석을 사용해야 합니다. 하지만 너무 엄격한 기준으로 이런 가정 사항들을 확인한 보다 보면은 어렵기 때문에 결과가 뒤바뀌지 않으나 어느정도 만족한다 라며 는 수용하고 넘어가는 것도 좋은 방법입니다. 모용 에 대한 해석에 있어서 전체 변동을 sst 라고 해서 서버 스퀘어 부 토탈 이라고 하고요 이 쏨 스퀘어 토탈 을 크게 두 가지로 나눌 수가 있는데요 하나는 회귀 모형으로 설명하는 변동이 라고 하는 ssr 서머 스케 오블 외계 션이구요 또 다른 것은 회귀 모형으로 설명 불가능한 에러에 의한 변동 ss 이라고 하고 서머 스퀘어 오브 에러 라고 합니다. 그래서 데이터의 전체 변동 중에서 회기 분석으로 설명 가능한 변동 부분을 sr 이라고 하고 체 명 불가능한 부분을 ss 이라고 해서 에러 텀 으로 설명하고 있습니다. 그 중에서 우리는 전체 중에서 회기 분석에 의해 설명하는 한 부분을 설명력 이라고 해서 il 스키어 라고 우리는 정리를 하고 있습니다. 이 값은 0과 1 사이의 값을 가지고 있구요 이 라면은 모든 변동을 회기 식으로 설명 가능하다 라는 것이고 0 이라면 회식으로 전혀 설명하지 못한다는 뜻입니다. 회기 분석의 결과는 이런식으로 나오는데요 간단히 보면 각 변수명 옆에 state 라고 해서 회귀 갯수 라고 합니다. 이 회귀 계수 값을 보고 각 변수가 한다니 변할 때 y 값이 얼마나 영향을 줄지 알 수 있습니다. 즉 여기서는 왜인이 라고 하는 강수량이 한다네 변할 때 y 값인 휴일이 t 습도가 1.1 만큼 증가한다 라고 해석할 수 있는거구요 각 연습에 오른쪽에 보면 은 각 변수 * p 밸류가 나와있습니다. 이 변수가 지금 유의한 gu 하지 않는지에 대한 집도를 이야기를 하고 있구요 아래쪽엔 아에 스퀘어 라고 부르는 설명력이 나와 있고 전체 pbl 6 를 통해서 모형의 유의성을 확인해 볼 수도 있습니다. 실제로 여기서의 아이 스키어 값이 0.5 7이 나와 달하는 많은 전체 변동성 u 에서 57% 정도가 회계 10의 가지고 설명 가능하다 라는 의미입니다. 실제로 이번에 실습을 한번 넘어가 보도록 하겠습니다 먼저 강수량이 결집값이면 0 으로 채워 주는 작업을 진행했습니다. 함수는 리얼 모델 이라고 해서 lm 함수를 이용해 주면 되는데요 단순 선형 회귀분석 같은 경우는 이런 식으로 예레미 라고 적어 주고 그 다음에 이 물결표가 틸다 라고 합니다. 틸다 왼쪽에 저가는 y 값을 적어주면 되고요 그 오른쪽에 나가는 x 값을 적어 주면 됩니다 단순 선형 회귀분석이기 때문에 한 개씩만 적어 준 결과 것을 볼 수 있는거구요 그리고 다중 선형 회귀분석 같은 경우는 여러 개의 변수를 사용할 겁니다. 그래서 마이 캅 씨는 습도 값을 넣어 준 거고 틸다 오른쪽에 플러스 로 연결해 줌으로써 여러개의 변수를 고려해 줄 수가 있습니다. 이 결과값을 제가 p 이라는 갑자가 저장을 시켰구요 이렇게 이라는 값을 써 머리를 해주며 는 아까 우리가 보았던 결과값을 얻을 수가 있습니다. 즉 웨인 이라고 하는 강수량이 한다니 변한 때 y 값 습도가 일정 1만큼 증가 한다 라고 해석할 수가 있을 거고요 각 변수에 대한 핵이 유희성 회기 계시된 유의성을 우리가 확인할 수가 있고 여기 보시면 멀티플 아이 스퀘어 라고 해서 설명력을 확인할 수가 있습니다. 그 옆에 보면 은 어디 저스트 is 케어 라는 것도 있는데요 사실은 알 스케 와 어 디 어스 risk 와 같은 경우는 좀 차이가 있습니다. 우리 설명력 이라고 하는 것에 아이 스키어는 큰 단점이 하나 있는데요 x 변수가 증가하면 무조건 높아진다는 단점이 있습니다. 실제로 유의한 변수가 들어 가야지만 설명력이 증가가 돼야 하는데 아무런 연관성이 없는 이상한 변수가 들어가도 설명력은 증가하도록 쉬게 설계되어 있습니다 그래서 그런 것들을 방지하기 위해서 어디 졌어 아이 스퀘어 라는 걸 만들어 놓았구요 실제 10의 보면은 변수에 갯수로 나눠 줌으로써 어느정도 보정을 해 준다라는 의미로써 어디 조스 아이 스퀘어 라는 것을 이야기하고 있습니다. 그리고 이 밑에 보면 전체적인 p 밸류를 기반으로 이 모형의 유의 1 제 얘기 하지 않는지에 대한 내용을 이야기하고 있습니다. 그리고 제가 가정 사항에 대해서 이야기를 했었는데요 이 이라고 하는 어떤 이 객체를 플라 팅 해보면 은 여러가지 다음 플러스 보기 위해서 리턴 값을 치세요 라는 값이 나옵니다. 아무런 값을 쳐주면요 이런식으로 4가지 그래프가 나오게 됩니다. 이 각각 네 가지를 해석함으로써 아까 얘기했던 라이너스 촌놈 rate 컬 밸런스 인디펜던스 이런 것들을 가정 사항들을 체크해 볼 수가 있구요 만약에 문제가 생긴다면 수정을 통해서 다른 얘기는 적을 사용할 수가 있을 것입니다. 그리고 다중 공산성 을 확인하는 방법이 카라는 패키지 안에 v if 아까 얘기했던 베리에이션 인플레이션 팩터 분산 팽창 지수 라고 하는 함수가 구현되어 있습니다 그래서 실제로 확인을 해보면 은 6부터 8 이상 값을 가지며 는 보통 문제가 있다고 보는데 지금 저희의 결과에서는 뭐 이래 값을 가지고 있기 때문에 그렇게 크게 문제가 없다 라고 판단하고 넘어가도 괜찮습니다. 그래서 이번 내용에서는 회귀 분석에 대해서 좀 알아 보았는데요 실제로 어떤 변수에 영향을 주고 있고 얼마나 영향을 주고 있는 씨에 대한 분석 으로서 가장 많이 이용되는 분석 중 하나구요 알로 구현하는 방법은 엘의 미라는 함수 리뉴얼 모델 이라는 함수를 통해서 구현하는 것을 확인을 해보았습니다. 다음 시간에는 그냥 회계 분석이 아니라 로지스틱 회귀분석 이라고 해서 이빈 형 변수에 대한 모델링을 하는 것을 이야기해 보도록 하겠습니다
9강은 두 가지 결과를 가지는 값이 대에 분석하는 로지스틱 회귀분석 이라고 합니다. 그래서 바이너리 란 무엇인가 먼저 이야기를 할 거고요 그리고 종속변수의 형태에 따라서 회계 분석이 달라지기 때문에 그거에 대한 이야기를 하고 그 다음에 저희는 로지스틱 회귀분석 이기 때문에 로즈 이라는 개념을 이용할 겁니다. 이런 로즈라는 개념을 만들기 위해서는 확률과 뭐지 에 대한 개념을 알아야 하기 때문에 그 순으로 이야기 할 거고 선형 모용 중에 일반화된 형태인 일반화 선형 모형 에 대해서 이야기를 하고 실제로 로지스틱 회귀분석의 회귀 갯수 값인 베타를 어떻게 추정한 냐 에는 모집 이라는 걸 가지고 해석할 수 있는데요 25gb 를 어떻게 해석하고 마지막으로는 로지스틱 회귀 면서 예제를 통해서 조금 더 쉽게 알아보도록 하겠습니다. 먼저 바이너리 라는 말이 있는데요 통계에서 앞에 bi 가 붙는 것은 두 개의 듯합니다. 그래서 바이너리 또는 바 이놈이 r 등의 있구요 즉 두 가지 값을 가지는 변수 입 운영회의 의미합니다. 예를 들면 은 성공 또는 실패 생존 또는 사망 앞면 또는 뒷면 강수 발생 또는 미발생 등이 있습니다. 이러한 이분영 자료에 대한 회계 모형을 만들 때에는 일반적으로 우리가 알고 있는 회귀분석을 사용하지 않고 다른 회귀분석을 사용해야 합니다 그동안의 회귀 분석에서 y 값은 연습형 변수라고 이야기했습니다. 지난 시간에는 습도 라는 연속형 교수 를 사용했는데요 만약 종수 교수가 두 가지 즉 바이너리 변수 라며 는 우리가 지금까지 해왔던 회기 모형으로 는 적합하기 가 어렵습니다 그래서 이 때 사용하는 것이 이 분양 로지스틱 회귀분석 이 되겠습니다. 지금까지 직선으로 피팅을 시켰다면 은 이제는 조금의 변형을 통해서 곡선으로서 변형해서 피팅 해보자라는 것입니다. 우리가 로지스틱 회계분석의 개념을 알기 위해서는 로즈 일하는거 알아야 하고요 로즈이라는 걸 알기 위해서는 확률과 머지 라는 걸 알아야 합니다. 그래서 먼저 확률이라는 개념에서부터 시작해서 이야기를 해보면 만약 비가 오는 것을 성공하는 사건이라고 일단 가정해보겠습니다. 성공할 확률 즉 비가 올 확률을 피하고 파실때 1 - p 는 비가 오지 않은 확률입니다. 성공 확률을 실패 확률 로 나눈 즉 실패 에 비해 성공할 확률을 우리는 뭐지 라는 개념으로 이야기합니다. 이오의 라는 값 게다가 로그 값을 취해줄 것을 우리는 로즈 이라고 부르고요 이 시계 모양을 잘 받으시면 뒤에서 로지스틱 회귀분석을 만들 때 사용하기 때문에 기억해 2시면 좋을 것 같습니다. 예를 들어 두 가지 상황 구름이 있고 없고의 상황에서 비가 오는지 안 오는지 를 확인해 보고자 합니다. 구름이 없을 때 비가 올 확률은 52분에 20 0.38 이고요 9 갱이 있을 때 비가 올 확률은 66분 에 42 평 점 육상 입니다. 이때 각각의 오즈는 비가 올 확률을 비가 오지 않을 황해 로 나누어 주어 계산해 보면 각각 0.61 과 1.72 나온 것이 알 수가 있습니다 보통 우리는 2호 집값을 해석하는 것이 아니라 오지의 비율인 오지 웨이숄을 가지고 해석을 합니다. 그래서 이 5줄 외조 값은 일정 체가 0.61 나눠주면 9.7 2 나오는데요 즉 구름이 없을 때에 비해서 구름이 있을 때 2.7 배 정도의 강수 항의로 나타낸다 라고 해석할 수 있습니다. 우리가 배운 다중 선형 회귀분석 은 액수의 가 중합 미디어 컴비네이션으로 y 를 표현해 주는 것입니다. 그러나 일반화 선형 모형 은 액수의 가증 합은 그대로인데 y 가 아니라 fx 라는 일반적인 함수 꼴로 표현해 주고 있습니다. 특히 에프엑스가 로즈 1 대 지금 오로지 에 당한 로그를 취해 준 로 짓을 y 대신 했었죠 그래서 이걸 보면 이러한 함수를 로지스틱 회귀분석 이라고 부릅니다. 즉 로지스틱 회귀분석 은 일반 회귀분석의 스페셜 케이스라고 볼 수가 있습니다. 노지 b 를 해석하기 위해서 저희가 이런 식을 좀 적어 넣는데요 시계 복잡하게 나와있지만 우리가 봐야할 것은 끝부분 입니다. 우리가 보통 아 를 통해서 구하는 회계 개수를 베타 라고 부르는데요 알로 9 1회기 개수의 지수 함수를 취해주고 나 눈에 그것을 우리는 5주 웨이 쇼라고 부르고 이것을 해석하게 됩니다. 왜냐하면은 로그 함수를 붙인 어떤 론치 를 활용하기 때문에 해 속 시에는 그 반대인 지수함수 로 붙여서 해석을 하게 되는 것입니다. 또한 왜 있요 이기 때문에 비율의 문제이며 이를 기준으로 해석할 수가 있습니다. 일과 같다면 효과가 없다 라는 것이고 1보다 크다 라며 는 발생 가능성이 큰 것이고 1보다 작으면 발생 가능성이 작다고 이야기합니다. 그래서 비율의 문제이기 때문에 1일 기준으로 해석을 하면 되고요 다음으로는 로 gtk 면서 예제에 대해서 한번 얘기를 해보도록 하겠습니다. 레인 투 라는 변수에 다 가 1이면 비가 내린 거고 0이면 비가 내리지 않은 바이너리 변수를 만들어 보았습니다. 그래서 저희는 온도 그리고 풍속 습도 등을 통해서 비가 올 것인지 아닌지를 예측해 보고자 합니다. 실제로 실습을 보면 그렇게 어렵지가 않은 데요 우리가 아는 회기 분석은 lm 일하고 있을 리뉴얼 모델을 사용하지만 로제트 페이지 분석은 제네럴 라이즈 리뉴얼 모델 이라고 하는 뒤에 레미 라는 함수를 씁니다. 그리고 차이점은 y 값을 연습 형 변수가 아니라 2분 형 변수를 사용하면 됩니다. 그래서 우리는 이 y 값 킬다 라고 불리는 이 물결이 왼쪽에 나가는 2분형 변수를 표현해 주면 되구요 그리고 오른쪽에 다가는 어떤 변수를 가지고 우리가 예측을 할 것인가에 대해서 임프 변수 x 의 변수를 넣어주면 됩니다. 다른 것들을 다 동일하구요 그리고 특이한 점은 3 멜리 2골 바이 놈이야라고 링크 이걸 로즈 이라고 적어 줘야 지만 일반화 선형 모형 중에서 그 중에서 나는 로지스틱 회귀분석을 적합할 것이다 라는 것을 알려주게 됩니다. 그 이후에 써 머리에다가 결과를 실제로 넣어주면요 여러가지 회귀 계수 값을 구할 수가 있습니다. 하지만 저희는 2회기 갯수 값을 그대로 이용할 것이 아니라 아까 얘기한 것처럼 2 스포 4 셜 지수 감수를 취해서 해석을 해야 합니다. 그래서 습도 같은 경우는 지금 회계 개수가 0.32 나와있는데요 다른 변수들이 동일할 때 습도가 한다는 증가할 때 강수 발생이 ex4 4실 0.3 즉 1.32 나오기 때문에 1.3 6배가 증가한다 라고 해석할 수 있다는 것입니다. 습도에 어떤 회계 개수가 0.3 074 가 나왔는데요 실제로 이 값을 해석하는 것이 아니라 ex4 네이션 의 값을 취해 줌으로써 해석할 수가 있습니다. 그래서 이 스폰의 술값을 취해 주면 1.36 이 나오고 이 값을 가지고 오지 웬 쇼라고 우리가 정의를 했구요 실제 이 값이 해석해보면 은 다른 변수들이 동일할 때 습도가 한다네 증가할수록 강수 발생이 1.3 6배가 증가한다 라고 이야기 할 수 있습니다. 그래서 실제로 습도 뿐만 아니라 다른 것들도 확인해보면 20분에 셜 값을 취해줄 수 있고 그 값들을 해석해 줄 수가 있습니다. 그리고 컨텐트 이라는 함수를 이용해 주면 요 우리가 이런 오지 웨이 쇼에 대한 신뢰구간 값도 확인해 볼 수가 있습니다. 실제로 한번 실습으로 한번 넘어가 보도록 하겠습니다. 먼저 강수량이 있으면 1 아니면 0 이라는 바이너리 변수를 레인 투 라는 값으로 만들어줬습니다. 그 이후에 kv 라는 함수를 이용해 주며 는 각각 0과 1에 대한 어떤 빈도 값을 확인할 수 있구요. 그리고 플랍 점 테이블 이란 함수를 이용해 주면 그거를 비율로 써 나타낼 수가 있습니다. 그래서 지금 우리가 가지고 있는 데이터 에서는 살점 6% 정도가 강수가 발생했고 그 다음에 91.4% 정도가 강수가 발생하지 않은 데이터에 대해서 확인을 하고 있는 겁니다. 우리는 온도 그리고 습도 그 다음에 b 갖고 왔는지 않았는지에 대한 정보를 가지고 실제로 모형을 만들어 볼 건데 만들기 위해서는 뒤에 랜 이라고는 채널 낮이면 이어 모델이라는 값을 가지고 환수를 적용시킬 수가 있구요 그리고 물결 표 왼쪽에 당하는 바이너리 변수인 웨인 툴을 중 시켜주고 오른쪽에 다가는 이것을 예측하는데 있어서 사용하고자 하는 벡스 변수들을 플러스 로 연결해서 사용 해 줍니다. 일반화 선형 모형 중에서 특히 패밀리 이꼴 바이 놈이야 링크 아이콘 로즈 이라고 적어 줌으로써 나는 로지스틱 회귀분석을 적합시키겠다 라는 결과를 낼 수 있습니다. 요 결과를 li 일하고 있어 로직 맥 레이 션 의 약자로써 에 랄로 저장했구요 요거 로써 머리를 해주면 은 우리가 알고 수 있는 여러가지 st 메이크업과 그거에 대한 유이 성도 다 확인을 할 수가 있습니다. 주의할 점은 이 값이 그대로 해석한 것이 아니라 익스 폰에 수를 취해서 스케 해야하나 라고 얘기를 했었구요 그리고 물음표 라고 치면 은 저희가 헬프 창에 들어갈 수 있는데요 그중에서 일반화 선형 회귀 모형 이라고 해서 로지스틱 회귀 완성할 수 있냐 그게 아닙니다. 여기 세밀 이라는 것을 클릭해보면 은 어떤걸 할 수 있냐면 포아송 회귀분석을 할 수 있다 아니면 허 자 fr 쏭 커서 이 바이넘 10 이런 것들 감마 또는 바이넘야 이런 것들을 통해서 다른 일반적인 선형 모형 을 적합 시킬 수 있다라는 것을 알려주고 있습니다. 그래서 이번 내용에서는 통계분석에서 많이 이용되는 로지스틱 회귀분석에 대해 알아 보았구요 특히 일반 회계 분석관은 다르게 2분 형 변수에 대해 모형을 적합 시킨다 라는 점이 다른 것을 확인했고 lm 이라는 함수가 아니라 주에 레미 라는 함수를 통해서 적합 시킬 수 있다 라는 것을 확인했습니다. 이것으로 기본적인 2 da 상관관계 분석 회귀분석 등 다양한 방법에 대해서 알아보았고 다음 시간에는 마지막 시간으로 날씨 마루 를 활용한 시각화 에 대해서 알아보도록 하겠습니다.
10강 은 날씨 마루 시각화 도구에 대한 소개 및 실습 내용 입니다. 보통 프로그래밍을 통한 시각화를 하기 위해서는 어려운 코딩 거쳐서 결과를 확인하는데 날씨 말을 시각화 도구를 활용하면 어려운 코딩을 거치지 않고 클릭만으로도 기상 기후 자료에 대한 시각과 를 손쉽게 만들 수 있습니다. 그래서 이런 것들을 확인해 보기 위해서 저희는 날씨마루의 시각화 도구에 대한 걸 소개를 드릴 거구요 그리고 기본 데이터 검색 그리고 보유 데이터 업로드 를 활용해서 어떤 데이터를 심각할 수 있는지 확인해 볼 겁니다 그리고 실제 기상 데이터 시각화를 확인해보고 시각화 결과를 저장 및 공유 하는 것에 대해서 실제 사이트에 가서 확인해 보도록 하겠습니다. 사용 방법을 모르시는 분들을 위해서 날씨 마루는 사용 가이드라인을 제공하고 있습니다. 기상기후 데이터 시각화에 들어간 이후의 우측 상단에 가이드라인을 클릭하면 다운로드를 받을 수가 있습니다. 그리고 기본적으로 기온 해상 그리고 강수량 바람 지진에 대한 자료는 보유하고 있으므로 검색을 통해서 자료에 접근할 수가 있습니다. 실제로 시각화 만들기 탭을 클릭하면 자료에 대한 접근을 어떻게 할 것인지에 대한 지정을 할수 있습니다. 하나는 기상 기후 데이터 검색 이구요 또 하나는 데이터 업로드 입니다. 먼저 검색을 통한 업로드를 한번 해보도록 하겠습니다. 검색창에 기온이라고 검색하면 기온 관련 보유 데이터를 확인할 수가 있습니다. 기온 외에도 강수량 습도 등 다른 정보를 입력하면 해당 관련 자료를 확인할 수 있고 접근이 가능합니다. 실제로 데이터를 업로드 하고 나면 시각과 단계로 넘어 갔는데요 왼쪽에 보이시는 공간에서 변수 선택을 할 수가 있습니다. 그래서 어떤 변수를 선택하느냐에 따라서 시각화 추천이 달라집니다. 선택한 데이터에 대해서 시각화를 추천해 주는 기능을 제공하고 있습니다. 그래서 저는 날짜와 평균 기온은 선택을 했구요 오른쪽에는 그 변수를 통해서 시각화할 수 있는 여러 그래프 중 추천할만한 시각화를 제공해줍니다. 추천 시각화 중에서 하나를 클릭하고 나면 시각화 만들기 탭이 활성화 되는데요 활성화 된 이후에 클릭해보면 시각화에 문서 그리고 작성자 이메일 등을 입력할 수 있습니다. 또한 레이아웃을 통해서 실제로 어떤 배치를 정할 수 있는지를 정할 수 있게 해놨습니다. 시각화 오른쪽에는 변수 설정과 시각화 설정 탭이 있는데요 변수 설정 탭에서는 크게 문제형과 숫자형에 대해 나누어져 있고 이미 그려져 있는 시각화에 더 추가로 시각화를 수행할 변수를 선택할 수가 있습니다. 실제로 수치 원 변수에 대해서만 추가해 보면은 저는 최저 기온을 한번 추가로 한번 해보겠습니다. 이미 그려졌던 평균 기온 에다가 옆에 최저 기운까지 같이 표시된 것을 확인할 수가 있습니다. 그리고 시각화 설정 탭의 가보면 은 차트 의 유형 그리고 색 축의 설정이나 막대 간격 등 기타 옵션 등을 설정 할 수 있는 탭입니다. 이 부분을 조정함으로써 우리는 좀 더 다채롭고 가독성 높은 시각화를 표현할 수가 있습니다. 차트 유형은 막대 뿐만이 아니라 여러 가지 다른 기능도 다 제공하고 있습니다. 그리고 시각화 추가하기 버튼을 통해서 뿌리는 기온에 따른 어떤 기상 기후 시각화가 아니라 한번 강수량에 대한 것을 한번 추가해 보도록 하겠습니다. 실제 데이터를 불러 들이고 나서 아까와 동일한 방법으로 지점에 따른 강수량은 클릭해 보겠습니다. 역시 선택된 변수에 대해서 추천할 수 있는 시각화를 이렇게 제공해 주고 있고요 그 중에서 첫번째 대저를 클릭한 이후에 시각과 만들기를 해주면 아래쪽에 시각화가 추가되게 됩니다. 마지막으로 시각화 결과의 저장과 공유에 대해서 말씀드리도록 하겠습니다. 작성자 이름을 지정하고 저장을 누르시면 이 탭 나오구요 4가지의 기능이 있습니다. 하나는 이미지 다운로드고 또 하나는 공유하기 세번째는 구매 목록 보기 마지막은 데이터 폭 입니다. 이미지 저장은 실제로 png 파일로 저장할 수 있게 해줍니다. 그리고 공유하기 버튼 은 크게 두 가지로 나눠져 있는데요 하나는 url 형태로 제공할 수 있는 쉘드가 있고요 또 하나는 임베디드 라고 해서 실제로 대시보드 형태로 개발할 수 있도록 제공하고 있습니다. 범례 목록보기를 클릭해보면 은 원하는 범례를 선택함으로써 원하는 데이터만 시각화할 수 있다는 장점이 있습니다. 클릭해보면 원하는 데이터만 시각화로 반영되게 됩니다. 마지막으로 네 번째 데이터 보기를 클릭해 보면 이런 시각화된 차트에 대해서 로우 대조를 확인해 볼 수 있습니다. 시각화를 저장하고 나면 이런 식으로 순서대로 저장한 결과에 대해서 확인해 볼 수가 있구요 그리고 밑으로 내려가면 다른 사용자가 시각화 했던 결과도 확인해 볼 수가 있겠습니다. 1강 부터 10강까지 날씨 마루 해석 이상규 빅데이터를 통계적 분석하고 시각화 해보았습니다. 이외에도 분석 도구와 실습 사례 를 이용해서 직접 실습해 볼 수가 있습니다. 많은 이용 부탁드리겠습니다 고맙습니다.
안녕하세요 파이썬을 활용한 분석 강의를 진행할 박주은입니다. 제 소개를 잠깐 드리면 오늘 코드 데이터 분석 유튜브 채널을 운영하고 있습니다. 그리고 인프라 programmer's 레드 캐스트 네이버 커넥트 지당 등 다양한 곳에서 온라인과 오프라인 강의를 진행하고 있습니다. 2019년에는 인프라 파이썬으로 공공데이터 시작하기 강의가 가장 많이 수강한 유료 강의로 선정되기도 있습니다. 그리고 파이콘 한국 2018, 2019년 튜토리얼을 진행하기도 했습니다. 첫번째 수업으로는 날씨마루와 파이썬 개발환경을 소개해 보겠습니다. 이번 수업은 날씨마루, 파이썬과 아나콘다 생태계, 주피터 노트북 사용법 순으로 보겠습니다. 날씨마루는 기상기후 빅데이터 분석 플랫폼으로 타분야와 기상을 융합한 기상융합 서비스 기상기후 빅데이터를 분석할 수 있는 빅데이터 분석 환경을 제공하고 있습니다. 날씨마루 메인 홈페이지에서 융합시범서비스로 들어오게 되면은 관측과 예보 기반의 방대한 기상기후 빅데이터를 다른 분야와 접목시켜 만든 새로운 개념의 기상 활용 서비스를 이용해 보실 수 있습니다. 뿐만 아니라 분석환경으로 들어가게 되면 기상기후 빅데이터를 타분야 데이터와 융합하여 분석할 수 있는 환경을 제공하고 있습니다. 여기 빅데이터 분석 도구를 클릭하고 들어가게 되면은 R이나 파이썬, Fortran 등 다양한 분석 환경을 제공하고 있습니다. 그럼 여기에서 파이썬 이용하기로 들어가보도록 하겠습니다. 이렇게 주피터 노트북이 뜨게 되는데요. 별다른 설치 없이 웹상에서 주피터 노트북을 통한 파이썬 실습을 해 보실 수가 있습니다. 오른쪽에 New에 있는 파이썬3를 클릭을 하고 주피터 노트북을 만들어 보도록 하겠습니다. 여기에서 제목을 파이썬 실습이라고 주피터 노트북의 이름을 바꿔 보도록 하겠습니다. 그리고 다시 이 주피터 노트북의 메인 페이지로 가게 되면 파이썬 실습이라고 주피터 노트북 이름이 변경된 것을 확인해 보실 수 있습니다. 그리고 이렇게 만든 주피터 노트북은 다음 로그인 때 다시 이용해 보실 수도 있습니다. 그럼 파이썬 실습으로 가서 간단한 파이썬 코드를 입력해 보도록 하겠습니다. 3+4 와 같은 간단한 수식을 입력하게 되면 이렇게 결과가 출력이 되고요. 그다음에 간단한 문자열 날씨마루를 출력해 보겠습니다. 이렇게 문자열도 출력이 잘 되는 것을 확인해 볼 수가 있습니다. 또한 이 날씨마루 분석 플랫폼에서는 Readme에 들어가 보시게 되면은 여기에 AreaInfo라고 해서 기본적인 데이터셋을 제공하고 있습니다. 그럼 여기에 있는 데이터셋 중 하나를 불러와 보도록 하겠습니다. Import pandas as pd통해 pands를 불러오도록 하구요. 그다음에 pd.read_csv를 통해서 지금 복사해 준 경로를 붙여넣기 해 보도록 하겠습니다. Readme에 AreaInfo에 파일명을 하나 가져와보도록 하겠습니다. 동네예보구역.csv를 가져와 보겠습니다. 동네예보구역.csv 파일을 가져오게 되면 이렇게 내부에 내장된 csv 파일을 불러와서 실습을 해 보실 수도 있습니다. 그리고 분석 환경에서 파이썬을 활용한 분석으로 들어가 보시게 되면 파이썬을 활용한 다양한 분석 실습 사례를 보실 수가 있습니다. 기상 데이터 활용 사례를 통해서 증발량 산출식 분석 사례라든지 서리 발생 모형 분석 사례를 직접 실습을 통해서 실행해 보실 수도 있습니다. 끝으로 게시판 자료실에는 분석 실력에 따라 특정 테마를 지정하여 이론과 실습 코드로 구성된 데이터 분석 자료가 주기적으로 연재되고 있으며 기상 융합 서비스 기술을 상세히 기재한 기술 노트와 빅데이터에 대한 뉴스 스크랩 자료까지 제공하고 있습니다. 목적에 따라 다양하게 날씨마루 활용을 부탁드립니다. 파이썬과 아나콘다 생태계를 알아보겠습니다. 먼저 파이썬의 특징으로는 파이썬은 가독성과 유지 보수성이 높습니다. 그리고 스크립트 언어입니다. 배터리가 내장되어 있다는 별명이 있는데요. 그만큼 표준 라이브러리를 많이 포함하고 있습니다. 그리고 접착제 언어라는 별명도 있는데요. 다른 언어와 호환성이 좋습니다. 그리고 다양한 생태계를 가지고 있는 특징이 있습니다. 아나콘다를 설치하게 되면 편집기인 Jupyter, 수치 계산을 위한 Numpy, 데이터 분석을 위한 pandas, 머신 러닝을 위한 Scikit learn, 데이터 시각화를 위한 matplotlib, bokeh, 그리고 딥러닝을 위한 TensorFlow와 Pytorch 같은 라이브러리들이 모두 함께 설치가 됩니다. 그래서 파이썬이라든지 Jupyter 노트북과 같은 편집 도구, 각종 다양한 라이브러리를 설치하는 수고를 덜어 주게 됩니다. 아나콘다 다운로드와 설치를 알아보도록 하겠습니다. 아나콘다를 설치하기 위해서는 아나콘다 홈페이지에 들어와 주셔야 합니다. 아나콘다 사이트에서 Product의 Individual Edition을 선택해 주세요. Individual Edition 사이트로 들어오게 되면 여기 Download 버튼이 나오게 됩니다. Download 버튼을 클릭하게 되면은 Download 할 수 있는 Installer 페이지로 이동하게 됩니다. 여기에서 각자 운영체제에 맞는 윈도우, 맥OS, 리눅스 버전 중에서 맞는 버전을 선택해 주세요. 그리고 윈도우 버전의 경우 64bit와 32bit가 있는데 64비트 컴퓨터에서 32비트를 설치하게 되면 은 굉장히 느려서 사용하시기가 어렵습니다. 그래서 32비트 버전의 컴퓨터가 아니라면 꼭 64bit를 설치해 주시는 것을 권장을 드립니다. 그럼 자신의 OS에 맞는 Installer를 선택을 해 주시게 되면 Installer가 다운로드되게 됩니다. 다운로드가 다 되었다면 Installer를 더블 클릭해 주시게 되면 이렇게 설치 화면이 나오게 됩니다. 저는 맥OS에서 설치를 하고 있는데요. 이렇게 설치 화면이 나오게 되면은 Continue를 눌러서 계속 진행을 해주시면 됩니다. 라이센스에도 동의를 해 주시구요. 이렇게 계속 다음을 눌러서 설치를 해 주시게 되면은 아나콘다가 설치되게 됩니다. 이때 PyCharm도 같이 설치가 되겠는데요. Jupyter 노트북과 함께 사용할 수 있는 파이썬의 편집기입니다. Continue를 눌러서 다음으로 진행을 해 주시게 되구요. 그리고 윈도우의 경우 중간에 pass 설정하는 옵션이 나오게 되는데 꼭 환경변수를 등록을 해 주시길 바랍니다. 환경변수를 등록을 해 주셔야지 콘다라는 명령어를 사용을 하실 때 따로 환경변수 설정 없이 사용하실 수가 있습니다. 자 이렇게 아나콘다3가 모두 설치가 되었습니다. 아나콘다가 잘 설치되었다면 이렇게 아나콘다 네비게이터를 실행해서 주피터 랩과 주피터 노트북을 실행해 보실 수 있습니다. 주피터 노트북 사용법을 알아보겠습니다. 주피터 노트북을 실행하게 되면 검은색 터미널 창이 뜨게 되는데 이때 이 검은색 터미널 창은 주피터 노트북의 서버로 닫으면 주피터 노트북이 동작하지 않게 됩니다. 브라우저가 자동으로 열리지 않는다면 검은색 창에 있는 localhost:8888/tree로 시작하는 주소의 토큰 값을 포함한 url을 브라우저에 붙여넣기해서 실행하시면 됩니다. 주피터 노트북에 실습 파일은 오른쪽 상단의 New의 파이썬 3로 새로운 노트북을 생성해 보실 수 있습니다. 실습을 통해 주피터 노트북 단축키를 사용해 보도록 하겠습니다. 주피터 노트북 사용법을 알아보도록 하겠습니다. 주피터 노트북을 실행하면 이렇게 주피터 노트북 화면이 나오게 되는데요. 메뉴에 보시면 File, Edit, View, Insert, Cell Kernel과 같은 메뉴가 보입니다. 여기에서 New Notebook-Python3를 하게 되면 새로운 주피터 노트북이 생성이 되게 되구요. 그다음에 Make a Copy를 통해서 주피터 노트북을 복사하실 수도 있고 또 Download as를 통해서 다양한 파일 포맷으로 다운로드 받으실 수도 있습니다. 그리고 아래에 있는 툴바가 있는데요. 가장 앞에 있는 디스켓 보 향은 주피터 노트북을 서비스로 주게 됩니다. 주피터 노트북은 따로 저장하지 않더라도 체크 포인트마다 주기적으로 저장을 하게 됩니다. 플러스 버튼을 눌러 주게 되면은 주피터 노트북에 셀을 생성하게 됩니다. 그리고 가위 모양을 실행을 시키면 이 셀을 삭제를 하게 됩니다. 복사를 한다든지 붙여넣기를 할 수가 있고요. 그다음에 여기에 있는 화살표 버튼을 통해서 셀을 이동해 보실 수도 있습니다. 여기에 있는 이 툴바를 단축키를 통해서 사용해 보실 수도 있습니다. 주피터 노트북은 실행 모드와 편집 모드를 가지게 되는데요. 셀에서 esc 키를 누르게 되면은 셀이 실행 모드로 변환이 되게 됩니다. 실행 모드 상태에서 a 키를 누르게 되면은 위에 셀을 생성하고 b 키를 누르면 아래에 셀을 생성합니다. 그리고 dd 키를 누르게 되면은 셀이 삭제가 됩니다. 그럼 간단한 파이썬 코드 하나를 작성해 보겠습니다. 1+2 를 입력을 하고 코드를 실행을 해보도록 할텐데요. Shift + Enter키를 누르게 되면은 셀이 실행이 되면서 다음 셀로 이동하게 됩니다. 그리고 Ctrl + Enter 키를 누르게 되면은 해당 셀을 실행하고 다음 셀로 이동하지는 않습니다. 그리고 실행할 때마다 여기에 번호가 증가하게 됩니다. 그리고 셀을 실행할 때마다 왼쪽에 실행되는 순서가 표시되게 됩니다. 그리고 다시 이 셀을 삭제하고 싶다면 dd 키를 누르게 되면 삭제가 됩니다. 그리고 1+2 를 다시 입력해 보도록 하겠습니다. 이 셀은 현재 코드 셀입니다. 그래서 실행을 하게 되면은 아래에 셀의 실행 결과가 나오게 되지만 이때 코드 셀이 아닌 마크 다운 셀로 변경을 해 주게 되면은 문서 셀로 변경이 되게 됩니다. 문서 셀은 문서화를 해볼 수 있는 셀로 #을 누르고 제목을 표시할 수도 있습니다. 예를 들어서 주피터 노트북 사용법이라고 입력을 해 볼 수 있습니다. 그리고 실행하게 되면 이렇게 코드 셀을 사용했을 때와 다르게 제목이 표시되는 것을 확인해 보실 수가 있습니다. 그러면 여기에서 m 키를 누르게 되면은 여기에서 드랍 다운을 하지 않더라도 마크 다운 셀로 변경되게 됩니다. 그리고 y 키를 누르게 되면 다시 코드 셀로 변경이 되게 됩니다. 이때 글씨가 초록색으로 표시가 되고 셀을 실행해도 밑에 아무것도 표시가 되지 않는 이유는 여기 이 # 표시가 파이썬에서는 주석 을 의미하게 됩니다. 그리고 해당 셀이 필요 없다면 다시 dd 키를 통해서 삭제를 하도록 하겠습니다. 다시 편집 모드로 돌아가고 싶다면 Enter 키를 누르게 되면은 실행 상태에서 셀이 편집 상태로 돌아옵니다. 단축키를 사용할 때는 실행 모드와 편집 모드에 따라서 다르게 사용하게 됩니다. 자 그럼 오늘 배운 내용을 정리해 보도록 할까요. 파이썬은 가독성과 유지 보수성이 높습니다. 그리고 스크립트 언어입니다 그리고 배터리가 내장되어 있다라는 별명이 인데요. 표준 라이브러리가 그만큼 많습니다. 접착제 언어라는 별명도 있는데요. 다른 언어와 호환성이 좋습니다. 그리고 다양한 생태계를 가지고 있습니다.아나콘다는 파이썬과 개발환경을 포함하고 있는 가상 환경입니다. 설치와 환경 설정을 줄여주는 도구입니다. 주피터 노트북은 파이썬을 편집할 수 있는 편집기입니다. 이것으로 이번 시간 강의를 마치겠습니다. 수고하셨습니다.
넘파이 기본 사용법을 알아보겠습니다. 파이썬과 넘파이 넘파이의 기본 연산 넘파이를 통한 기술 통계 순서로 보겠습니다. 넘파이는 행렬이나 일반적으로 대규모 다차원 배열을 쉽게 처리할 수 있도록 지원하는 파이썬의 라이브러리입니다. 다차원 배열의 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능을 제공합니다. 넘파이는 파이썬으로 만들어진 대표적인 수치 계산 라이브러리인데요. 파이썬의 여러 라이브러리들은 내부에서 넘파이를 사용하고 있습니다. 예를 들어 사이파이 판다 쓰 애플 알릭스 입원 등이 대표적이고요. 파이썬 데이터 과학 라이브러리의 기반이 됩니다. 그래서 싸이키 뻔히 라든지 텐서 프로 같은 머신 러닝이나 집 넌 인 라이브러리의 기반이 되기도 합니다. 리스트와 넘파이의 덧셈을 비교해보겠습니다. 왼쪽에는 리스트에 덧셈이 있고 오른쪽에는 넘파이의 덧셈이 있습니다. 리스트의 덧셈은 두 개의 변수 각각의 변수에 리스트가 할당이 된 것을 더 하게 된 아닌 하나의 리스트로 반원이 되는 것을 확인해 보실 수가 있고요. 오른쪽에 있는 넘파이의 더 센 결과 반환 값을 보게 되면은 2개의 리 스틸을 합쳐서 반환을 하지 않고 각각의 원소에 인덱스의 해당되는 가 끼리 덧셈을 해서 관원을 한 것을 확인해 보실 수가 있습니다. 리스트의 타입을 넘파이의 배열로 변환을 해서 덧셈을 하거나 아니면 의 넘파이의 에드 메소드를 사용해서 넘버 1 과 넘버 2 변수에 들어있는 리스트 값을 더해서 변환을 받을 수도 있습니다. 넘파이의 기본 연산으로 사칙연산을 해보겠습니다. 넘버 일이라는 변수와 넘버이라는 변수에 각각 1 이상 456이라는 값을 리스트로 할당을 해 줬는데요. 이 두 개의 변숫값을 넘 파일을 통해서 사칙연산에 해 보게 되면요. 일단 덧셈을 했을 때는 넘 파 2.8 이를 통해서 연산을 하게 되고요. 여기에 두 개의 변수를 넣어 주었더니 각각 원소에 인덱스의 해당되는 갓길이 더해서 579라는 값이 반 원인이 되었습니다. 그리고 뺄 생 연상을 하게 되면은 mp 점 섭 팩트로 연상을 하게 되는데요. 역시나 마찬가지로 이 두 개의 변소에 담겨져 있는 각각 원소의 인덱스의 해당되는 갓길이 뺄셈을 해서 각각 - 3 씩 차이가 나는 같이 반원 이 된 것을 확인해 보실 수가 있습니다. 곱셈도 마찬가지로 mp 점 멀티 플레이를 통해서 두 개의 변수를 넣어 주었더니 각각 2개의 변수의 인덱스 값에 해당되는 갓길이 곱셈을 해서 4 10 18 이라는 값이 반원이 된 것을 확인해 볼 수가 있습니다. 나눗셈도 마찬가지로 mp 점 디바이드 를 통해서 넘버 1 과 넘버 이라는 두 개의 리스트 값을 넣어 주었을 때 각각 리스트에 인덱스 해당되는 갓길이 나눗셈을 하고 그 결과가 환한 이 되었습니다. 실습을 통해서 넘파이의 사칙연산을 알아보도록 할텐데요. 넘파이의 ad 썹 t 멀티 플라이 디바이드 기능을 통해서 두 개의 리스트 캅스 에 대해서 연산의 해보도록 하겠습니다. 명 파일을 사용하기 위해서는 임포트 넘파이 에즈 mp 로 넘 파일을 불러와야 합니다. 그러면 셀 실행을 해서 넘 파일을 불러와 보도록 하겠습니다. lg 라는 것은 les 별칭을 의미하게 됩니다. 넘 파일을 뱀피 로 줄여서 쓰겠다 라는 것을 의미하게 됩니다. 그러면 파이썬의 리스트와 넘파이의 기본 연산 의 비교해 보도록 할텐데요. 넘버 2의 라는 변수에는 124 함께 라는 값이 담겨있는 리 스 티 를 넘어 투 라는 변수에는 456이라는 원소 값이 들어 있는 리스트를 할당을 해 주도록 하겠습니다. 그러면은 셀을 실행을 해서 각각의 변수에 리스트 값을 다 마시고 넘버 1 과 넘버 2 변수에 들어있는 값을 + 연산으로 + 되는 두 개의 리스트가 하나의 리스트로 합쳐서 출력이 되게 됩니다. 그러면 이렇게 + 연산을넘파이의 어레이 로 타입을 바꿔서 실행을 해보도록 하겠습니다. 넘버 일이라는 변수와 넘버 이라는 변수를 엠피에 어레이 로 감싸서 데이터 타입을 변경을 해주고 똑같이 리스트에서 + 연산을 했던 것처럼 뱀피 점 머레이 타입으로 바꾸어 주고 나서도 똑같이 + 연산으로 2개의 리스트를 더 해보겠습니다. 2개의 mp 점 머레이 타입을 더 햇더니 리스트 형태 를 더 했을 때와 다르게 각각의 원소 끼리 합계를 구한 것을 확인해 보실 수가 있습니다. 1 과 4 를 더해서 5 이와 오르도 에서 측 3 과육을 더해서 구가 출력이 된 것을 확인해 보실 수가 있습니다. 그러면 이렇게 넘파이의 기본 연산을 할 때는 + 연산을 통해서 mp 점 머레이 타입을 더해 줄 수도 있지만 이 리스트 값을 넘파이 점 에드 섭취 트 멀티 플라이 디바이드 이를 통해서 연산을 해줄 수도 있습니다. 그러면은 + 연상 먼저 해보도록 하겠습니다. 위에서 mp 점 어뢰의 로 데이터의 타입을 바꿔서 + 연산을 했던 것처럼 넘버 1 과 넘버 2 에 들어가 있는 변수의 값들이 리스트에 각각 인덱스의 해당되는 가 끼리 더해져서 출력이 되는 것을 볼 수 있습니다. 다음으로 썩 t 를 하게 되면 은 각각의 인덱스의 해당되는 갓길이 - 연산을 해서 이렇게 - 삼치 값이 나온 것을 확인해 볼 수가 있구요. 다음으로 멀티플레이 연산을 하게 되면은 곱하기 연산을 해서 출력이 되는것을 보실 수가 있습니다.다음으로 디바이드 연산을 하게 되는 각각의 원소에 해당되는 갓길이 나누기 양산을 해서 값이 출력이 되는 것을 확인해 보실 수가 있습니다. 기술통계 는 측정이나 실험 에서 수집한 자료의 정리 표현 유약 해석 등을 통해 자료에 특성을 규명하는 통계적인 방법입니다. 넘 파일을 통해서 평균 중앙값 부산 표준 편차를 구해 볼 텐데요. 여기 넘파이의 어뢰의 를 통해서 123456 이라는 2차원 배열을 선언했습니다. 이 2차원 배열에 들어있는 값을 평균 중앙값 분산 표준편차 를 구해 볼 텐데요. 넘파이의 민을 통해서 평균값을 구해 볼 수가 있고요. 넘파이의 미디어 늘 통해서 중앙값 3 구해 볼 수가 있습니다. 그리고 넘파이의 vr 을 통해서 분 상 값을 구해 볼 수가 있고요. 2분 상 값에 다가 루트로 제곱근을 취해 주게 되면 잉 표준 편차를 구해 볼 수가 있습니다. 그리고 표준편차는 이렇게 분산의 루트를 취해 줄 수도 있지만 mp 점 std 를 통해서 직접 표준 편차를 구해볼 수도 있습니다. 실습을 통해서 분산의 루트를 취해서 표준 편차 를 구해 보도록 할텐데요. 넘어 라는 변수에 2차원 배열을 할당을 하고 분산 표준편차 와 가 층 기술통계 값을 직접 구해 보도록 하겠습니다. 떤 파일을 통한 기술 통계를 해보도록 하겠습니다. 넘파이의 배열로 2차원 배열을 먼저 선언을 해 주도록 하겠습니다. 1 이상 456 이라는 리스트 값이 각각 하나씩 원소가 되어서 2차원 배열을 갖는 넘버 라는 변수를 선언 을 해 주겠습니다. 넘버 라는 변수에는 2차원 행렬 형태로 넘파이의 허리 타임이 들어있는 것을 확인해 볼 수가 있습니다. 그러면은 행렬에 크기를 출력하기 위해서는 넘파이의 쉐프 로 출력을 하게 되면은 두 개의 행과 3개의 컬럼을 가지는 배열로 가지고 있다 는 것을 확인해 볼 수가 있고요. 그 다음에 최소값은 넘파이의 민 값으로 2 해당 배열에서 가장 작은 값을 가지고 오게 됩니다. 그리고 최대 값을 출력을 하게 되면은 해당 배열에서 행렬에서 가장 큰 값을 가지고 와서 출력을 하게 됩니다. 그리고 평균값을 출력을 하게 되면은 해당 행렬에서 모든 밥 뜰의 평균값을 구하게 됩니다. 다음으로 중앙 값을 구하게 되면 은 각 회당 값에서 가운데 있는 값을 가져오게 되는데 가운데 있는 값이 3과 4 2개가 있기 때문에 두 개의 평균값을 구해서 출력을 하게 됩니다. 다음으로 분산을 구해보도록 하겠습니다. 둔산 은 mp 점 바 그래서 분산을 mp 점 바 를 통해서 넘버 값을 넣어 주게 되면 n 분산을 9 하게 되는데요 이렇게 구한 분산 에다가 루트를 취해 주게 되면 은 표준 편차 를 구하게 됩니다. 서 분산의 제곱근을 의 취해서 표준 편차를 보이는데요. 표준편차는 이렇게 분산의 루트를 취해서 구할 수도 있지만 mp 점 std 를 통해서도 표준편차 값을 구해 보실 수 있습니다. 그리고 모든 값의 합계를 구하고 싶을 때는 mp 점 싸움을 하게 되면은 전체 값의 합계를 구하게 됩니다. 그럼 오늘 외운 내용을 정리해 보도록 할까요. 넘파이는 행렬이 는 일반적으로 대규모 다차원 배열을 쉽게 처리할 수 있도록 지원하는 파이썬의 라이브러리입니다. 다차원 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능을 제공하고 있습니다. 기본 연산으로 덧셈 뺄셈 곱셈 나눗셈을 해볼 수도 있고요. 기술통계 값을 구해 볼 수도 있는데요. 최소 깍 최대가 평균 중앙값 분산 표준편차 같은 값을 구해 볼 수도 있습니다. 이것으로 이번 시간 강의를 마치겠습니다. 수고하셨습니다.
판다 스 기본 사용법에 대해서 알아보도록 하겠습니다. 파일의 경우 설정 데이터 플레인 가 스리즈 데이터 프레임의 석 쌕 가져오기 순서로 알아보도록 하겠습니다. 판다 스에서 파일을 불러올 때는 주피터 노트북과 같은 위치에 csv 파일을 옮겨 주시는 것을 권장을 드리게 되는데요. 그러면 따로 경로 설정을 할 필요가 없이 쉽게 파일을 불러 오실 수가 있습니다. 판다 스에 리드 언더바 기능을 통해서 파일을 읽어올 수가 있는데요. 블러 온 파일은 데이터 플레인 이라는 행여 형태가 되게 됩니다. 여기에서 파일을 불러올 때는 csv 파일 뿐만 아니라 엑셀 파카 k의 html 제 2승 등 다양한 파일 포맷을 리드 언더바 를 통해서 불러올 수가 있고요. 이렇게 불러온 데이터 프레임의 투 언더 바스 sv 투 언더바 2x2 언덕 아파 k 등과 같이 다양한 파일 포맷으로 저장을 할 수가 있습니다. csb 파일을 주피터 노트북으로 불러오는 실습을 해보도록 하겠습니다. 필히 점 리드 언더바 csb 를 하고 파일 경로와 이름을 적어 주게 되면 해당 파일을 불러올 수가 있는데요. 이때 변수에 다 지정해 주게 되면 n 다시 재 사용을 해 볼 수가 있습니다. 그래서 df 라는 변수에 지정을 해주고 그 다음에 df 점 헤드로 미리 보기 까지 하는 실습을 해보도록 하겠습니다. 판 탓으로 실습을 하기 위해서는 판다 셀 라이브러리를 모드 해야 하는데요. 임포트 판다 쓰이지 피리 를 통해서 팔라스 라이브러리를 불러올 수가 있습니다. 이때 애즈 라는 것은 엘리아스 를 의미하게 됩니다. 판 다스릴 pd 라는 별칭으로 줄여서 부르겠다 가는 의미입니다. 그래서 그냥 판다 쓰라고 사용할 수도 있지만 pd 로 줄여서 로드를 하겠습니다. 이렇게 셀 실행이 주게 되며 는 왼쪽에 실행된 순서가 표시가 되게 됩니다. 그리고 판다 스스로 레드 언더 macy's v 를 통해 csv 파일 로드 에 오도록 하겠습니다. 이때 이 csv 파일은 2 주키퍼 노트북이 있는 같은 위치에 넣어 주시는 게 좋습니다. 그래야지 경로를 따로 설정하시기 지 않더라도 바로 csv 를 불러 오실 수가 있습니다. 그럼 저는 미리 주피터 노트북과 같은 경우에 이 csv 파일에 넣어 두었기 때문에 pd 점 리딕 언더바 cs 부위를 통해서 이 csv 파일을 불러 오도록 하겠습니다. 그리고 데이터 프레임을 뒤 f 라는 변수에 담아 주었습니다. df 라는 변수에 담아 주게 되면 이렇게 매번 csv 파일을 불러올 필요가 없이 변수를 재사용해 볼 수가 있습니다. 그러면 기획부 점 해드 를 실행해서 데이터 프레임을 미리 보기 해보도록 하겠습니다. 이렇게 데이터 프레임을 미리 보게 되면은 쩜쩜쩜 하고 중간에 잘리는 부분이 생기게 되는데요. 여기에서 이렇게 잘리게 되는 부분을 모두 로드를 하고 싶다면 판다 소스에 옵션을 사용해서 맥스 컬럼을 65개로 설정을 해 주도록 하겠습니다. 조금 넉넉하게 설정을 해주게 되면 은 6시 목에까지는 잘리지 않고 모든 권장을 보이게 됩니다. 이렇게 판다 쓰 를 통해서 미리 보기를 해봤는데요. 미리 보기를 할 때는 헤드를 통해서 위에 있는 값들을 미리보기 할 수도 있지만 테이를 통해서 아래 있는 값을 미리 보기 할 수도 있습니다. 뒤에 부 점 테이를 실행해 주게 되며 는 아래에서 5개를 기본값으로 가져오게 됩니다. 여기에 있는 이기봉 칵스 후 이 괄호 안에서 권장을 탭키를 눌러 주시게 되면 n 기본값을 확인해 보실 수가 있는데요. 여기에 권장을 오라고 기본값이 다 와 있는 것을 확인해 보실 수가 있습니다. 여기에 숫자를 3으로 바꿔 주게 되는 미리 보길 3개 맛 설정해 준 숫자만큼 만 가져오게 됩니다. 판 덱 스 를 이해하기 위해서는 데이터 프레임 우가 3c 를 이해하는 것이 굉장히 중요한데요. 데이터 프레임은 수학적으로 표현하면 2차원 배열 형태가 이고요. 행과 연 형태로 엑셀과 유사한 구조를 가지게 됩니다. 3g 는 수학적으로 표현하게 되면 1 차원 벡터 형태가 되게 되는데요. 1개의 행이나 열을 따로 떼어 내게 되는 셀 리즈 구조가 되게 됩니다. 데이터 프레임과 시리즈를 비교를 해보면 데이터 프레임은 수학적으로 행렬 3g 는 벡터로 표현을 할 수가 있고요. 리스트로 표현하게 되는 데이터 프레임은 2차원 쓰리 즈는 1차원이 됩니다. 예를 들어서 리스트를 설정을 했을 때 123456 이라는 각각의 리스트 값에다가 리스트 괄호 대괄호를 하나 더 쉬어 주게 되면 은행 2차원 행렬이 되게 됩니다. 그리고 오른쪽에 보시게 된 은행 123이라는 값을 하나의 대괄호로강사 주었는데요. 이때는 1차원 벡터가 되게 됩니다. 그리고 판다 스스로 표현하게 되면 은 셀 리즈 형태의 자 6 조 가 됩니다. 데이터 프레임과 시리즈의 타입을 보도록 하겠습니다. 실습 코드를 통해서 데이터 부인과 쓰리 즈 에 타입을 출력을 해 보도록 하겠습니다. 데이터 프레임을 df 라는 변수에 담아 주어 썼는데요. 이 뒤에 브라는 변수를 실행하게 되면 n 전체 데이터 프레임을 불러오게 됩니다. 그 데이터 페이 너무 크기 때문에 이점 헤드를 통해서 미리 보기로 1장 보도록 하겠습니다. 저희 데이터 프레임의 타입을 보고 싶으면 타입의 df 로 감싸 줄게 되면 은 이 데이터 프레임에 대한 타입을 보실수가 있습니다. 판다스의 코우 fa 및 데이터 프레임 형태인 것을 확인해 보실 수가 있고요 그 다음에 이 데이터 프레임에서 특정 컬럼 하나만 가져오게 되면 이렇게 가져온 데이터는 시리즈 형태가 되게 됩니다. 그럼 이 3g 형태가 왔는지 타입을 통해서 수가 에 평 금 기운 가져온 데이터를 출력을 해 보게 되는 판다 스 에코 에스 리즈 인것을 확인해 보실 수가 있습니다. 그래서 df 라는 변수에 담겨있는 값에 타입은 데이터 프레임 형식이 되고요. 그 다음에 여기에서 특정 컬럼 만 불러왔을 때 는 판다 쓰 s 시리즈 다 입이 되게 됩니다. 3 리즈는 1 처음 벡터 타입으로 평균 기업만 이렇게 가져오게 되는 시리즈 타입이 되길 이구요. 그 다음에 여기 시리즈에다가 괄호를 하나 더 해서 실행을 해 보게 되는 2차원 행렬 형태로 출력이 되게 됩니다. 그래서 시리즈의 이 때는 이렇게 값과 그 다음에 컬럼에 이름 데이터의 타임이 같이 표기가 되고요 그리고 데이터 프레임 형태로 출력을 하게 되면 인 이렇게 표 형태로 데이터 프레임을 출력을 하게 됩니다. 데이터 프레임에서 특정 제 2승 만 가져와 보도록 할 텐데요. df 라는 변수에 데이터 프레임이 들어 있다면 이 때 대괄호 2개를 사용해서 지점명 평균 기온을 지정을 해 주게 되면 은 지 전면과 평균기온 만들어 있는 데이터 프레임을 따로 뽑아서 가져오게 됩니다. 이때 주위에 주실 청은 대괄호가 2개가 들어간다 라는 점인데요. 왜냐하면 에는 파이썬에서 는 두 개 이상의 데이터를 다룰 때는 리스트에 자료 구조를 사용하는 것이 좋기 때문입니다. 그래서 꼭 리스트 형태로 수정을 해주셔야지만 데이터 프레임으로 가져올 수 있다라는 것을 기억해 2시면 좋을 것 같습니다. 데이터 프레임에서 그림과 같이 특정 행 만에 뽑아서 서브 에이스를 만들 때는요. 불리한 인덱싱을 사용하게 되는데 돌리 안 조건씩의 결과가 투로 펄스 즉 값으로 나오기 때문에 불리한 인덱싱으로 부르기도 합니다. 또 쿼리를 통해서 조건식을 작성해서 서브 셋을 가져올 수도 있습니다. 실습을 통해서 특정 조건의 데이터만 가져보도록 하겠습니다. 예를 들어 지점명 2 서울인 데이터만 추출하는데 데이터 프레임에서 쿼리를 사용해서 가져보도록 하겠습니다. 데이터 프레임의 서비스의 가져보도록 하겠습니다. 지정 명과 평균 기운을 가져오도록 할 텐데요. 이때 두 개의 컬럼을 가져올 때는 반드시 대괄호를 하나 더 감싸서 지정해 주셔야 합니다. 회당 3 를 실행해 보게 되면 된 데이터 프레임에서 해당 주 전면과 평균기온 컬럼 r 서브 s를 생성해서 가져온 것을 확인해 보실 수가 있습니다. 그리고 특정 지점 명만 가지고 오고 싶을 때 쿼리문을 통해서 SQL 쿼리문 처럼 데이터를 가져 오실 수가 있습니다. 서지적 명이라는 컬럼에서 서울이라는 것만 가져오고 자 한다면 이렇게 쿼리문을 작성해 주고 너무 많기 때문에 헤드를 통해서 앞부분만 미리 보기로 했습니다. 서울의 해당하는 데이터만 가져온 것을 확인해 보실 수가 있습니다. 다음으로 평 금 기온이 33도 이상인 알만 가져보겠습니다. 평균 기온이 33도 이상인 데이터만 가져오게 되는 이렇게 트루 펄스 값으로 출력이 되게 됩니다. 이 상태에서 기 f 데이터 프레임으로 한 번 더 감싸 주게 되면 은 이렇게 데이터 프레임 형태로 서브 s 출력을 하게 되는데요. 데이터 프레임으로 감싸기 저니 투 펄스 값으로 출력이 된 인덱스 값을 통해서 가져왔기 때문에 이렇게 가져오는 방법을 불리언 인 핵심이라고 부릅니다. 주장 명이서 우린 데이터만 가져오는데 쿼리문 대신 불리한 인덱싱을 사용해 보겠습니다. 그래서 셀 실행을 해 보게 되면 n 이렇게 기획 의지적 명은 서울에서 뒤에 브로 한 번 더 감싸고 미리 보기를 통해서 가져오도록 했는데요. 쿼리를 통해서 가져올 수도 있지만 이렇게 분리한 인덱싱을 통해서 서브 셋을 가져오는 방법도 있습니다. 자 그럼 오늘 배운 내용을 정리해 보도록 할까요. 파낙스 를 통해서 파일을 불러올 때는 필히 점 리드 언더바 csb 하고 파일명을 적어주시면 파일을 불러올 수가 있고요. 데이터 프레임은 2차원 행렬 구조입니다. 엑셀과 유사한 형태를 가지고 있고요 쓰리 즈는 하나의 행이나 열을 가져온 형태가 되게 됩니다. 서브 스승 조건씩이나 쿼리를 통해 가져올 수 있습니다. 이것으로 이번 시간 강의를 마치겠습니다. 수고하셨습니다.
기술 통계. 수 층 데이터의 기술통계 와 범 수영 데이터의 기술통계를 알아보겠습니다. 기술 동기는 측정이나 실험에서 수집한 자료의 정리 표현 요약 해석 등을 통해 자료에 특성을 규명하는 통계적인 방법입니다. 수창 데이터의 기술통계 값으로는 빈도 수를 구하는 카운트 평균을 구하는 님 표준 편차를 구하는 xtd 최솟값을 구하는 민 1 사본이 숙 값을 구하는 25% 이 4분이 수 중앙값을 금 이하는 50% 3 4분이 수를 의미하는 75% 최댓값을 의미하는 맥스를 통해서 가 기술통계 캅 쓸 구해 보실 수가 있습니다. 박스풀 옷을 통해 기술 통계값을 보도록 하겠습니다. 박스풀 옷을 보시면 네모난 상자 앞뒤로 이렇게 긴 선이 표현이 되어 있는 것을 보실 수가 있는데요. 이렇게 긴 선은 보통 수염이라고 표현을 합니다. 그래서 2박스 플롯을 상자 수염 그림이라고 도 불게 됩니다. 그럼 왼쪽 수염의 끝에 표시된 값은 이상 7을 제외한 최솟값을 의미하게 됩니다. 그리고 오른쪽 끝에 위치한 수염의 끝에 있는 값은 이상 7을 제외한 최댓값을 의미합니다. 그리고 상자를 보게 되면 상자의 맨 왼쪽 끝 부분 값에 쌩 25%의 값으로 1사분이 수를 의미하게 됩니다. 그리고 가운데 그어진 선은 중앙값으로 50% 값을 의미하게 됩니다. 그리고 상자의 오른쪽 그 부분 값은 75%의 값으로 3사 보니 수 값을 의미하게 됩니다. 그래서 평균 기운으로 실험에서 플롯을 그려 보게 되면은 최소 깍 최댓값 25%에 까 중앙값 75%의 값을 하하 액 그래프에서 확인해보실 수가 있습니다. 서평 금기 온의 이상 7을 제외한 최솟값은 - 10도보다 조금 더 아래에 있는 것을 확인해 보실 수가 있고요. 그다음에 이상 7을 제외한 최대값은 30도 보다 더 높은 값이 있는 것을 확인해 보실 수가 있습니다. 데이터 프레임 점 디스크 라이브를 통해서 지금까지 소개했던 수취 데이터의 기술 통계 값을 확인해 보실 수가 있습니다. 기술통계 캅스 실습하기 위해서는 필요한 라이브러리를 먼저 로드를 해주어야 하는데요. 데이터 분석을 위한 판다 쓰 그다음에 수치 계산을 위한 넘 파이 시각화를 위한 c 본 그리고 15 4 기반이 되는 파이 플롯을 로드 해 주도록 하겠습니다. 그리고 os 에 맞는 폰트를 설정을 해줘야 하는데요. 저희는 기술 통계값을 시각화를 통해서 같이 볼 것이기 때문에 os 에 맞는 폰트를 설정해 주도록 하겠습니다. 윈도우 게 어릴 때는 맑은 고딕 을 그리고 그외 운영체제에서는 애플 고딕 을 설정해 주고 그다음에 마이너스가 폰트에서 - 가 깨지는 문제를 해결하기 위해서 유니코드 - 를 설정해 주도록 하겠습니다. 그 다음에 레티나를 지원하는 디스플레이 에서는 폰트가 선명하게 보이게 하기 위해서 레티나 설정을 해 주겠습니다. 그리고 csv 파일을 로디 에 오도록 하겠습니다. 그리고 컬럼의 잘려 보이는 것을 방지하기 위해서 65개 로 맥스 컬럼의 수를 넉넉하게 설정을 해 주면 이렇게 데이터 프레임을 불러왔을 때 65 깨에 컬럼 까지 잘리지 않고 보이게 됩니다. 그러면 스치 데이터에 기술통계 값을 알아 보도록 하겠습니다. df 정 디스크 라이브를 통해서 수치 데이터의 기술통계 에 값을 보실수가 있는데요 이 괄호 안에서 쉬프트 탭키를 눌러 주시게 되면 은 이렇게 도움말이 나오게 됩니다. 여러가지 이제 옵션이 있는데요. 일단 기본 옵션으로 실행을 하게 되면은 수치 데이터에 대한 기술 통계 값을 출력 을 해주게 됩니다. 여기에서는 빈도 수를 나타내는 카운트가 평균 하라다 있는 민 표준 편차를 나타내는 st 리 최소값을 나타내는 밍 25% 1 4분이 수를 나타내게 되구요. 50% 이사 보니 수 중앙 값을 나타냅니다. 75% 3 4분 이숙 값을 나타내고요. 맥 쌕 학생 최대값을 나타나게 됩니다. 그러면 평균 기온의 대한 기술 통계 값을 보도록 할텐데요. 7664 개로 지점에 비해서 값이 하나 더 적은 것을 확인해 보실 수가 있고요. 평균기온 의 평균은 14.1 도입니다. 지금 가져온 csv 파일에 있는 데이터에 평균기온 의 평균은 14.2 또이고요. 그 다음에 표준편차는 9.8 도 그 다음에 최저기온은 - 14 정 8 똑 그리고 최고기온은 33.7 도가 되게 됩니다. 그러면 이 평균 기운은 지점에 따라서 보고 싶다 라고 하면은 이 지정 명에서 그룹 파일을 통해서 평균 기온을 구해 줄 수가 있습니다. 데이터 프레임 에서 그룹 바이 로 지정 명을 하고 평균 기운을 가져와서 디스크 라이플 하게 되면은 지점별 평균 q 오늘 보실 수가 있습니다. 지점에는 광주 대구 대전 부산 서울 울산 인천 이 있구요. 각각의 빈도수를 보게 되는 대구가 1094 개로 빈도수가 하나 더 적고 나머지 지역은 빈도수가 다 같다는 것을 확인해 보실 수가 있습니다. 평균 기온의 평균을 보게 되는 광주가 14.6 구도 그 다음에 부산 25.3 치 또 올 사는 14.6 5도 서울은 13.2 도로 평균 기온을 구해도 온 것을 확인해 보실 수가 있구요. 날 표준편차 값을 보게 되는 서울이 10.89 로 여기에 있는 지역 중에서 표준 편차가 가장 크다 라는 것을 확인해 보실 수가 있습니다. 그리고 최저 기온을 보게 되면은 서울의 최저기온이 다른 지점에 비해서 가장 낮다는 것을 확인해 보실 수가 있고요. 최고 기온을 보게 되면은 역시나 서울이 다른 지역에 비해서 최고 기운이 가장 높다 라는 것을 확인해 보실 수가 있습니다. 그러면 이렇게 평균 기온이 기술 통계 값을 템프 라는 변수에 더 서 재 사용을 해보도록 하겠습니다. 평균기온 디스크 라이브로 위에서 구했던 값을 이렇게 변수에 담아 주었구요 이 변수에 있는 값을 가지고 와서 그럼 계산을 해보도록 하겠습니다. iq r 값은 3 4분 이수와 149 니 수의 차이를 의미 하게 되는데요. 그럼 셀을 실행을 한 상태에서 기술 통계 값을 비교의 가면서 보도록 하겠습니다. 여기 이렇게 평균 기온 의 상자 수염 그림을 그렸는데 요 최적 기온과 최고 기온을 이렇게 그려 볼 수가 있고 1 4분이 수 2 4분이 수 3 4분 이숙 각색 위치를 확인해 보실 수가 있습니다. 그러면 우리가 구했던 이 평균 기온의 기술통계 값으로 iq r 값을 구하고 그 iq r 값에 다가 1.5 를 곱한 값을 3 사후 니스의 더해 주게 되는 이상치 가 되게 되는데 이 이상 치는 47 도 보다 크면 은 이제 이상 추후 처리가 되게 되는데 최고 기온을 우리가 구했을 때 33도 이기 때문에 47 돕고 다 크지 않기 때문에 이상치 가 표시되지 않고 있습니다. 그 다음에 최저기온 회 이상 치는 일 4분이 수에서 일정 iq 알을 빼준 값이 되게 되는데 - 19 도 가 나왔습니다. 그런데 여기에서 있는 최저기온은 - 14.8 도 이기 때문에 이상 찍기 값보다 작지 않기 때문에 이상치 가 표시되지 않았습니다. 그러면 이 4분의 숙 값을 보도록 할텐데요. 이 itl 값은 3 4분 이수 카페에서 1사 보니 수 값을 빼준 값이 되구요. 그래서 1 4분이 수 값은 6 중앙값은 15.2 2 3 4 분이 수 값은 22.4 가 되는 것을 박스풀 옷을 통해서 확인해 보실 수가 있습니다. 범주형 데이터 의 기술 통계 값을 구하게 되면 카운트 위그 탑 프리퀀시 값을 구하게 되는 데요. 여기에서 카운트는 빈도수를 의미하게 됩니다. 그리고 유니크 는 중복 제거 후에 빈도수를 의미 하고요. 탑 값은 최빈값 프리퀀시 씨는 최근 캅 3 빈도수를 의미하게 됩니다. 실습을 통해서 범주형 데이터 의 기술 통계 값을 구해 보도록 할텐데요. 수치 변수의 기술통계 값을 구했던 것처럼 똑같이 디스크 라이브를 통해서 구해 볼 수가 있는데 잉 클로드 에다가 오브젝트 이라는 값을 넣어 주게 되면 n 범주형 변수에 대한 기술 통해 캅스 를 구해 보실수가 있습니다. 범주형 데이터 에 기술 통제 값을 알아 보도록 하겠습니다. 데이터 프레임 에서 똑같이 디스크 라이브를 해주게 되면 인 기술 통계 값을 구할 수가 있는데 이번엔 옵션이 잉크로 도 오브젝트 값을 더 주었습니다. 그러면 셀을 한번 실행을 해보도록 하겠습니다. 수취 형 변수의 기술통계 캅 쓰고 있을 때와 다른 값들이 표현이 되고 있는 것을 확인해 보실 수가 있는데요. 카운트는 빈 독과 유니크 는 중복을 제거한 빈도 값 그 다음이 탑 값은 가장 많이 등장하는 각 그다음에 프리퀀시 는 가장 많이 등장하는 값에 빈도수가 되는데요. 지점명 의 배 유카 운치를 한번 구해 보도록 하겠습니다. 지점명 의 비유 카운티 u 를 구하게 되면 은 인천 광주 부산 울상 다지 정명의 개수가 1095 개인 것을 확인해 보실 수가 있습니다. 그래서 여기에서 a 탁 값은 프리퀀시 가 다 똑같기 때문에 저는 인천이 나왔지만 실습을 하는 여러분들의 좋아 다른 지점에 값이 나올 수도 있습니다. 그리고 1c 는 2018년 11월 일이 가장 많이 나왔는데요. 일시에 대한 빈도수를 구해도 다 7개로 동 1학기 있는 것을 확인해 볼 수가 있습니다. 지점에 갯수만큼 그 날짜에 개수가 있다 라는 것을 확인해볼 수가 있고요. 그래서 여기에 나오는 탑 값도 랜덤하게 다른 값이 나올 수가 있습니다. 그래서 카운티는 빈도 수 유니크 는 중복을 제거한 빈도 수 그 다음에 탑 값에 쌩 가장 빈번하게 등장하는 각 그 다음에 프리퀄 씨는 가장 빈번하게 등장하는 값에 횟수가 되게 됩니다. 수출형 데이터의 기술 통해 값을 구하면 다음과 같은 값을 보실수가 있습니다. 카운트는 빈도 숙 얘는 평등 std 는 표준편차 이는 최 소값 25% 는 1사 분이 수 50% 는 이 4분이 수중 은 값을 의미하고 요 75% 는 참사 분이 숙 맥스는 최대값을 의미하게 됩니다. 범주형 데이터 의 기술 통계값을 구하게 되면 카운트 값을 응 빈도 숙 유니크 값은 중복 제거 후에 빈도 수 탑은 최빈값 프리퀄 쉬는 최빈값 쎄 빈도수를 25%의 됩니다.
데이터 요약과 절 측지 확인해 알아보겠습니다. 데이터의 크기 보기 데이터의 요약 정보 보기 결 측지 확인과 고관 순서로 보겠습니다. 데이터 프레임의 크기를 볼 텐데요 df 점 셰프 을 통해서 데이터 후임에 행과 열의 수를 볼 수가 있습니다. 이때 데이터 프레임에서는 항상 행 열 순으로 크기가 보여준다 라는 것을 기억해 2시면 좋을 것 같습니다. 그리고 파이썬의 여행을 통해서도 데이터 프레임의 행위예술을 볼 수가 있습니다. 데이터 프 인 변수에 랭 을 쉬어 주게 되면 이 데이터 프레임의 행의 수를 볼 수가 있습니다. 데이터에 크기를 직접 확인해 보도록 할 텐데요 불러온 데이터 프레임에서 df 점 쉐이프 를 통해서 데이터 프레임의 크기를 확인해 보도록 하겠습니다. 판다 스를 로드에서 미리 보기를 하게 되면 이렇게 데이터 프레임의 모습을 미리 보기 할 수 있는데요. 그러면 전체 데이터 프레임의 크기가 어느 정도가 되는지 알아보기 위해서는 이 데이터 프레임의 행과 열의 수를 출력을 해 볼 수가 있습니다. 그러면 데이터의 크기를 보기 위해서 2 df 라는 변수에 담긴 데이터 프레임의 크기를 쉐이프 를 통해서 출력을 해 보도록 하겠습니다. 2 데이터 프레임의 는 7665개의 행과 62개의 컬럼의 있는 것을 확인해 볼 수가 있습니다. 판 다수의 있는 셰프 기능을 사용해서도 이렇게 행과 열의 크기를 볼 수가 있지만 파이썬 에 있는 랭 을 통해서도 데이터에 크기를 확인해 보실 수가 있습니다. 이렇게 판다 쓰 에 데이터 프레임의 랭 을 취해 두게 되면 은 2판 다스 데이터 프레임의 해외 예수를 출력해 보게 됩니다. 그래서 전체적인 데이터가 행과 열의 개수가 몇 개인지 데이터에 행 앱 몇 개인지를 출력을 해 볼 수가 있습니다. 판 닥스를 통해서 데이터에 전체 요약 정보를 볼 수가 있습니다. 행과 열의 크기 라든지 각 볼 텐데요 * 수치 0 범주형 타입 이라든지 결 칙칙이 의수 데이터에 타입별 변수에 수 메모리 사용량 등을 볼 수가 있습니다. 데이터의 전체 요약 정보를 보도록 할 텐데요. 데이터 프레임에서 점 인포 를 해주게 되는 전체 데이터 게임에 대한 요약 정보를 한눈에 볼 수가 있습니다. 주피터 노트북을 통해서 데이터의 요약 정보를 보도록 하겠습니다. 미리 선언에 둔 데이터 프레임이 담겨져 있는 df 라는 변수에 서 점 인포 를 실행하게 되면 은 이렇게 전체적인 요약 정보를 보실 수가 있습니다. 이 요약정보 하나씩 보게 되면요. 일단 기회의 프란은 데이터 fm 은 판다 씨의 데이터 페인 형태라는 데이터 타입이 하는 것을 확인해 보실 수가 있고요. 다음으로 인덱스의 레인지가 0부터 7664까지 7665개가 있다 라는 정보를 확인해보실 수 있습니다. 그리고 컬럼은 62개를 가지고 있다는 것을 확인해 보실 수가 있고요. 가게 프레임에서는 따른 데이터의 타입이 라든지 아니면 인 결 책 책값을 확인해 보실 수가 있는데요. 일단 지점을 보게 되면 7665개의 값을 가집니다. 그리고 평 금기 오는 7664개로 하나의 결 치가 있는 것을 확인해 보실 수가 있습니다. 그리고 10분 최다 강수량이라든지 아니면 10분 최대 강수량 시각이라든지 아니면 은 1 강수량 같은 데이터에는 결 축 치가 많이 있다는 것을 확인해 보실 수가 있습니다. 그리고 지점명 과일 씨 같은 경우에는 데이터에 타입이 프레임에서는 타입으로 되어 있는데요. 이 오브젝트 c 타입 음문 짜 열로 된 타입을 의미하게 됩니다. 그래서 이렇게 문자열로 된 데이터의 타입을 다른 형태로 변경을 해주게 되면 된 데이터 전처리의 조금 더 유리할 수도 있습니다. 일단 지점 같은 경우에는 인 트 64로 숫자 형태 수치 데이터라는 것을 확인해 볼 수가 있고요. 나머지 데이터는 대부분 플롯 64 형태로 되어있는 것을 확인해 볼 수 있습니다. 컬럼명 이 굉장히 많은데 각각의 컬럼 마다 이렇게 데이터에 개수와 결 책취 의 수를 확인해 볼 수가 있습니다. 이 최신 적 썰은 144개로 전체 데이터의 개수의 비해서 데이터의 개수가 굉장히 적은 것으로 결 주체가 굉장히 많이 있다라는 것을 확인해 보실 수가 있고요 그 다음에 인포에서 맨 마지막 부분을 보게 되면은 메모리 uc 치가 나오게 됩니다. 그래서 어느 정도 이 데이터 프레이밍 컴퓨터의 메모리를 차지하고 있는지를 인포 를 통해서 확인해 보실 수가 있습니다. 절 측지 는 수집 과정에서 누락된 값이 거나 수집할 필요가 없어서 수집되지 않은 값일 수도 있습니다. 여기에서 결 칡 치여 불을 구한 이미지를 보실 수가 있는데요 이제 너를 통해서 결 칡 7일 구했습니다. 그리고 결과를 보게 되면 인 트 루 펄스 값으로 나오게 되는데요 투로 값은 결 칙칙해 펄스 값은 결집 치가 아님을 나타내고 있습니다. 절 축지 가 의도적으로 누락된 값이 아니라면 임의의 값으로 대체해서 채워 볼 수가 있습니다. 이때는 중앙 가 병균과 앞 최빈값 이정 깝 혹은 다음 값으로 채워 볼 수가 있습니다. 결 측 7을 보관할 때는 12월 데이터값에서 선형으로 비료 하는 방법으로 보관을 할 수 있는 방법도 있습니다. 시 개월 날짜 기준으로 앞에 달짜 혹은 앞에 있는 시간을 기준으로 채우거나 아니면은 뒤에 있는 날짜 혹은 시간으로 채울 수도 있습니다. 결 칙칙 확인과 고관 실습을 해보도록 하겠습니다. 뒤에 극점 2시 널 점 썸 을 하게 되면 전체 데이터 프레임이 가지고 있는 격 7을 확인해 볼 수가 있습니다. 데이터 프레임이 특정 컬럼을 가지고 와서 해당 3g 데이터로 인터폴 에이트 를 하게 되며 결 칡 7을 보관할 수가 있습니다. 치치 를 확인하기 위해서는 df 에서 이제 넓이라는 하우스를 통해서 실행을 하게 되면 은 이 데이터 프레임이 들어 있는 값들이 결 칙칙해 인지 아닌지에 대한 여부를 보실수가 있습니다. 투로 로 표시되면 n 값이 결 칙칙이 이고요 펄스 로 되어 있으면 된 결 칙칙 아 아니라 값이 들어있다 라는 의미가 되게 됩니다. 그래서 기획돼 널 하고 지금 헤드로 미리 보기를 했는데요 결 치치 가 아닌 것은 볼수록 결집 찐 것은 투로 표기가 된 것을 확인해 볼 수가 있는데요 이투 와 펄스는 일과의 영어로도 표기를 할 수 있습니다. 그래서이 투 룩 값들을 다 더 하게 되면은 결 찍지 의 수가 되게 되는데요 판다 3에서 변수로 지정한 기획 그의 더 를 가지고 와서 점 썽 을 하게 되면은 전체 데이터에 대한 값을 다 더 해주게 됩니다. 그래서 기 f 널 썸을 한번 실행을 해보도록 하면은 이렇게 결 치치의 개수를 다 세어서 계산을 해 주게 되는데요. 어떤 결 직지 가 많고 적은지 확인해 보기 위해서는 이제 결 칡 찌가 많은 순서대로 소프트베베 이스 하고 정렬을 해 주고 그 다음에 여기 아랫부분에 결집 치가 많은 데이터들이 있는데요 이 결 측 치들 아래에서 30개 결 치가 많은 순으로 30개 만 가져오도록 했어요. 그리고 플롯의 팝 h 를 통해서 결 책 7을 시각화 해 보도록 하겠습니다. 그러면 이렇게 막대 그래프가 그려지게 되는 데요. 이 플롯의 파 h 는 판다 쓰일 내장된 mfr 입을 통해서 그린 그래프입니다. 그래서 이렇게 그래프를 그린 것을 확인해 보게 되면은 최신 신 적설 시간 학계 3시간 신적 썰 1 최신 친 적사 적설량 과 관련된 데이터에 결 충치가 많이 있다라는 것을 확인해 볼 수가 있고요. 그 다음에 강수량 에도 결 치가 많이 있다라는 것을 확인해 볼 수 있고 지중 원도 에도 결 칙칙 아 꽤 많이 있다라는 것을 확인해 보실 수가 있습니다. 그래서 이렇게 어떤 데이터에 결 책 치가 많은지를 시각화를 통해서 확인을 해봤습니다. 1 강수량 의결 찍지를 보관을 해 보도록 할 텐데요. 일단 1 강수량에 데이터를 3g의 형태로 미리 보기를 해보도록 하겠습니다. 이 강수량에는 결 칙칙 아 꽤 많이 있는데요. 아마도 강수량 데이터가 없는 데이터는 비가 오지 않은 날일 수가 있습니다. 그래서 이 강수량 데이터를 임의의 값으로 보관하게 되면은 나중에 우리가 예측 값이나 통계 값을 구할 때 통계 값이 잘 받지 않을 수도 있습니다. 그래서 여기에서는 결 찍지를 보관하는 방법을 알려 드리고 나 있지만 실제 프로젝트에 적용하실 때는 왜 결 치가 발생을 했는지에 대한 내용을 미리 알아두시고 결 칙칙이 보관을 하시는 방법을 추천해 드립니다. 그러면 이에 값으로 채워 보도록 하겠습니다. 일단 1 강수량이 비어 있다는 것은 비가 오지 않았기 때문에 강수량이 영웅이다 라는 것을 의미하기 위해서 전 체결 칡 7을 필 na 0으로 채워 보도록 하겠습니다. 그러면 강수량을 0으로 채우게 되면 은 비가 오지 않는 날은 영어로 채워지고 나머지 값은 그대로 남아있게 됩니다. 다음으로 1 na 를 통해서 이정 깝 쓰 로 도 채워 볼 수가 있습니다. 이렇게 fp 를 통해서 값을 채우게 되면 은 위에 있는 값을 통해서 아래 값을 채우게 됩니다. 그런데 0번 인덱스 있는 값은 그 이전 인덱스의 값이 없기 때문에 결집 치가 채워지지 않았습니다. 그리고 bp 를 통해서도 채울 수가 있는데요. b 필은 뒤에 있는 값을 통해서 이 결제액 7을 채우게 됩니다. 그러면 영당 인덱스의 값이 f 필로 채웠을 때는 채워지지 않았지만 b 필로 채웠을 때는 이전 값을 통해서 채워진 것을 확인해 보실 수가 있습니다. 절치 보관하기를 인터폴 at 를 사용해서 채워 보도록 하겠습니다. 메쏘드는 리니어 를 사용하고 리미트 액션은 기본값인 미리 보기를 를 사용하겠습니다. 쉬프트 탭키를 눌러서 옵션의 보시게 되는 여기 들어가는 옵션 값 뜰과 기본값들을 대한 설명을 보실 수가 있습니다. 여기에서 미리 보기 는 기본값은 미리 보기 이지만 타임이라든지 인덱스 패드 미리 보기 리스트이라든지 다양한 값을 통해서 채워 보실수가 있습니다. 그리고 림이 디렉션 도 다른 값들을 바꿔서 채울 수도 있지만 기본값으로 채워 보도록 하겠습니다. 리니어 함수를 통해서 값을 채운 것을 확인해 보실 수가 있는데요. 맨 위에 있는 값은 nan 으로 채워 주지 않았습니다. 그래서 여기에 리 미쯔이 액션을 양쪽 방향의 모두 채우고자 하면은 보스를 5 실행을 해 주게 되면 앤 양쪽 방향으로 리니어 하게 값을 채워 주게 됩니다. 자 그럼 오늘 배운 내용을 정리해 보도록 할까요. 데이터의 유학 정보 는 데이터의 크기 범주형 수취 형 타입 확인 결 측지 확인 등을 알아볼 수가 있습니다. 결 책 찌는 누락된 값이 거나 수집할 필요가 없어서 수집되지 않은 값일 수도 있습니다. 결 7일 대처 할 때는 중앙 까 평균값 최빈값 혹은 임의의 값으로 채울 수가 있습니다. 절치 7을 보관할때는 시계열 데이터의 값에 따라 보관하는 방법이 있습니다. 이것으로 이번 시간 강의를 마치겠습니다. 수고하셨습니다.
수취형 변수에 시각화를 알아보도록 하겠습니다. 히스토그램 히스토그램 에 비해 개수 외도와 첨 도 계산을 알아보도할게요. 키스 토 g 은 표 록 되어있는 도수 분포를 정보 그림으로 나타낸 것으로 도수 분포 쿄 를 그래프로 나타낸 것을 의미합니다. 보통 히스토그램에서는 가루 축이 개그 세로축 의도 소스를 뜻하는데 때때로 반대로 글이기도 합니다. 서 가로축은 개그 글 듯 하구요. 새로 측은 도수를 뜻하게 됩니다. 개 급은 보통 변수에 국 아니고 서로 겹치지 않습니다. 히스토그램은 실습을 통해서 알아보도록 할 텐데요. 전체 수치 변수에 히스토그램을 생성해 보도록 하겠습니다. 데이터 프레임에서 점 히 스 트 하고 피그 사이즈 그래프의 사이즈를 지정을 해 주게 되는 요 이렇게 전체 변수에 대한 히스토그램을 그 여 보실수가 있습니다. 주피터 노트북에서 히스토그램을 시각화해보도록 할 텐데요 전체의 수치 변수에 대한 히스토그램 시간이 조금 오래 걸려서 제가 미리 실행을 해 놓았는데요. 데이터 프레임을 가지고 와서 점 히 스 트 하게 되면 n 전체 수취 강수의 대한 히스토그램을 시각화하게 됩니다. 판다 소스에 있는 요 히스토그램 시각화 기능을 사용해서 지금 전체 수치 변수에 대해서 히스토그램을 시각화한 모습을 보고 계십니다. 그래서 보시면은 이제 지주 몬도 그다음에 최가 강수 양 이라든지 i'm 에는 최다 1사 시각 그 다음에 적설량이 라든지 강수량 그 다음에 풍속이 라든지 햄 양키 아이 슬쩍 몬도 평균 풍 정합 다음에 합계 일조시간 꽈 같은 전체 수치의 변수에 대해서 이렇게 히스토그램으로 그래프를 표현을 한 것을 확인해 보실 수가 있습니다. 그런데 전체적으로 이렇게 수치 변수에 대해서 시가 콱 에서 히스토그램을 그리게 되면 은 이제 어떤 변수가 어떻게 어떤 모습을 하고 있는지 한쪽으로 값이 치우쳐져 있진 않은지 정규분포와 비슷한 모습을 가지고 있는지 외투와 청도가 어떤지 전체적인 모습을 히스토그램 시각화를 통해서 살펴 보실 수가 있습니다. 히스토그램 에비 4 개수를 알아보도록 하겠습니다. 도수를 표현할 때 빈 값을 사용하게 되는데 입이 내기 수에 따라 히스토그램 이 다른 모습으로 그려지게 됩니다. 여기에서 3개의 그래프가 있는데 첫 번째 그래프는 비니 1개 일대 두번째 그래프는 비니 10개의 이때 세 번째 그래프는 빈 200개 입대를 피 스 터 그래머 로 나타낸 모습입니다. 첫번째 그림 같은 경우에는 비니 1개밖에 없기 때문에 하나의 바구니에 다간 모든 값을 다 언어 었다 라고 보시면 됩니다. 그래서 이 하나의 박웅 에 전체 빈도수가 몇 개인지 를 지금 그래프로 시각화한 모습이고요 두 번째 그래프는 10개의 통해 다가 이 데이터를 각 구간의 맞게 나누어 담았을 때 각각의 구간에 빈도수를 의미하게 됩니다. 그다음에 세 번째 그 크는 이 구간을 100개로 나눴을 때 각각의 구간에 담기는 그 수치의 빈도 수를 그래프로 표현한 것이 세 번째 그림이 되게 됩니다. 그래서 빈에 개수에 따라서 다른 키스 토 g의 모습을 그리고 있다 라는 것을 확인해 보실 수가 있습니다. 4 예제를 통해서 직접 피스톤 링의 빈에 개수를 그려 보도록 할 텐데요 히스토그램에 원하는 빈 의 개수를 설정을 하고 시각화를 해보도록 하겠습니다. 데이터 프레임에서 평균 기웅 만을 가지고 와서 히스토그램을 그리고 그 다음에 빙 값을 100개로 설정을 했을 때 키소 g 에 막대가 100개가 그려지게 되는 데요 1개 10개 100개가 그려지는 실습을 직접 해보도록 하겠습니다. 개발 변수 시각과 와 b 네 개수를 알아보도록 할텐데요 서버 플롯을 그려서 이번에는 요 히스토그램을 하나씩 그 여 꾸도록 해보도록 하겠습니다. 그래서 왜 플라이의 파이 플롯을 가지고 하세요 서브 플러스 그리는데 1개의 행과 3개의 컬럼을 갖고 15 컴 마사 인치를 가지는 그래프의 사이즈를 갖는 제서버 플로우 생성을 하도록 하고요 그 서버 플로 간에 이 평균 기운을 가지고 히스토그램을 그려보도록 하겠습니다. 그래서 전체적으로 이제 히스토그램 그린 것을 확인해 보실 수가 있는데요. 평균 기온의 따라서 비행 값이 하나의 때 그 다음에 빈 값이 10 킬때 빈 값이 100대 1 대 의 히스토그램을 확인해 보실 수가 있습니다. 그리고 1강 수량으로 이제 히스토그램 에 또 그려 보도록 할 텐데요. 1강 수량으로 히스토그램을 그려 보게 되면은 이렇게 빈 값이 10 개 있을 때 막대를 10개 그리게 되는데 나머지는 빈도수가 작아서 약간 그래프가 잘 보이지가 않는 걸 확인해 볼 수가 있습니다. 빈 값을 한계 로 변경을 해서 그려 보게 되면은 이렇게 막대가 한계 그려지게 되고요. 100개로 변경을 해서 그려 보게 되면은 님 막대가 100개가 생성이 되는 것을 확인해 보실 수가 있습니다. 그다음에 10으로 변경을 해서 다시 그려 보게 되면 앤 막대가 10개로 변경 이 되는 것을 확인해 보실 수가 있습니다. 외도는 비대칭 도 또는 외도 라고 표현을 하고요. 실수가 확률 변수의 확률분포 비리 층 성을 나타내는 지표입니다. 외도의 값은 양수 나 음수가 될 수 있으며 정의되지 않을 수도 있습니다. 아래 그래프를 보면 은 2개 그래프가 있는데 오른쪽 혹은 왼쪽으로 각시 몰려있는 것을 확인해 볼 수가 있습니다. 그래서 이렇게 값이 어느 한쪽으로 얼마나 몰려있는 야 내일 표현하는 것이 바로 이 외에도 라고 볼수가 있습니다. 외도가 음수의 경우에는 확률 밀도 함수 의 왼쪽 부분에 긴 꼬리를 가지게 됩니다. 중앙 값을 포함한 자료가 오른쪽에 더 많이 분포해 있게 됩니다. 여기 그래프의 보든 내용은 평균기온 의 외도를 나타냈는데요 평균기온 의 외도는 -0.2 사이 영 이라는 값을 가지고 왼쪽 부분에 긴 꼬리 오른쪽 부분에 자료가 많이 분포가 되어 있다라는 것을 확인해 보실 수가 있습니다. 외도가 양수의 때를 보겠습니다. 양수 일때는 확률 밀도 함수 에 오른쪽 부분에 긴 꼬리를 가지게 되구요. 자료가 왼쪽에 더 많이 분포의 있게 됩니다. 평균 풍속의 외도를 구해 보게 되면 일정 이상이 8 이라는 값이 나오게 되는데 왼쪽에 값이 더 많이 분포가 되어 있다라는 것을 확인해 보실 수가 있습니다. 첨 도는 확률 분포의 뾰족한 정도를 나타내는 척도입니다. 관측 지들이 어느 정도 집중적으로 중심의 몰려 있는가 를 측정할 때 사용하게 됩니다. 첨두 깝 케이가 3 에 가까울수록 정규 분포의 가깝습니다. 예를 들어 평균 저는 양 예 첨 도는 - 1.20 이 이라는 값을 가지는데 어느정도 완만한 분포를 보이는 것을 확인해 보실 수 있습니다. 반면에 1 강수량의 청도는 27.1 사이라는 굉장히 큰 값을 3에서 먼 값을 가지게 되는데 이때는 한쪽에 굉장히 치우치고 뾰족한 형태를 나타내고 있는 것을 보실 수 있습니다. 청두에 k 값이 3 보다 작을 경우에는 정규분포 보다 더 완만하게 납작한 분포를 이루게 됩니다. 그림에서 보시는 것과 같이 평균 전원 양의 첨 도는 - 1장 이영기 이해하는 값을 가지게 되는데 완만하게 납작한 붐 포 형태를 띠는 것을 확인해 보실 수 있습니다. 첨 도 키가 3 보다 클 경우에는 정규 공포보다 더 뾰족한 분포를 가지게 되는데 이 강수량의 청도가 27점 142 라는 값을 가지는데 굉장히 뾰족한 형태를 띄고 있는 것을 보실 수 있습니다. 실습을 통해 수치 변수에 외도와 첨 돌을 구해 보도록 하겠습니다. 판다 cn cpu 기능을 사용해서 외도를 구해보도록 하겠습니다. 평균 기운에 외도를 9회 보배는 - 음수 값이 나오게 되는데요. 이렇게 음수 값에 대해서 히스토그램 으로 자료의 분포를 그려보도록 하겠습니다. 자료의 분포를 그려 보게 되면 평균 기온의 분포는 왼쪽으로 긴 꼬리를 가지고 오른쪽의 자료가 많이 분포가 되어 있음을 보실 수가 있습니다. 그래서 평균 기온의 외도 깝 음수가 나왔는데요. 외도 가 음수가 나온다면 이렇게 왼쪽으로 긴 꼬리를 가지고 오른쪽에 자료가 많이 분포되어 있음을 보실 수가 있습니다. 다음으로 평균 풍속의 외도를 그려보도록 하겠습니다. 평균 품속에 외도를 먼저 구해 보게 되면은 일정이 삶 이라는 값을 가지게 되는데요. 역시나 마찬가지로 히스토그램을 그려서 자료의 분포를 그려보도록 하겠습니다. 양수 값이 나온 외도 에서는 이렇게 오른쪽으로 긴 꼬리를 가지고 왼쪽에 자료가 많이 분포가 되어 있는 것을 보실 수 있습니다. 다음으로 첨 돌을 실습해 보도록 할 텐데요 판다 3 있는 기능을 통해서 평균 전원용 예총 돌을 구해 보도록 하겠습니다. 평균 저는 양 의 첨 돌을 구하게 되면 은 3보다 작은 값이 나왔는데요. 이때 이렇게 3보다 작은 값을 나온 데이터를 히스토그램을 그려서 분포를 그려 보게 되면은 완만한 분포를 가지고 있는 것을 보실 수가 있습니다. 그리고 첨 독해 이 값이 3보다 큰 값이 나오는 1강 수량에 대한 청도를 구해보도록 하겠습니다. 27.1 쌓아라 는 3 에서 멀리 떨어진 값이 나왔는데요. 예 강수량의 히스토그램을 그려서 분포를 그려 보게 되면은 왼쪽에 자료가 굉장히 많이 몰려 있고 또 뾰족한 형태를 띄고 있는 것을 보실 수가 있습니다. 그래서 이렇게 청 노후를 그려 보게 되면은 3보다 작은 값을 때는 완만한 형태의 분포를 그리고 3보다 큰 값일 때는 뾰족한 형태의 분포를 그리고 있는 것을 실습을 통해 알아보았습니다. 그럼 오늘 배운 내용을 정리해 보도록 할까요. 키스 토 g 은 표로 되어있는 도 쓰 분포를 정보 그림으로 나타낸 것 시 구 요 도수분포표 를 그래프로 나타낸 것을 의미합니다. 외도는 확률 이론 및 통계학 에서 비대칭 도 또는 외도 는 실수가 확률 변수의 확률분포 bd 칭송 을 나타내는 지표입니다. 할 텐데요 도는 확률분포의 뾰족한 정도를 나타내는 척도입니다. 이것으로 이번 시간 강의를 마치겠습니다. 수고하셨습니다. 아 으수취형 변수에 시각화를 알아보도록 하겠습니다. 히스토그램 히스토그램 에 비해 개수 외도와 첨 도 계산을 알아보도할게요. 키스 토 g 은 표 록 되어있는 도수 분포를 정보 그림으로 나타낸 것으로 도수 분포 쿄 를 그래프로 나타낸 것을 의미합니다. 보통 히스토그램에서는 가루 축이 개그 세로축 의도 소스를 뜻하는데 때때로 반대로 글이기도 합니다. 서 가로축은 개그 글 듯 하구요. 새로 측은 도수를 뜻하게 됩니다. 개 급은 보통 변수에 국 아니고 서로 겹치지 않습니다. 히스토그램은 실습을 통해서 알아보도록 할 텐데요. 전체 수치 변수에 히스토그램을 생성해 보도록 하겠습니다. 데이터 프레임에서 점 히 스 트 하고 피그 사이즈 그래프의 사이즈를 지정을 해 주게 되는 요 이렇게 전체 변수에 대한 히스토그램을 그 여 보실수가 있습니다. 주피터 노트북에서 히스토그램을 시각화해보도록 할 텐데요 전체의 수치 변수에 대한 히스토그램 시간이 조금 오래 걸려서 제가 미리 실행을 해 놓았는데요. 데이터 프레임을 가지고 와서 점 히 스 트 하게 되면 n 전체 수취 강수의 대한 히스토그램을 시각화하게 됩니다. 판다 소스에 있는 요 히스토그램 시각화 기능을 사용해서 지금 전체 수치 변수에 대해서 히스토그램을 시각화한 모습을 보고 계십니다. 그래서 보시면은 이제 지주 몬도 그다음에 최가 강수 양 이라든지 i'm 에는 최다 1사 시각 그 다음에 적설량이 라든지 강수량 그 다음에 풍속이 라든지 햄 양키 아이 슬쩍 몬도 평균 풍 정합 다음에 합계 일조시간 꽈 같은 전체 수치의 변수에 대해서 이렇게 히스토그램으로 그래프를 표현을 한 것을 확인해 보실 수가 있습니다. 그런데 전체적으로 이렇게 수치 변수에 대해서 시가 콱 에서 히스토그램을 그리게 되면 은 이제 어떤 변수가 어떻게 어떤 모습을 하고 있는지 한쪽으로 값이 치우쳐져 있진 않은지 정규분포와 비슷한 모습을 가지고 있는지 외투와 청도가 어떤지 전체적인 모습을 히스토그램 시각화를 통해서 살펴 보실 수가 있습니다. 히스토그램 에비 4 개수를 알아보도록 하겠습니다. 도수를 표현할 때 빈 값을 사용하게 되는데 입이 내기 수에 따라 히스토그램 이 다른 모습으로 그려지게 됩니다. 여기에서 3개의 그래프가 있는데 첫 번째 그래프는 비니 1개 일대 두번째 그래프는 비니 10개의 이때 세 번째 그래프는 빈 200개 입대를 피 스 터 그래머 로 나타낸 모습입니다. 첫번째 그림 같은 경우에는 비니 1개밖에 없기 때문에 하나의 바구니에 다간 모든 값을 다 언어 었다 라고 보시면 됩니다. 그래서 이 하나의 박웅 에 전체 빈도수가 몇 개인지 를 지금 그래프로 시각화한 모습이고요. 두 번째 그래프는 10개의 통해 다가 이 데이터를 각 구간의 맞게 나누어 담았을 때 각각의 구간에 빈도수를 의미하게 됩니다. 그 다음에 세 번째 그 크는 이 구간을 100개로 나눴을 때 각각의 구간에 담기는 그 수치의 빈도 수를 그래프로 표현한 것이 세 번째 그림이 되게 됩니다. 그래서 빈에 개수에 따라서 다른 키스 토 g의 모습을 그리고 있다 라는 것을 확인해 보실 수가 있습니다. 4 예제를 통해서 직접 피스톤 링의 빈에 개수를 그려 보도록 할 텐데요. 히스토그램에 원하는 빈 의 개수를 설정을 하고 시각화를 해보도록 하겠습니다. 데이터 프레임에서 평균 기웅 만을 가지고 와서 히스토그램을 그리고 그 다음에 빙 값을 100개로 설정을 했을 때 키소 g 에 막대가 100개가 그려지게 되는 데요. 1개 10개 100개가 그려지는 실습을 직접 해보도록 하겠습니다. 개발 변수 시각과 와 b 네 개수를 알아보도록 할텐데요. 서버 플롯을 그려서 이번에는 요 히스토그램을 하나씩 그 여 꾸도록 해보도록 하겠습니다. 그래서 왜 플라이의 파이 플롯을 가지고 하세요. 서브 플러스 그리는데 1개의 행과 3개의 컬럼을 갖고 15 컴 마사 인치를 가지는 그래프의 사이즈를 갖는 제서버 플로우 생성을 하도록 하고요 그 서버 플로 간에 이 평균 기운을 가지고 히스토그램을 그려보도록 하겠습니다. 그래서 전체적으로 이제 히스토그램 그린 것을 확인해 보실 수가 있는데요. 평균 기온의 따라서 비행 값이 하나의 때 그 다음에 빈 값이 10 킬때 빈 값이 100대 1 대 의 히스토그램을 확인해 보실 수가 있습니다. 그리고 1강 수량으로 이제 히스토그램 에 또 그려 보도록 할 텐데요. 1강 수량으로 히스토그램을 그려 보게 되면은 이렇게 빈 값이 10 개 있을 때 막대를 10개 그리게 되는데 나머지는 빈도수가 작아서 약간 그래프가 잘 보이지가 않는 걸 확인해 볼 수가 있습니다. 빈 값을 한계 로 변경을 해서 그려 보게 되면은 이렇게 막대가 한계 그려지게 되고요. 100개로 변경을 해서 그려 보게 되면은 님 막대가 100개가 생성이 되는 것을 확인해 보실 수가 있습니다. 그다음에 10 으로 변경을 해서 다시 그려 보게 되면 앤 막대가 10개로 변경 이 되는 것을 확인해 보실 수가 있습니다. 외도는 비대칭 도 또는 외도 라고 표현을 하고요. 실수가 확률 변수의 확률분포 비리 층 성을 나타내는 지표입니다. 외도의 값은 양수 나 음수가 될 수 있으며 정의되지 않을 수도 있습니다. 아래 그래프를 보면 은 2개 그래프가 있는데 오른쪽 혹은 왼쪽으로 각시 몰려있는 것을 확인해 볼 수가 있습니다. 그래서 이렇게 값이 어느 한쪽으로 얼마나 몰려있는 야 내일 표현하는 것이 바로 이 외에도 라고 볼수가 있습니다. 외도가 음수의 경우에는 확률 밀도 함수의 왼쪽 부분에 긴 꼬리를 가지게 됩니다. 중앙 값을 포함한 자료가 오른쪽에 더 많이 분포해 있게 됩니다. 여기 그래프의 보든 내용은 평균기온 의 외도를 나타냈는데요. 평균기온 의 외도는 -0.2 사이 영 이라는 값을 가지고 왼쪽 부분에 긴 꼬리 오른쪽 부분에 자료가 많이 분포가 되어 있다라는 것을 확인해 보실 수가 있습니다. 외도가 양수의 때를 보겠습니다. 양수 일때는 확률 밀도 함수 에 오른쪽 부분에 긴 꼬리를 가지게 되구요. 자료가 왼쪽에 더 많이 분포의 있게 됩니다. 평균 풍속의 외도를 구해 보게 되면 일정 이상이 8 이라는 값이 나오게 되는데 왼쪽에 값이 더 많이 분포가 되어 있다라는 것을 확인해 보실 수가 있습니다. 첨 도는 확률 분포의 뾰족한 정도를 나타내는 척도입니다. 관측 지들이 어느 정도 집중적으로 중심의 몰려 있는가 를 측정할 때 사용하게 됩니다. 첨두 깝 케이가 3 에 가까울수록 정규 분포의 가깝습니다. 예를 들어 평균 저는 양 예 첨 도는 - 1.20 이 이라는 값을 가지는데 어느정도 완만한 분포를 보이는 것을 확인해 보실 수 있습니다. 반면에 1 강수량의 청도는 27.1 사이라는 굉장히 큰 값을 3에서 먼 값을 가지게 되는데 이때는 한쪽에 굉장히 치우치고 뾰족한 형태를 나타내고 있는 것을 보실 수 있습니다. 청두에 k 값이 3 보다 작을 경우에는 정규분포 보다 더 완만하게 납작한 분포를 이루게 됩니다. 그림에서 보시는 것과 같이 평균 전원 양의 첨 도는 - 1장 이영기 이해하는 값을 가지게 되는데 완만하게 납작한 붐 포 형태를 띠는 것을 확인해 보실 수 있습니다. 첨 도 키가 3 보다 클 경우에는 정규 공포보다 더 뾰족한 분포를 가지게 되는데 이 강수량의 청도가 27점 142 라는 값을 가지는데 굉장히 뾰족한 형태를 띄고 있는 것을 보실 수 있습니다. 실습을 통해 수치 변수에 외도와 첨 돌을 구해 보도록 하겠습니다. 판다 cn cpu 기능을 사용해서 외도를 구해보도록 하겠습니다. 평균 기운에 외도를 9회 보배는 - 음수 값이 나오게 되는데요. 이렇게 음수 값에 대해서 히스토그램 으로 자료의 분포를 그려보도록 하겠습니다. 자료의 분포를 그려 보게 되면 평균 기온 의 분포는 왼쪽으로 긴 꼬리를 가지고 오른쪽의 자료가 많이 분포가 되어 있음을 보실 수가 있습니다. 그래서 평균 기온의 외도 깝 음수가 나왔는데요. 외도 가 음수가 나온다면 이렇게 왼쪽으로 긴 꼬리를 가지고 오른쪽에 자료가 많이 분포되어 있음을 보실 수가 있습니다. 다음으로 평균 풍속의 외도를 그려보도록 하겠습니다. 평균 품속에 외도를 먼저 구해 보게 되면은 일정이 삶 이라는 값을 가지게 되는데요. 역시나 마찬가지로 히스토그램을 그려서 자료의 분포를 그려보도록 하겠습니다. 양수 값이 나온 외도 에서는 이렇게 오른쪽으로 긴 꼬리를 가지고 왼쪽에 자료가 많이 분포가 되어 있는 것을 보실 수 있습니다. 다음으로 첨 돌을 실습해 보도록 할 텐데요. 판다 3 있는 기능을 통해서 평균 전원용 예총 돌을 구해 보도록 하겠습니다. 평균 저는 양 의 첨 돌을 구하게 되면 은 3보다 작은 값이 나왔는데요. 이때 이렇게 3보다 작은 값을 나온 데이터를 히스토그램을 그려서 분포를 그려 보게 되면은 완만한 분포를 가지고 있는 것을 보실 수가 있습니다. 그리고 첨 독해 이 값이 3보다 큰 값이 나오는 1강 수량에 대한 청도를 구해보도록 하겠습니다. 27.1 쌓아라 는 3 에서 멀리 떨어진 값이 나왔는데요 예 강수량의 히스토그램을 그려서 분포를 그려 보게 되면은 왼쪽에 자료가 굉장히 많이 몰려 있고 또 뾰족한 형태를 띄고 있는 것을 보실 수가 있습니다. 그래서 이렇게 청 노후를 그려 보게 되면은 3보다 작은 값을 때는 완만한 형태의 분포를그리고 3보다 큰 값일 때는 뾰족한 형태의 분포를 그리고 있는 것을 실습을 통해 알아보았습니다. 그럼 오늘 배운 내용을 정리해 보도록 할까요 키스 토 g 은 표로 되어있는 도 쓰 분포를 정보 그림으로 나타낸 것 시 구 요 도수분포표 를 그래프로 나타낸 것을 의미합니다. 외도는 확률 이론 및 통계학 에서 비대칭 도 또는 외도 는 실수가 확률 변수의 확률분포 bd 칭송 을 나타내는 지표입니다. 할 텐데요 도는 확률분포의 뾰족한 정도를 나타내는 척도입니다. 이것으로 이번 시간 강의를 마치겠습니다. 수고하셨습니다.
수취형 변수에 시각화를 알아보도록 하겠습니다. 히스토그램 히스토그램 에 비해 개수 외도와 첨 도 계산을 알아보도할게요 키스 토 g 은 표 록 되어있는 도수 분포를 정보 그림으로 나타낸 것으로 도수 분포 쿄 를 그래프로 나타낸 것을 의미합니다. 보통 히스토그램에서는 가루 축이 개그 세로축 의도 소스를 뜻하는데 때때로 반대로 글이기도 합니다. 서 가로축은 개그 글 듯 하구요. 새로 측은 도수를 뜻하게 됩니다. 개 급은 보통 변수에 국 아니고 서로 겹치지 않습니다. 히스토그램은 실습을 통해서 알아보도록 할 텐데요. 전체 수치 변수에 히스토그램을 생성해 보도록 하겠습니다. 데이터 프레임에서 점 히 스 트 하고 피그 사이즈 그래프의 사이즈를 지정을 해 주게 되는 요 이렇게 전체 변수에 대한 히스토그램을 그 여 보실수가 있습니다. 주피터 노트북에서 히스토그램을 시각화해보도록 할 텐데요 전체의 수치 변수에 대한 히스토그램 시간이 조금 오래 걸려서 제가 미리 실행을 해 놓았는데요. 데이터 프레임을 가지고 와서 점 히 스 트 하게 되면 n 전체 수취 강수의 대한 히스토그램을 시각화하게 됩니다. 판다 소스에 있는 요 히스토그램 시각화 기능을 사용해서 지금 전체 수치 변수에 대해서 히스토그램을 시각화한 모습을 보고 계십니다. 그래서 보시면은 이제 지주 몬도 그다음에 최가 강수 양 이라든지 i'm 에는 최다 1사 시각 그다음에 적설량이 라든지 강수량 그 다음에 풍속이 라든지 햄 양키 아이 슬쩍 몬도 평균 풍 정합 다음에 합계 일조시간 꽈 같은 전체 수치의 변수에 대해서 이렇게 히스토그램으로 그래프를 표현을 한 것을 확인해 보실 수가 있습니다. 그런데 전체적으로 이렇게 수치 변수에 대해서 시가 콱 에서 히스토그램을 그리게 되면 은 이제 어떤 변수가 어떻게 어떤 모습을 하고 있는지 한쪽으로 값이 치우쳐져 있진 않은지 정규분포와 비슷한 모습을 가지고 있는지 외투와 청도가 어떤지 전체적인 모습을 히스토그램 시각화를 통해서 살펴 보실 수가 있습니다. 히스토그램 에비 4 개수를 알아보도록 하겠습니다. 도수를 표현할 때 빈 값을 사용하게 되는데 입이 내기 수에 따라 히스토그램 이 다른 모습으로 그려지게 됩니다. 여기에서 3개의 그래프가 있는데 첫 번째 그래프는 비니 1개 일대 두번째 그래프는 비니 10개의 이때 세 번째 그래프는 빈 200개 입대를 피 스 터 그래머 로 나타낸 모습입니다. 첫번째 그림 같은 경우에는 비니 1개밖에 없기 때문에 하나의 바구니에 다간 모든 값을 다 언어 었다 라고 보시면 됩니다. 그래서 이 하나의 박웅 에 전체 빈도수가 몇 개인지 를 지금 그래프로 시각화한 모습이고요. 두 번째 그래프는 10개의 통해 다가 이 데이터를 각 구간의 맞게 나누어 담았을 때 각각의 구간에 빈도수를 의미하게 됩니다. 그다음에 세 번째 그 크는 이 구간을 100개로 나눴을 때 각각의 구간에 담기는 그 수치의 빈도 수를 그래프로 표현한 것이 세 번째 그림이 되게 됩니다. 그래서 빈에 개수에 따라서 다른 키스 토 g의 모습을 그리고 있다 라는것을 확인해 보실 수가 있습니다. 4 예제를 통해서 직접 피스톤 링의 빈에 개수를 그려 보도록 할 텐데요. 히스토그램에 원하는 빈 의 개수를 설정을 하고 시각화를 해보도록 하겠습니다. 데이터 프레임에서 평균 기웅 만을 가지고 와서 히스토그램을 그리고 그다음에 빙 값을 100개로 설정을 했을 때 키소 g 에 막대가 100개가 그려지게 되는 데요. 1개 10개 100개가 그려지는 실습을 직접 해보도록 하겠습니다. 개발 변수 시각과 와 b 네 개수를 알아보도록 할텐데요. 서버 플롯을 그려서 이번에는 요 히스토그램을 하나씩 그 여 꾸도록 해보도록 하겠습니다. 그래서 왜 플라이의 파이 플롯을 가지고 하세요 서브 플러스 그리는데 1개의 행과 3개의 컬럼을 갖고 15 컴 마사 인치를 가지는 그래프의 사이즈를 갖는 제서버 플로우 생성을 하도록 하고요. 그 서버 플로 간에 이 평균 기운을 가지고 히스토그램을 그려보도록 하겠습니다. 그래서 전체적으로 이제 히스토그램 그린 것을 확인해 보실 수가 있는데요. 평균 기온의 따라서 비행 값이 하나의 때 그다음에 빈 값이 10 킬때 빈 값이 100대 1 대 의 히스토그램을 확인해 보실 수가 있습니다. 그리고 1강 수량으로 이제 히스토그램 에 또 그려 보도록 할 텐데요. 1강 수량으로 히스토그램을 그려 보게 되면은 이렇게 빈 값이 10 개 있을 때 막대를 10개 그리게 되는데 나머지는 빈도수가 작아서 약간 그래프가 잘 보이지가 않는 걸 확인해 볼 수가 있습니다. 빈 값을 한계 로 변경을 해서 그려 보게 되면은 이렇게 막대가 한계 그려지게 되고요. 100개로 변경을 해서 그려 보게 되면은 님 막대가 100개가 생성이 되는 것을 확인해 보실 수가 있습니다. 그다음에 10 으로 변경을 해서 다시 그려 보게 되면 앤 막대가 10개로 변경 이 되는 것을 확인해 보실 수가 있습니다. 외도는 비대칭 도 또는 외도 라고 표현을 하고요. 실수가 확률 변수의 확률분포 비리 층 성을 나타내는 지표입니다. 외도의 값은 양수 나 음수가 될 수 있으며 정의되지 않을 수도 있습니다. 아래 그래프를 보면 은 2개 그래프가 있는데 오른쪽 혹은 왼쪽으로 각시 몰려있는 것을 확인해 볼 수가 있습니다. 그래서 이렇게 값이 어느 한쪽으로 얼마나 몰려있는 야 내일 표현하는 것이 바로 이 외에도 라고 볼수가 있습니다. 외도가 음수의 경우에는 확률 밀도 함수 의 왼쪽 부분에 긴 꼬리를 가지게 됩니다. 중앙 값을 포함한 자료가 오른쪽에 더 많이 분포해 있게 됩니다. 여기 그래프의 보든 내용은 평균기온 의 외도를 나타냈는데요. 평균기온 의 외도는 -0.2 사이 영 이라는 값을 가지고 왼쪽 부분에 긴 꼬리 오른쪽 부분에 자료가 많이 분포가 되어 있다라는 것을 확인해 보실 수가 있습니다. 외도가 양수의 때를 보겠습니다. 양수 일때는 확률 밀도 함수 에 오른쪽 부분에 긴 꼬리를 가지게 되구요. 자료가 왼쪽에 더 많이 분포의 있게 됩니다. 평균 풍속의 외도를 구해 보게 되면 일정 이상이 8 이라는 값이 나오게 되는데 왼쪽에 값이 더 많이 분포가 되어 있다라는 것을 확인해 보실 수가 있습니다. 첨 도는 확률 분포의 뾰족한 정도를 나타내는 척도입니다. 관측 지들이 어느 정도 집중적으로 중심의 몰려 있는가 를 측정할 때 사용하게 됩니다. 첨두 깝 케이가 3 에 가까울수록 정규 분포의 가깝습니다. 예를 들어 평균 저는 양 예 첨 도는 - 1.20 이 이라는 값을 가지는데 어느정도 완만한 분포를 보이는 것을 확인해 보실 수 있습니다. 반면에 1 강수량의 청도는 27.1 사이라는 굉장히 큰 값을 3에서 먼 값을 가지게 되는데 이때는 한쪽에 굉장히 치우치고 뾰족한 형태를 나타내고 있는 것을 보실 수 있습니다. 청두에 k 값이 3 보다 작을 경우에는 정규분포 보다 더 완만하게 납작한 분포를 이루게 됩니다. 그림에서 보시는 것과 같이 평균 전원 양의 첨 도는 - 1장 이영기 이해하는 값을 가지게 되는데 완만하게 납작한 붐포 형태를 띠는 것을 확인해 보실 수 있습니다. 첨 도 키가 3 보다 클 경우에는 정규 공포보다 더 뾰족한 분포를 가지게 되는데 이 강수량의 청도가 27점 142 라는 값을 가지는데 굉장히 뾰족한 형태를 띄고 있는 것을 보실 수 있습니다. 실습을 통해 수치 변수에 외도와 첨 돌을 구해 보도록 하겠습니다. 판다 cn cpu 기능을 사용해서 외도를 구해보도록 하겠습니다. 평균 기운에 외도를 9회 보배는 - 음수 값이 나오게 되는데요 이렇게 음수 값에 대해서 히스토그램 으로 자료의 분포를 그려보도록 하겠습니다. 자료의 분포를 그려 보게 되면 평균 기온 의 분포는 왼쪽으로 긴 꼬리를 가지고 오른쪽의 자료가 많이 분포가 되어 있음을 보실 수가 있습니다. 그래서 평균 기온의 외도 깝 음수가 나왔는데요. 외도 가 음수가 나온다면 이렇게 왼쪽으로 긴 꼬리를 가지고 오른쪽에 자료가 많이 분포되어 있음을 보실 수가 있습니다. 다음으로 평균 풍속의 외도를 그려보도록 하겠습니다. 평균 품속에 외도를 먼저 구해 보게 되면은 일정이 삶 이라는 값을 가지게 되는데요. 역시나 마찬가지로 히스토그램을 그려서 자료의 분포를 그려보도록 하겠습니다. 양수 값이 나온 외도 에서는 이렇게 오른쪽으로 긴 꼬리를 가지고 왼쪽에 자료가 많이 분포가 되어 있는 것을 보실 수 있습니다. 다음으로 첨 돌을 실습해 보도록 할 텐데요. 판다 3 있는 기능을 통해서 평균 전원용 예총 돌을 구해 보도록 하겠습니다. 평균 저는 양 의 첨 돌을 구하게 되면 은 3보다 작은 값이 나왔는데요. 이때 이렇게 3보다 작은 값을 나온 데이터를 히스토그램을 그려서 분포를 그려 보게 되면은 완만한 분포를 가지고 있는 것을 보실 수가 있습니다. 그리고 첨 독해 이 값이 3보다 큰 값이 나오는 1강 수량에 대한 청도를 구해보도록 하겠습니다. 27.1 쌓아라 는 3 에서 멀리 떨어진 값이 나왔는데요. 예 강수량의 히스토그램을 그려서 분포를 그려 보게 되면은 왼쪽에 자료가 굉장히 많이 몰려 있고 또 뾰족한 형태를 띄고 있는 것을 보실 수가 있습니다. 그래서 이렇게 청 노후를 그려 보게 되면은 3보다 작은 값을 때는 완만한 형태의 분포를 그리고 3보다 큰 값일 때는 뾰족한 형태의 분포를 그리고 있는 것을 실습을 통해 알아보았습니다. 그럼 오늘 배운 내용을 정리해 보도록 할까요. 키스 토 g 은 표로 되어있는 도 쓰 분포를 정보 그림으로 나타낸 것 시 구 요. 도수분포표 를 그래프로 나타낸 것을 의미합니다. 외도는 확률 이론 및 통계학 에서 비대칭 도 또는 외도 는 실수가 확률 변수의 확률분포 bd 칭송 을 나타내는 지표입니다. 할 텐데요 도는 확률분포의 뾰족한 정도를 나타내는 척도입니다. 이것으로 이번 시간 강의를 개수 수고하셨습니다.
범주형 변수를 알아보도록 하겠습니다. 범주형 변수에 빈도수 구하기 범주형 변수의 시각화 순서로 보겠습니다. 범주형 변수의 빈도수를 구할 때는 하나의 범주형 변수 인지 2개의 범 정변 수 인지에 따라서 구하는 방법이 달라지게 되는데요. 데이터 프레임 에서 하나의 변수만 가져오게 되며 는 3g 의 형태가 되게 됩니다. 3g 의 형태에서 베이 6화 은 주유를 해주게 되는 빈도수를 측정할 수 있는데요. 이 벨 6화 음주는 3g 데이터 에서만 사용할 수 있습니다. 그리고 노말 빈도수 빈도수 통해서 전체에서 어느정도 비율 인지를 확인할 수 있습니다. 2개의 범종 변수 일대는 크롬 스텝 을 사용해서 빈도수를 측정 하게 되는데요. 행과 열에 들어갈 데이터를 쓸일 형태로 가져와서 사용하게 됩니다. 2개의 범종 변수에 대한 빈도수를 구할 때 사용하게 됩니다. 판다 쓰 있는 크로스 탭의 3g 데이터로 지정 명과 3g 데이터로 최대 풍속 풍향 16 빵이 값을 가져와서 이렇게 표 형태로 크러스트 테이블을 만들었습니다. 실습을 통해 하나의 범주형 변수의 빈도수를 구해보도록 하겠습니다. 데이터 프레임 에서 하나의 변수만 가져와서 밸류 카운 추 를 통해 빈도수를 구해 보겠습니다. 범주형 변수에 빈도수를 구해보도록 하겠습니다. 일단 어떤 변수가 범주형 변수 인지를 먼저 알아보도록 할텐데요 n 유니크 기능을 사용하게 되면 은 데이터 프레임 전체에서 유니크한 값이 몇 개 엥 개가 있는지 를 구하게 됩니다. 그럼 이렇게 구한 값을 변수에 다 할당해 주고 재사용을 해보도록 할텐데요 이렇게 n 개의 유익한 값이 20개 빈도수를 값을 불리한 인덱싱 으로 구해서 다시 빈도수를 유니 끝값으로 강사 주게 되면 n 해당되는 값을 구하게 됩니다. 여기에서 구한 값을 보게 되면 지점 같은 경우에는 7개 빈도수를 최대 순간 풍속 풍향 신격 빵이 같은 경우에는 16개의 값을 가집니다. 그리고 최다 1사 시각 같은 경우에는 12개 값을 가지게 되는데요 여기에 있는 풍양 이나 일선 시각 같은 데이터는 수치 데이터로 되어 있지만 범주형 데이터에 가깝다고 볼 수 있을 것입니다. 그럼 최대 풍속 풍향 심령 빵이 값에 대해서 밸류 카운 측 값을 구해 보도록 할 텐데요 전체 데이터 프레임에서 되 가루를 하고 해당 컬럼 0을 작성해 주게 되며 는 3g의 형태로 해당 컬럼에 데이터만 가져오게 됩니다. 그리고 벨류 카운 치유를 실행을 해 주게 되는 이렇게 최대 풍속 풍향 16 빵 의 값에 대한 빈도수를 구하게 됩니다. 그러면 290개라는 값이 965 회 로 가장 빈도수가 높고 그다음에 342 170 200 방위에 값들이 빈도수가 높게 나타남을 알 수가 있고 160 같은 경우에는 105로 가장 낮은 빈도를 나타내고 있습니다. 그러면 여기에 있는 각 방위에 빈도수를 비율로 보고 싶다면 베이 유카 운즈 옵션에다가 노말 아이즈 툴을 사용해 주게 되면 되는데요 여기에서 노 말라 이제 투로 를 해주고 백을 고파 게 되면은 100분의술을 구해 볼 수가 있습니다. 그래서 이렇게 배 유카 운치 의 또 말라 g2를 적용해 주고 100을 곱해서 100분 이수를 구했는데요 290은 12% 팁 340은 10% 그리고 160은 1%인 것을 확인해 보실 수 있습니다. 1개의 범주형 변수에 대해서 빈도수를 갈 때 이렇게 배 유카 운 치유를 사용했는데요 그럼 두 개의 범주형 변수에 대해서 빈도 수를 구할 때는 크로스 탭을 사용하게 됩니다. 판다 3 2 크로스 탭을 사용할 때는 크 로 스 텝 안에 각각의 쓰리 실 데이터를 넣어 주게 되면 은 2개의 범주형 변수에 되게 빈도수를 구해 보실수가 있습니다. 16 빵에 값의 20 에 해당되는 값은 광주에서는 156회 대전에서는 27회 부산에서는 32회 서울에서는 7회에 빈도 수를 나타내고 있는 것을 확인해 보실 수 있습니다. 범주형 변수의 빈도 수를 구할 때는 카운트 플롯을 사용하게 됩니다. 쓰리 집값에 따라 백스 혹은 y 축에 지정한 변수에 대한 빈도수를 표현하게 됩니다. 그리고 휴 값에 따라 다른 범주형 변수를 비교할 수가 있습니다. 여기에서 효는 책상을 의미하게 됩니다. x 축의 최대 풍속 풍향 16 빵이 를 지정해 주게 되면 최대 풍속 풍향 16 빵이 에 대한 값에 빈도수를 y 축에 그려 주게 됩니다. 그리고 지점명 서울 부산에 에 따라서 막대에 색상을 9분 해서 그릴 수 있도록 쇼의 빈도수를 의 지정해준 옵션에 대한 그래프입니다. c 본의 박 플롯을 사용하면 범주형 과수 추운 변수를 함께 비교할 수 있습니다. 여기에서 y 축에는 수취 형 변수를 지정하며 기본적으로 평균값으로 계산이 됩니다. 검은색 막대는 신뢰 구간을 의미하며 이 때 옵션의 ci 는 넌 으로 신뢰 구간을 제거하고 표현할 수도 있습니다. 지점명 에 따른 평균 기원의 평균값을 그룹 빠이 빈도수 구한 값을 시각과 빈도수 표현한다면 c 본 에바 플롯을 통해서 y 축의 평균기온 외 평균값을 표현하도록 그릴 수가 있습니다. 세븐 의 빈도수 옷을 사용하면 상자 수염 그림을 그릴 수가 있습니다. 이상자 수영 그림은 요약 수치를 그래프로 표현하게 됩니다. 여기에서 요약 스치는 최소 빈도수 1 4분이 수 25%의 값이 4분이 수 중앙값 빈도수 이수 75% 엘카 최대가 이상치 를 나타내게 됩니다. 오른쪽 그래프를 보시게 되면 박셋 플롯을 통해 각 지점의 요약 수치를 표현했습니다. 각 수염의 빈도수 쓴 최소 깝권 최댓값을 그리고 박스에 값은 1 4분이 수 이사 분이 수 3 4분 이숙 값을 나타냅니다. 박스 중앙에 있는 선은 중앙값을 나타냅니다. 박스풀 5승 4분 예수를 표현하기에 적합한 데요 이에 반해 4분의 수 안에 있는 값을 자세히 표현하지 못한다는 단점도 있습니다. c 보네 바이올린 플롯을 보겠습니다. 바이올린 플롯은 박스 플롯의 단점을 보완해 주게 됩니다. 밀도 함수 그래프를 마주 보게 그려주고 내부의 박스 플롯을 함께 그릴 수가 있습니다. 화면 하단에 있는 그래프를 보게 되면 밀도 함수가 마주 보고 그려진 것을 확인해 보실 수가 있고 미드 함수 그래프 안에 박스 플롯이 그려진 것을 보실 수가 있습니다. 그리고 가운데에 하얀색 점이 있는데 이 하얀색 점은 중앙값을 의미하게 됩니다. 빈도수 바이올린 플롯으로 값에 분포를 그려보도록 하겠습니다. 범주형 변수에 대한 시각화를 해보도록 하겠습니다. 시각화를 할 때는 오늘 사용하도록 할 텐데요. c 본 에서는 범주형 변수의 빈도수를 세계 카운트 플롯을 사용합니다. 카운트 플롯을 쓰며 는 1개의 변수에 대한 빈도수를 시각화 할 수가 있습니다. 그래서 x 축 에다가 지점명 을 넣어주고 데이터에는 전체 데이터 프레임을 넣어 주고 시각화를 해보겠습니다. 그러면 이렇게 서울 인천 대전 대구 울산 광주 부산 에 대한 데이터에 개수에 대한 빈도수를 시각화 하게 되는데요. 각 지점마다 데이터의 수가 다가갔다 라는 것을 확인해 보실 수가 있습니다. 그럼 이번에는 지점명 에 따라서 서울 부산 만 가지고 와서 따로 데이터 프레임을 서브 s 만들어서 실습을 해보도록 할텐데요. 전체 지점을 보는 게 아니라 서울과 빈도수 따로 비교를 해보도록 하겠습니다. 여기에서는 판다 ca 제인 기능을 사용하게 되면 은 특정 값을 가지는 값만 가져올 수가 있는데요. 그래서 지장 명에서 이 죄인을 사용해서 서울과 부산 데이터만 서브 s 로 만들어서 df 에 서울의 부산이라는 변수에 넣어 주도록 했습니다. 그래서 해당 데이터를 df 서울의 부산이라는 변수에 담아 주었고요 이렇게 변수에 담긴 값을 데이터에 지정을 해주고 x 축에는 최대 풍속 풍향 16 빵이 빈도수 지정해주고 이 방에는 휴 값을 지정해서 빈도수 빈도수 따라서 다른 색상으로 표시가 되도록 그려보겠습니다. 그래프를 그려서 확인해 보게 되면은 지정 명이 서 우릴 때와 부산 일대 다른 빈도수 있고요. 사울과 부산의 최대 풍속 풍향 16강 이에 대한 빈도수가 없이 다르게 그려지고 있는 것을 확인해 보실 수가 있습니다. 빈도수 빈도수 에 해당되는 빈 도주가 놓구요. 부산 같은 경우에는 340 2배 230 메디안 빈도수가 서울보다 높은 것을 확인해 보실 수가 있습니다. 지점별로 평균 기온을 구해 보도록 할 텐데요. 전체 데이터 프레임에서 그룹 빈도수 빈도수 지정 명을 그룹화해주고 평균 기용 값만의 평균을 구하도록 해보겠습니다. 해당 빈도수 지점별 평균 기원을 구해 보게 되면 지점마다 평균 기온이 다다른 것을 확인해 보실 수가 있습니다. 그럼 이렇게 구한 지점별 평균 기온 값을 빈도수 그리고자 한다면 일곱 에서는 빈도수 옷을 사용하게 됩니다. sns 점 바 프로세서 데이터에는 df 빈도수 지정해주고요 x 축에는 지점명 y 축에는 평균기온을 지정하게 되면 은이바 플로 내부에서 평균을 구해서 출력을 하게 됩니다. 그래서 이 y 축에 있는 값을 평균 기온이 라고 지정해 주게 되면 은 이 내부에서 평균값을 자동으로 구하게 됩니다. 써 쉬프트 탭키를 눌러서 보시게 되면 된 도움말을 보실 수가 있는데요. 이 도움말을 보시면 sma 터 라는 옵션이 있는데 이 s m 의 옵션의 기본값이 민 평균인 것을 확인해 보실 수가 있습니다. 그래서 우리가 연상하고자 하는 값을 lc 메이터 에 지정해 주게 되면 그 연산 된 값으로 그리게 됩니다. 2 신뢰 구간은 데이터가 적을 때는 빈도수 많을 때는 구하는 데에 시간이 오래 걸리게 됩니다. 그래서 데이터가 많을 땐 이 신뢰 구간을 빼고 그리게 되면 n 그래프를 좀 더 빠르게 그리게 됩니다. 그럼 다음에서 2 신뢰 구간을 빼고 그래프를 그려 보도록 할 텐데요 신뢰 구간을 빼고 그린 옵션은 ci 는 넌 하고 표시를 해 주게 되면 은 이렇게 신뢰 구간을 제외하고 그려지게 됩니다. 그리고 위에서는 제가 변수에다가 따로 입 아플 옷을 담아 주어 썼는데요 변수에 담아서 그리게 되면 은 여기에 찍히는 보고가 없게 됩니다. 여기에서는 따로 변수에 지정해 주지 않고 밥 플롯을 그렸더니 밑에 로그가 찍혔는데요 1호 그가 티키 는 것을 방지하고 싶으시다면 쥐라는 변수에다가 넣어 주게 되면 은 이렇게 로그가 찍히지 않게됩니다. 이 변수는 저는 지라고 시정을 해줬지만 이제 사용하기 업혀 난 변수로 추정을 해 주셔도 상관이 없습니다.다음으로 박스 플롯을 그려보도록 하겠습니다. 박새 플롯은 기술 빈도수 보기 쉽게 그려주는 그래프 인데요 최 속과 최대가 빈도수 수 2 4분이 수 중앙과 3 4분 이수에 대한 값을 표현해 볼 수가 있습니다. 하지만 2박스 플롯의 단점은 2박스 안에 들어있는 값에 대한 분포를 알기 어렵다는 것인데요 그 단점을 보완한 것이 바로 바이올린 프로 쉽니다. 그러면 다음 3에서 바이올린 플롯을 그려 보도록 할 텐데요 박스 플로스 바이올린 5부 만 변경의 주게 되면 은 바이올린 플롯을 그리게 됩니다. 바이올린 플롯을 통해서 각 지점에 대한 데이터 평균 기온의 분포를 그려봤는데요. 바이올린 플롯 안에는 이렇게 박스풀 옷을 그리게 됩니다. 그리고 가운데에 하얀색 점들이 찍혀져 있는데요 이 하얀색 점들은 중앙값을 끈의 하게 됩니다. 그리고 2박스 플롯 가 내 일상 운이 수이 4분이 수삼 4분이 수에 대한 위치를 함께 확인해 보실 수가 있습니다. 자 그럼 오늘 배운 내용을 정리해 보도록 할까요 범주형 변수의 빈도 술과 할 때는 하나의 범종 변수 인지 혹은 2개의 범주형 변수 인지에 따라서 구하는 방법이 달라지게 됩니다. 하나의 범주형 변수에 대해서는 3g 의 형태로 데이터를 가져와서 배 u 카운티 유로 구하게 됩니다. 2개의 공정 변수에 대해서는 크로스 탭을 통해 구하게 되는데 크로스 태반의 3g 데이터를 2개를 각각 넣어 주게 되면 은 2개의 범죄한 변수에 대한 크로스 테이블을 구하게 됩니다. 범주형 변수의 시각화는 카운트 플롯을 통해 범주형 변수의 빈도수를 시각화해 볼 수 있습니다. 파 플롯을 통해 범 수영과 수취한 변수를 함께 비교해 볼 수 있습니다. 박스 플롯을 통해 요약 수치의 최댓값 최소값을 희숙 이상 7 그래프로 표현해 볼 수 있습니다. 바이올린 플롯을 통해 일도 함수 그래프를 봐주고 개 그릴 수가 있습니다. 이것으로 이번 시간 강의를 마치겠습니다. 수고하셨습니다.
11 데이터 분석을 알아보겠습니다. 데이타임 형식 이야기 파생 당수 만들기 시계열 데이터 시각화 순으로 알아보겠습니다. 데이타임 형식을 이 해보겠습니다. 날짜 난 시간이 문자나 숫자 형태로 되어 있다면 변환 작업이 번거롭고 거 나 어렵습니다. 그런데 데이트 타임 형태로 되어 있다면 연 월 일 등의 데이터를 추출하기 해줬습니다. 연 월 예 * 추세 나 흐름을 파악하기 위한 데이터로 사용할 예정입니다. 예를 들어 데이터 셋 안에 있는 일시라는 데이터를 가져와 보게 되면 데이터 타입이 오브젝트 형태로 표현이 되게 됩니다. 이 데이터의 타입을 데이타임 형식으로 변경에서 변환을 하기 쉽도록 만들어 줄 예정입니다. 그럼 실습을 통해 문자 형태의 날짜를 티탄 형식으로 반환 해 보겠습니다. 투 언더바 데이타임 이라는 기능을 사용해서 일시 데이터를 데이타임 형식으로 변경해 주겠습니다. 12월 데이터 분석을 위해서는 날짜 데이터가 데이트 타임 형식으로 되어 있어야지만 그 안에서 연 월 일 요 의 같은 날짜 데이터를 추출해 볼 수가 있는데요 그러면 전체 데이터 프레임이 있는 2시라는 데이터는 어떤 형식인지 한번 보도록 하겠습니다. 일단 헤드를 통해 미리 보기를 하게 되면은 예시라는 컬럼은 오후 젝 트 로 문자열 데이터라는 것을 확인해 보실 수 있습니다. 그럼 일시 데이터를 12월 데이터로 변환하기 위해서는 데이트 타임 형식으로 변경을 해줘야 할 텐데요. 판다 스 에서는 투 언더바 데이트 타임을 사용해서 데이트 타임 형식으로 변경을 해 줄 수가 있습니다. 1 씨를 투 언더바 데이트 타임으로 데이트 타임 형식으로 변경을 해주고 다시 df 일시라는 컬럼에 넣어주어야지만 변경된 형식이 반영이 되게 됩니다. 해당 셀을 실행을 해서 데이타임 형식으로 변환을 해 주었구요. 그리고 일시 데이터를 가져와서 다시 미리보기를 해보도록 하겠습니다. 여기 d 타입이 데이트 타임 64 형태로 변경 이 된 것을 확인해 보실 수 있습니다. 5 later 파생 당수는 특정 조건의 따라 기존 변수에서 새로운 변수를 생성하거나 여러 개의 변숫값을 계산해서 새로 변수를 생성하게 됩니다. 날짜에서 연 월 일시라는 초 되어 추출하거나 기온과 습도 등을 활용해서 불쾌지수를 생성할 수도 있습니다. 실습을 통해 연 월 일 파생 당수를 만들어보겠습니다. 일시라는 dt 점 이어 dt 점 머스 dt 점 데이 를 사용해서 연 월 일을 추출해 보겠습니다. dt 없겠어 를 사용하게 되면 연 월 일 뿐만 아니라 요일이 라든지 그해 에서 몇 번째 달인 지 몇 번째 주 인지 같은 다양한 시계열 데이터를 추출해 보실수가 있습니다. 그럼 해당 3 를 실행해서 연 월 일 이라는 파생된 수를 생성을 할 텐데요. 이번에는 일시 컬럼의 아니라 새로운 컬럼을 지정을 해서 넣어 주게 되는 우아한 월이라는 컬럼은 이 데이터 프레임이 없었지만 이렇게 컬러 명을 지정해 주게 되면 새로운 컬러 을 생성하게 됩니다. 그리고 이렇게 파생 변수가 잘 생성이 되었는지 헤드를 통해 미리 보기를 해 보게 되면은 일시 를 통해서 연 월 일이 잘 추출이 된 것을 확인해 보실 수가 있습니다. 성 그래프는 시간의 흐름에 따라 값에 변화를 표현하게 됩니다. 선에 기울게 터라 값에 높거나 주말 표현하게 됩니다. 주식이나 부동산의 가격 1 짝을 외출해 판매량 재 고 량 등을 표현하게 적합합니다. 여기에 있는 그래프를 보시면 날짜에 흐름에 따라 일자별 평균 기운이 달라지는 것을 확인해 보실 수가 있습니다. 실습을 통해 성 그래프를 직접 그려보겠습니다. 씹어 에 있는 라인 플롯을 통해 일자별 평균 기온을 그려보겠습니다. 12월 데이터 시각화를 할 때는 주로 성 그래프 인 라인 플롯을 사용하게 되는데요. 2라인 플롯을 사용하게 되면 은 선에 기울기에 따라서 값에 높고 낮음을 확인해 보실 수가 있습니다. 그러면 라인 플롯을 사용할 때는 데이터는 df 로 전체 데이터 프레임을 넣어 주고요. x 축에는 1씩 y 중에는 평균 기온을 넣고 이 ci 는 넌 으로 신뢰구간은 그리는 데에 속도가 오래 걸리기 때문에 제외하고 그려보도록 하겠습니다. 그래서 이렇게 일자별 평균 기온을 그 옆 왔는데요 2017년 1월부터 2020년 1월까지의 일자별 평균 기온을 시각화 해봤습니다. 겨울철에는 이렇게 기온이 낮고 그다음에 여름철에는 기온이 다시 높아졌다 가 겨울이 되면 다시 기온이 낮아졌다가 하는 개 절 성을 확인해보실 수가 있습니다. 이번에는 0 평균 기운을 그려 볼 텐데요 라인 플롯이 아니라 포인트 플롯으로 그려보도록 하겠습니다. p 플롯으로 그리게 되면 은 각각의 포인트의 점을 찍어서 그리게 되는데 라인 플롯과 거의 비슷한 모양을 하고 있지만 중간중간 점을 찍어 준다 라는 점이 다른데요 한번 그려서 확인해보도록 하겠습니다. 2018년의 연평균 기운이 가장 낮았고 2017년에는 2018년보단 의 약간 더 연평균 기온이 높아 따라 는 것을 확인해 보실 수가 있고 2019년에는 2018년에 비해서 연평균 기온이 많이 높았다 라는 것을 확인해 보실 수가 있습니다. 그리고 월별 평균 기온도 똑같이 그려 보도록 하겠습니다. 똑같이 포인트 플러스 사용하는데 x 축의 값만 원로 변경을 해주었습니다. 그리고 셀을 시행을 해서 값을 확인해 보도록 하겠습니다. 1월부터 12월까지의 월별 평균 기온을 그려 보게 되면은 겨울철에는 기온이 낮고 그다음에 여름철에 점점 기운이 높아 줬다가 다시 가을이 되면서 기온이 낮아지는 것을 확인해 보실 수가 있습니다. 그리고 월별 지점별 평균 기온을 그려 보도록 할 텐데요. 이번에는 똑같이 포인트 프로스 그리는데 휴 값을 사용해서 지점별로 평균 기원을 그려보도록 하겠습니다. 휴 값을 사용하게 되면 은 지점명 에 따라서 다른 색상으로 이렇게 선을 표현을 해 주게 되는데요 여기 부산이 분홍색으로 되어 있는데 겨울철에는 부산이 가장 기운이 높은 것을 확인해 보실 수가 있고요 그다음에 파랑색이 겨울철의 기온이 가장 낮은데 서울이 겨울철에 기온이 가장 낮다는 것을 확인해 보실 수가 있습니다. 슈의 지점명 을 이렇게 주정을 해서 범주형 값에 따라서 다른 색상으로 선을 그리도록 표현을 했는데요. 이때 선이 너무 많아서 겹쳐서 잘 보이지 않는다면 지점을 두세 개 정도로 서브 셋을 가져와서 만들고 그 서버 쎄쎄쎄 데이터에 넣어서 그리게 되면 은 선에 개수를 줄여서 그래프를 좀 더 보기 좋게 만들 수도 있습니다. 그럼 오늘 배운 내용을 정리해 보도록 할까요. 12월 데이터를 이해하기 위해서는 데이터 형식을 먼저 이해해야 합니다. 날짜나 시간이 문자 숫자 형태일 되는 변환 작업이 번거롭고 나 어렵습니다. 데이트 타임 형식으로 되어 있으면 연 월 일 등의 데이터를 추출하기 좋습니다. 파생 간수 만들기에는 특정 조건에 따라 기존의 변수 해서 새로운 변수를 생성하는 것을 의미합니다. 여러 개의 변숫값을 계산해서 새로운 변수를 생성하게 됩니다. 12월 데이터의 시각화 는 시간의 흐름에 따라 값에 변화를 표현하게 됩니다. 서의 기울기에 따라 값에 높고 나중을 표현하게 됩니다. 이것으로 이번 시간 강의를 마치겠습니다. 수고하셨습니다.
딥러닝을 통안 평균 기온을 예측해 보겠습니다. 딥러닝과 텐서 플로 알고리즘 텐서 플로 를 통한 평균 기온 예측 예측된 값에 정합도 측정하기 순서로 알아보겠습니다. 딥러닝과 텐서 플록 알고리즘을 알아보겠습니다. 딥러닝은 인간의 뇌 신경 회로를 모방한 신경회로망을 다층적으로 구성한 것입니다. 컴퓨터가 다양한 데이터를 통해 마치 사람처럼 생각하고 배울 수 있도록 하는 기술입니다. 딘 만행은 인공지능과 머신 모닝의 속하는 기술이기도 합니다. 텐서 풀로 는 머신 러닝 모델을 개발하고 학습시키는데 도움이 되는 핵심 오픈 소스가 이 펄이 입니다. 2015년에 오픈 소스로 공개된 구글 브레인 팀의 두 번째의 머신 러닝 시스템 입니다. 텐서 프로는 머신 러닝을 위한 엔드 투 엔드 오픈 소스 플랫폼 이고요. 이점 때 버전으로 넘어오면서 케라스 api 를 사용하고 있습니다. 실습을 통해 텐 써 프로 툴을 설치해 보도록 하겠습니다. 텐서 플로 공식 문서를 참고 해서 텐서 플루트를 설치해 보도록 하겠습니다. pip 인스톨 업그레이드 pi 키와 pipe 인스톨 텐서 프로를 통해서 텐서 플로우를 설치해 보겠습니다. 우선 pipe 스톤 업그레이드 pip 를 먼저 해 주도록 하겠습니다. 주피터 노트북에서 설치를 하실 때는 느낌표 하시고 pipe 인스톨 업그레이드 pip 를 실행해 주시면 됩니다. 4 업그레이드 pip 가 실행이 되었고요. 다음으로 텐서 프로 를 설치해 보도록 하겠습니다. 느낌 필요하고 0 영어를 입력을 해 주시게 되면 n10 써 플로우가 설치되게 됩니다. 탄소 폴로가 성공적으로 설치가 되었는데요. 그럼 텐서 플로우를 불러 보도록 하겠습니다. 임포트 텐서 플로 ag tf 로 텐서 플로우를 불러 왔는데요. 그러면 텐서 플로우가 제대로 로드되었는지 확인해보기 위해서는 텐서 플로우의 문서를 확인해 보는 방법이 있을 것 같습니다. tf 하고 물음표 아고 실행을 해 주게 되면 된 텐서 프로 의 공식 문서를 출력하게 됩니다. 이렇게 화면 하단 2 텐서 플로우의 공식 문서를 로드 하는 것을 확인해 보실 수가 있습니다. 텐서 플로우가 성공적으로 잘 설치가 된 것으로 보여집니다. 텐서 플로우를 통한 평균 기운을 예측해 보도록 할텐데요. 뒷면 인 레이어를 구성을 해서 예측을 해 보겠습니다. 기본적인 로닌 리어는 입력 층리 층 출력 층으로 구성이 됩니다. 이때 다층적으로 여러 개 추가한 멀티 다층적으로 로 안될 수도 있습니다. 주변인 실행 과정을 알아보겠습니다. 먼저 2am 과 테스트 데이터 셋을 준비하고요. 다음으로 레이어를 구성합니다. 그리고 구성된 다층적으로 통해 모델을 만들고 모델을 통해 학습을 하게 됩니다. 이때 모델 젊게 다층적으로 추행 데이터 셋과 레이블 데이터 셋을 넣어 주게 되면 학습이 됩니다. 다음으로 학습된 데이터를 바탕으로 예측을 하게 됩니다. 모델 점프 ldt 를 통해 테스트 데이터 셋을 넣어주고 예측을 합니다. 그리고 예측이 되었다면 잘 예측이 되었는지 평가를 위해 모델 점 이베이 웨이트를 통해 모델을 평가하게 됩니다. 텐 써 프로를 통해 평균 기운은 예측하는 뒷면 인 모델을 만들어 보도록 하겠습니다. 모델 정 핏을 해서 만들어진 레이어를 통해 데이터를 넣어주고 학습을 하게 됩니다. 그리고 프레디 틀을 통해서 예측을 하게 됩니다. 진원 행을 통해 평균 기온을 예측해 보도록 할 텐데요. 평등 기온을 예측하기 위해서는 일단 학습과 예측 데이터 셋으로 나누어 주어야 합니다. 이때 정답이 되는 데이터도 따로 만들어 주어야 하는데요 저희는 여기에서 평균 기온을 예측할 거기 때문에 정답 값을 평균기온으로 따로 변수에 다가 할당을 해 주도록 하겠습니다. 변수 이름은 레이블 내 이므로 생성을 해주었는데요. 레이블은 정답을 의미하게 됩니다. 해당 3 를 실행을 해서 레이블 네임을 만들어 주도록 하고요. 그다음에 결 축 책값을 임의의 값으로 채우도록 하겠습니다. 여기에서 결 찍찍 값을 0으로 임의로 채우는 이유는 짐 넌 잉 내부에서 연상이 이루어지게 되는데 만약에 결제액 치가 있다면 오류가 발생하기 때문에 0으로 채워 쓰도록 하겠습니다. 이때 좀 더 의미 있는 값으로 채워 준다면 예측의 성능을 높여 볼 수가 있을 텐데요. 여기에 있는 결 측 7일은 수집할 필요가 없어서 수집하지 않은 값이라 가정을 하고 영이라고 채우도록 하겠습니다. 그리고 데이터 스 2매 할당을 해 주도록 하겠습니다. 결집 캅스 0으로 임의로 채워서 df 라는 데이터 프레임의 할당을 해주도록 했고요. 그리고 딤 난닝 내부에서는 수치 데이터 만을 사용해서 연산을 하게 됩니다. 계속 범주형 데이터가 있다면 오류가 발생하기 때문에 수치 데이터만 학습시키는데로 따로 만들어 주어야 하는데요 이때 df 점 디스크 라이프 하게 되면은 기본적으로 습지 데이터에 대한 기술 통계 값을 구하기 때문에 여기에서 이 길을 통해 캇 구한 값을 학습시키는데 dsc 라는 변수에 넣어 주고 여기에 있는 컬럼 깐마늘 가져오게 되며 는 수치 0 데이터에 대한 변수 까만 가져오게 됩니다. 그래서 이 값을 피쳐 네임으로 만들어 주도록 하겠습니다. 그래서 이 피쳐 내 임을 보게 되면은 지점 평균 기운 강수 시간 강수량 습도 라든지 해양 기압 다음에 적설 야 지중 온도 등이 있습니다. 그러면 이제 이렇게 피쳐 네임과 레이블 네임을 만들어 주었으면 만들어준 피쳐 대인과 레이블 네임을 통해서 피쳐 와 레이블로 데이터를 나누어 주도록 하겠습니다. 그래서 삐 천안대 문자의 긱스 라는 변수에 담아 주고 레이블은 소 문자와 이에 담아 주도록 하겠습니다. 써 피쳐 가 되는 값은 행렬 형태의 데이터로 담아줄 것이구요. 레이블 값은 1차원 배열 값으로 넣어 주도록 하겠습니다. 이때 뒤 fp 1000m 수를 가지고 오고 그다음에 여기에서 레이블 게임을 조합시켜 주게 되면 은 삐져 까만 갖는 편수 x 가 생성이 되게 됩니다. 그리고 레이블 내 입만 가져와서 y 값을 넣어 죽게 되면 은 이때도 레이블 값만 변수로 생성되게 됩니다. 그러면은 셀을 실행을 해서 보게 되면은 x값에 대한 크기는 7장 665 개의 행과 59개 컬럼을 가지고 7665 께 값을 가지는 1천 어레이 형태로 되어 있다는 것을 확인해 보실 수가 있습니다. 그럼 이렇게 만들어준 x와 y 변수를 사용해서 트레이닝 테스트 세트로 나눠주고 레이블 값 역시 퇴행 테스트로 나누어 주도록 할 텐데요. 사이킥 너네 있는 모델 셀렉션 기능을 사용해서 투링 테스트 스플릿 슬 불러와서 데이터 셋을 나누어 주도록 하겠습니다. 여기에서 x와 y 변수를 넣어주고요. 그다음에 테스트 사이즈는 0.3상으로 33% 가 테스트 데이터 셀 수 로 구성이 되도록 하겠습니다. 그리고 랜덤 스테이트 를 42로 지정을 했는데요 이 랜덤 스테이트 를 지정하는 이유는 항상 데이터 셋을 나눌 때 같은 값으로 나누어 달라 라는 의미로 랜덤 스테이트 를 고정을 시켰습니다. 그래서 x 언더바 트레인 y 언더바 테스트 y 언더바 트인 y 언더바 테스트로 옥새 를 실행시켜서 데이터 스에 나누어 주도록 하겠습니다. 이렇게 데이터 세트 준비가 되었다면 이제 텐서 프로 라이브러리를 모두 해오도록 하겠습니다. 텐서 플로우를 tf 라는 별칭으로 로드를 하고요. 그 다음에 텐서 플로우 에서 테라스를 로드 하겠습니다. 그리고 텐서 플로 테라스의 레이어 도 임포트 해 오도록 하겠습니다. 그리고 태서 프로 의 버전도 함께 확인을 해보도록 하겠습니다. 지금 실습 에서는 2점 3.1 버전의 텐서 플로우를 사용하고 있습니다. 이제 텐서 플로우의 레이어를 구성해서 평균기온은 예측을 해 주도록 할 텐데요. 이때 텔 4% 의 시퀀셜 을 사용해서 레이어 를 구성해 주게 됩니다. 맨 위에 있는 레이어는 입력 메이어 가장 아래에 있는 레이어는 출력 베이어 가 되게 됩니다. 입력 레이어 같은 경우에는 액티베이션 뻥 차는 스위 씨로 구성을 해 주고요. 그다음에 중간에 있는 헤딩 4 이어도 액티베이션 펑션 을 쉬 c 로 구성해 주도록 하겠습니다. 그리고 여기에 있는 노드 에게 쓰는 64개 128개 로 지정을 하겠습니다. 그리고 주암 아웃을 0.2 로 지정해서 20% 에 노드는 드랍 9시 키는 것으로 하겠습니다. 그리고 출력 메이어는 1개의 노드로 방언을 받도록 하겠습니다. 그리고 옵티마이저는 rms 프라 블 사용하고요. 그다음에 로 쓰 포션은 ms2 옵티마이저는 위에서 rms 프라 브 로 지정을 해 주었고요. 그다음에 매 투 이끈 평가항목 인데요. m&a 와 ms 2 로 지정을 해 주도록 했습니다. 그리고 모델 자 원피스 를 통해서 학습을 하도록 하겠습니다. 4 모델 점 핏을 통해서 이렇게 5번의 에 폭을 돌면서 학습이 끝났고요. 학습이 끝났다면 이제 예측을 해 보도록 하겠습니다. 모델 점 프로젝트를 통해서 x 언더바 테스트로 예측할 데이터 셋을 넣어주고 예측을 해 보겠습니다. y 언더바 프레드의 예측된 평균 기운 값들이 보입니다. 모델로 값을 예측했다 면 예측 뺑 값에 정확도를 측정해 볼 수 있을 텐데요. 회 의 정확도 측정 방법을 알아보겠습니다. 회계 에서는 실제 값과 예측값의 차이를 9 해보게 되는데요. m&a 는 메인 엡솔루트 에러로 평균 절대 5천 입니다. ms 이는 민수 케어로 평균 제곱 5차 입니다. 아래 msn 은 루트 및 스퀘어 에러로 평균 제곱근 5차 입니다. m&a 는 메인 엑셀로 테러로 평균 절대 5차 입니다. 실제 값과 예측값을 차이에 대한 절대 까 평균을 구하게 됩니다. ms 이는 민 스퀘어로 평균 최고 5차 입니다. 실제 값과 예측 값에 차이에 대한 제곱의 평균입니다. 아래 ms 있는 루트 맨 시켜 에러로 평균 제곱근 오차로 ms2 평균 최고 오차에 대한 재고 끈을 구하게 됩니다. 실습을 통해 rns 이 값을 통해 정확도를 측정해 보겠습니다. 모델 점 입에 웨이트를 통해 ma 각과 ms 이 값을 구해서 rms 값을 구해 보겠습니다. 짐 넌 행 모델을 만들어 예측을 했다면 그 모델이 얼마나 좋은 성능을 내는지 평가를 하고 측정을 해 볼 수가 있을 것입니다. 여기에서는 모델 점 이베이 웨이트를 통해서 테스트 데이터 색과 테스트 데이터 셋의 정답을 넣어주고 이베이 웨이트를 해보도록 하겠습니다. 그리고 버 보 스 2로 목을 을 함께 출력을 하도록 해보겠습니다. 스코어를 측정을 해 봤는데요 m&a 는 미인 엡솔루트 에러로 평균 절대 오차를 의미합니다. 저희가 예측한 평균 기온이 4 쩡 4168 이라는 평균 절대 오차 값을 가진다는 것을 보실 수 있습니다. 그리고 ms 이 값은 평균 제곱 오차로 30.5 영치 고라는 값을 가지고있다는 것을 확인해 보실 수 있습니다. 그리고 이 값을 스코 라는 변수에 담아 주었는데요. 스코 라는 변수에는 이렇게 리스트 값으로 로스가 까 m&a 가 ms 이 값을 가지게 됩니다. 그러면은 스코 오라는 변수에서 1번 인덱스 값을 가져오게 되면 평균 절대 오차 값을 가져오게 됩니다. ma 값은 4.41 6으로 평균 기온이 절대 5 차 값의 평균이 4.41 욕 이라는 것을 확인해 보실 수 있구요. 다음으로 민 스퀘어 인 평균 제곱 오차는 5차 값의 제곱의 대한 평균이 30정 오양 788 로 시작하는 것을 확인해 볼 수 있습니다. 그럼 평균 제곱근 오차는 ms 이 값을 의 스퀘어 루트를 통해서 제곱근을 취해 주게 되는데요. 셀을 실행을 해서 rms 이 값을 구해 보도록 하겠습니다. rms 이 값을 구했더니 5.5 233 으로 시작하는 값을 구한 것을 확인해 보실 수 있습니다. 그래서 ms 2갑 같은 경우에는 에러 s 케어 를 취해 주기 때문에 에러 값에 대한 스케일이 조금 커지게 되는데요. 여기에서 루트를 취해 주게 되면 앤 이렇게 커진 스케일을 다시 ma 평균 절대 오차와 약간 비스타 하게 되었다는 것을 확인해 보실 수 있습니다. 여기까지 우리가 예측한 모델의 성능을 측정해 보았는데요. 여기에서 2호 차값은 작을수록 모델이 잘 예측을 했다 라고 볼 수가 있을 것입니다. 그래서 저희가 실습 에서 반 된 집 러닝 데 이어 를 변경을 해서 이 모델이 조금 더 좋은 성능을 낼 수 있도록 개선을 해 보시면 좋을 것 같습니다. 자 그럼 오늘 배운 내용을 정리해 보도록 할까요. 김 넌 윙은 인간의 뇌 신경 회로를 모방한 신경회로망 외 다층적 으로 구성합니다. 컴퓨터가 다양한 데이터를 통해 마치 사람처럼 생각하고 배울 수 있도록 하는 기술입니다. 텐서 풀로 는 ml 모델을 개발하고 학습 시키는데 도움이 되는 핵심 오픈 소스 라이브러리 입니다. 2015년에 오픈소스로 공개된 구글 브레인 팀의 두 번째 머신 넌 이 시스템입니다. 회계의 정확도 측정 방법으로는 ma ms2 rms 이와 같은 방법이 있는데요 m&a 는 민 엡솔루트 에러로 평균 절대 오차를 구합니다. ms 이는 민 스퀘어로 로 평균 제곱 오차를 구합니다. 아래 ms 이는 루트 men's 케어 에러로 평균 제구 끙 오차를 구하게 됩니다. 이것으로 강의를 모두 마치도록 하겠습니다. 수고많으셨습니다.
안녕하세요 Python을 활용한 이미지 분석 강의를 할 강사 박조은입니다. 저는 오늘코드 유튜브 채널을 운영하고 있기도 하고 온오프라인으로 데이터 사이언스 강의를 진행하고 있기도 합니다. 그리고 인프런, 네이버 커넥트 재단, 서울대 평생교육원 등에서 강의를 하고 있으며 다양한 도메인의 기업 데이터를 분석하고 있습니다. 딥러닝 개요를 알아보겠습니다. 인공신경망과 딥러닝, 신경망의 종류, 딥러닝의 응용, 이미지 분류와 CNN 순서로 알아보겠습니다. 인공신경망과 딥러닝에 대해 알아보겠습니다. 인공신경망은 인간의 뇌신경회로를 모방한 신경회로망을 다층적으로 구성하여 컴퓨터가 다양한 데이터를 통해 마치 사람처럼 생각하고 배울 수 있도록 하는 기술입니다. 딥러닝은 인공신경망의 일종으로 복잡한 구조를 가지게 됩니다. 기존의 머신러닝으로 다루기 어려웠던 이미지, 음성, 텍스트 분야에서 뛰어난 성능을 발휘합니다. 이미지를 보면 뉴런이 있는데요 우리의 뇌는 이런 수많은 뉴런으로 연결이 되어 있습니다. 오른쪽 도식화된 이미지를 보면 뉴런은 여러 신호를 입력받아서 신호의 강도가 특정 임계치를 넘으면 다른 뉴런으로 호를 전달하는 과정을 거치며 신호를 처리하게 됩니다. 인공신경망은 이러한 뇌의 신호 처리 과정을 모방해서 만들어졌습니다. 인공신경망에서 뉴런과 같은 역할을 하는 기본 단위를 퍼셉트론이라고 합니다. 인공신경망은 시냅스의 결합세기를 변화시켜 문제 해결 능력을 가지는 모델입니다. 심층신경망은 여러 개의 층을 가진 인공신경망을 의미하게 됩니다. 이미지를 보게 되면 이렇게 심층신경망의 경우 여러 개의 층이 복잡하게 얽혀있는 모습을 보실 수 있습니다. 심층신경망의 변화 인공신경망의 계열을 알아보도록 하겠습니다. 인공신경망은 Artificial Neural Network로 줄여서 ANN이라고 부르기도 하는데요. 인공신경망은 사람의 신경망의 원리와 구조를 모방하여 만든 기계학습 알고리즘입니다. 작동 방식은 퍼셉트롬 모델과 동일하게 특정 임계치를 넘어야 신경이 전달되는 것을 활성화 함수를 이용하여 가중치를 업데이트시켜 각 노드의 최적의 가중치를 찾는 방식입니다. 구성은 입력층, 은닉층, 출력층으로 구성되게 되는데요 입력층에서는 다수의 입력 데이터를 받으며 은닉층은 입력층과 출력층 사이에 위치하게 됩니다. 그리고 출력층에서는 데이터의 출력을 담당하게 됩니다. 인공신경망은 몇 가지 한계에 부딪히게 되는데요 학습 과정에서 파라메터의 최적값을 찾기 어려운 문제가 있습니다. 그리고 로칼 미니마 문제가 있는데요 에러를 최소화시키는 최적값을 찾을 때 학습 도중 로칼 미니마를 최적값으로 인식하여 더 이상 학습을 진행하지 않는 문제가 있습니다. 왼쪽 그림에서 보는 것처럼 최소값이 하나라면 쉽게 찾겠지만 오른쪽 그림처럼 경사가 여러 개 존재한다면 지역 최소값에 갇혀 글로벌 최소값에 도달하지 못하는 문제가 바로 이 로컬 미니마 문제입니다. 또 학습 데이터에 따른 오버피팅 문제도 있고요 다음으로 활성화 함수로 주로 사용되는 시그모이드는 기울기 값에 의해 가중치가 결정이 되게 되는데 오차 역전파를 통해 가중치를 최적화하는 과정에서 입력층에 가까워질수록 가중치가 잘 학습되지 않는 문제입니다. 문제는 underfitting의 원인이 되기도 합니다. 이러한 인공신경망에 몇 가지 문제점에 대한 개선 방안이 있는데요 시그모이드 함수로 값이 0에 수렴하는 오류는 relu 함수로 개선을 하게 되었고요 과적한 문제는 dropout 기법 등으로 개선하게 되었습니다. 느린 학습 시간은 그래픽 카드의 발전으로 개선하게 되었습니다. 심층신경망인 딥뉴럴 네트워크는 줄여서 DNN으로 부르기도 하는데요 인공신경망인 ANN 아티피셜 뉴럴 네트워크의 기법이 여러 문제가 해결이 되면서 모델 내 은닉층을 많이 늘려서 학습의 결과를 향상시키는 방법이 등장하게 됩니다. 심층신경망은 은닉층을 2개 이상 지닌 학습 방법으로 많은 데이터와 반복학습, 사전학습과 오류 역전파 기법을 통해 널리 이용되고 있습니다. 심층신경망인 DNN을 응용한 알고리즘으로 합성곡신경망인 CNN, 순환신경망인 RNN 등이 있습니다. 합성곡신경망인 컨볼루셔널 뉴럴 네트워크인 CNN은 사람의 시신경 구조를 모방한 구조이며 구성 및 활용은 컨볼루션 레이어와 풀링 레이어를 복합적으로 구성하여 정보 추 출, 이미지 인식, 자연어 처리 등에 활용되고 있습니다. 기존의 방식이 데이터에서 지식을 추출해 학습을 이루어지는 방법이었다면 합성곡 신경망은 데이터를 피처로 추출하여 이 피처들의 패턴을 파악하는 구조입니다. 순환신경망인 Recurrent Neural Network인 RNN은 반복적이고 순차적인 데이터 학습에 특화된 인공신경망의 한 종류입니다. 인공신경망을 구성하는 유닛 사이의 연결이 Directed Cycle을 구성하는 신경망입니다. 순환신경망인 RNN의 특징은 내부에 순환구조가 들어 있으며 순환구조를 이용하여 과거 학습의 웨이트를 통해 현재 학습에 반영하게 됩니다. 기존의 지속적이고 반복적이며 순차적인 데이터 학습의 한계를 해결하였으며 현재의 학습과 과거의 학습의 연결을 가능하게 하고 시간에 종속되게 됩니다. 음성 웨이브폼을 파악할 때 사용하기도 하며 텍스트 문장 앞뒤의 성분을 파악할 때 사용하기도 합니다. 순환신경망인 RNN의 단점으로는 처음 시작한 웨이트 값이 점차 학습할수록 상쇄되는 문제가 있습니다. 이 상세 문제를 보완한 것이 LSTM 알고리즘입니다. 딥러닝의 응용에 대해 알아보겠습니다. 주로 영상인식의 이미지 분류에 사용이 되는 합성곱 신경망으로 손글씨라든지 패션사진, 꽃사진, 상품이미지, 의료영상 등을 분류해 볼 수가 있습니다. 합성곱 신경망인 CNN은 이미지에서 객체, 얼굴, 장면 등을 인식하기 위해 패턴을 찾는데 특히 유용합니다. 합성곱 신경망은 데이터에서 직접 학습을 하여 패턴을 사용하여 이미지를 분류하고 특징을 수동으로 추출할 필요가 없습니다. 그래서 자율주행 자동차라든지 얼굴인식 애플리케이션과 같이 객체인식과 컴퓨터 비전이 필요한 분야에서 합성곱 신경망을 사용하여 이미지 분류를 하게 됩니다. 다음으로 텍스트 분야에서는 자연어처리를 활용해서 자동번역이라든지 감정분석, 정보검색 등을 하게 되는데요 단어 표현을 제기신경망, 리커시브 신경망, 뉴럴 네트워크의 입력계층으로 이용하게 되면 해당 신경망으로 생성된 사전을 통해 문장과 구를 분석하도록 학습시킬 수가 있습니다. 단어 기반으로 구성된 리커시브 오토인코더는 문장 간의 유사도 판단이라든지 의역탐지 등을 하도록 훈련이 가능하며 이러한 심층 인공신경망 구조들은 자동번역, 감정분석, 정보검색 등을 비롯한 다양한 자연어처럼 처리 연구에서 첨단 기술로 사용이 되고 있습니다. 음성 인식에도 딥러닝이 응용이 되고 있습니다. 음성 변조라든지 음성 생성, 감정 TTS, 사투리 TTS 등에 활용이 되고 있으며 주요 상업 음성 인식 시스템 등의 딥러닝 기법을 사용해서 스카이프 번역기라든지 구글 나우, 애플 시리 등에 활용이 되고 있습니다. 딥러닝 기법을 응용하고자 할 때 예측하고자 하는 문제에 따라 알고리즘을 선택할 수 있습니다. 보통 스냅샷성 데이터인 이미지, 영상에서는 합성곡신경망인 CNN이 좋은 성능을 냅니다. 그리고 시퀀스성 데이터인 음성, 언어, 시계열과 같은 데이터에서는 RNN, LSTM과 같은 알고리즘이 좋은 성능을 내는 편입니다 이 과정에서는 합성고흑신경망인 CNN을 통해 이미지 분류를 해볼 것입니다. 앞으로 우리는 딥러닝에 대한 기본적인 내용을 익히고 이미지 데이터로 날씨를 분류해 볼 예정입니다. 파일의 경로를 이해하고 이미지 데이터를 로드하는 방법 학습 세트와 예측 세트를 분리하고 딥러닝 모델을 만드는 방법, 그 다음에 딥러닝 모델로 학습하고 예측하고 평가를 해볼 예정입니다. 합성곱 신경망은 뉴럴렛은 서로가 서로에게 연결이 되어 있어 맞춰야 할 웨이트, 가중치가 많아지게 됩니다. 이미지는 인근 픽셀 끼리 연관이 있게 되는데요 가까운 것끼리 묶어서 계산하게 되면 의미도 있고 계산량도 줄어들게 됩니다. 합성곱은 특정 패턴이 있는 필터를 통과하며 확인하게 되는데요 간단한 필터들을 쌓아서 복잡한 필터를 만들어 나가게 됩니다. 뉴럴레일시 알아서 필터를 찾아주게 됩니다. 합성곱 신경망은 이렇게 자동 생성 필터를 생성을 해서 학습을 하게 됩니다. 앞으로 합성곱 신경망을 통해 날씨 데이터를 분류해 볼 예정입니다. 그러면 지금까지 배웠었던 내용을 간단하게 정리해 보도록 하겠습니다. 딥러닝은 인공신경망 Artificial Neural Network로 ANN으로 줄여서 사용하기도 하는데요 인공신경망과 동의어로 사용될 때가 많습니다. 심층신경망 딥뉴럴 네트워크는 DNN으로 줄여서 부르기도 하는데요 딥러닝으로 부르기도 합니다. 심층신경망은 여러 개의 층을 가진 인공신경망을 의미하게 됩니다. 신경망의 종류에는 인공신경망인 Artificial Neural Network 줄여서 ANN으로 부르기도 하고요 심층신경망은 Deep Neural Network 줄여서 DNN으로 부르기도 합니다. 다음으로 합성곡신경망은 Convolution Neural Network로 줄여서 CNN으로 부르기도 합니다. 그리고 순환신경망은 Recurrent Neural Network로 줄여서 RNN으로 부르기도 합니다. 딥러닝을 여러 분야에 응용해 볼 수가 있을 텐데요 합성고속신경망인 CNN은 스냅샷성 데이터인 이미지나 영상에 주로 활용이 되고 RNN LSTM과 같은 알고리즘은 시퀀스성 데이터인 음성, 언어, 시계열의 좋은 성능을 내는 편입니다. 이번 시간을 모두 마치셨습니다. 수고하셨습니다.
이번 수업에서는 심층 신경망 모델 구현에 대해서 알아보겠습니다. 텐서플로우와 케라스 활성화 함수 모델 만들기 순서로 알아보겠습니다. 심층신경망 모델 구현을 위해 텐서플로우와 케라스를 알아보도록 하겠습니다. 저희는 실습에서 주로 케라스를 사용하도록 할 건데요 케라스는 파이썬으로 작성된 오픈소스 신경망 라이브러리입니다. 케라스는 구글의 엔지니어인 프랑스와 슐레이 주도하에 만들어졌으며 2017년 텐서플로우의 코어 라이브러리에 케라스를 지원하기로 결정하게 되었습니다. 케라스는 높은 수준의 직관적인 추상화 집합을 표현함으로써 신경망을 구성하기 쉽게 만들어 줍니다. 케라스 시퀀셜 api를 통해 모델을 정의하고 학습을 해보도록 할 텐데요 시퀀셜 모델은 각 레이어에 정확히 하나의 입력센서와 출력 텐서가 있는 일반 레이어 스택에 적합합니다. 모델을 컴파일하여 손실 함수 옵티마이저 정의하고 이렇게 레이어를 정의하고 컴파일까지 하였다면 모델을 학습하고 평가를 해 볼 수가 있습니다. 실습을 통해 텐서플로우 내부에 내장되어 있는 케라스를 불러와 보도록 하겠습니다. 실습을 위해 텐서플로우와 케라스를 불러와 보도록 하겠습니다. 텐서플로우는 임포트 텐서플로우 AS TF로 TF라는 별칭으로 불러오고요 텐서플로우에서 케라스만 따로 불러오기도 하겠습니다. 텐서플로우 2.0 버전부터는 케라스 api를 공식 api로 채택하고 있기 때문에 대부분 텐서플로우 내에 케라스 api를 통해 실습을 해볼 예정입니다. 활성화 함수와 오차 역전파법을 알아보겠습니다. 활성화 함수는 입력을 받아 출력값이 활성화가 될지 비활성화가 될지를 결정하는데 사용되는 함수입니다. 여기 이미지에서 보시는 액티베이션 펑션이 바로 활성화 함수를 의미하는데요 활성 함수는 어떤 것을 사용하냐에 따라 그 출력값이 달라지기 때문에 적절한 활성화 함수를 사용하는 것이 중요합니다. 이미지에서 보는 것처럼 특정 임기 값을 초과하는지 여부에 따라 출력값이 달라지게 됩니다. 신경망은 구조가 복잡해서 손실 함수의 기울기를 계산하고 경사강법으로 가중치와 편향을 수정하는 과정의 연산양이 많기 때문에이 연산 과정을 수학적으로 개선한 방법이 바로 600 프로파게이션 5차 역전파법입니다. 5차 역전파법은 기법을 의미하게 됩니다. 5차 역전파는 출력층에서 입력증 방향으로 뒤에서부터 오차를 추적하여 경사하강법을 이용해 가중치와 편향을 수정하는 수학적 방법인데요. 5차 역전파를 통해 각 층의 가중치와 평양이 오차에 얼마나 영향을 주는지 고려해서 값을 수정할 수 있습니다. 역전파와 반대로 입력 데이터를 타깃으로 추론하는 과정은 입력층에서 출력층 방향으로 앞에서부터 개선하기 때문에 순전파라고 부릅니다. 5차 역전파 과정에서 발생하는 기울기 소실 문제인 그라디언트 베니스팅 문제를 알아보도록 하겠습니다. 5차 역전파를 통해 가중치를 최적화하는 과정에서 입력층에 가까워질수록 가중치 잘 학습되지 않는 문제가 발생하게 되는데요 5차 역전파 계산 과정에서 층마다 활성화 함수의 기울기 값을 곱하게 되면 0에 가까워지게 됩니다. 기울기가 여기에 가까우면 기울기의 크기에 따라 학습률을 곱한 결과가 0에 가까워져서 제대로 학습이 되지 않는 문제가 발생하게 됩니다. 앞에서 설명했었던 것처럼 신경망의 깊이가 깊어지면서 역전파 과정에서 기울기 소실 문제가 발생이 되는 것을 보실 수가 있습니다. 이를 해결하기 위해서 은닉층의 활성 함수로 시그모이드 함수 대신 렐루 함수를 사용하게 됩니다. 앞에서 기울기 소실 문제를 봤었는데요이를 해결하기 위해 은닉층의 활성화 함수로 시그몽이드 대신 렐로 함수를 사용한다라고 설명했었는데요 함수를 사용하게 되면 은닉층을 지날 때마다 작은 값을 미분하면 입력층에 가까워졌을 때는 기울기가 점점 0에 가까워지게 됩니다. 그래서 렐로 함수를 사용하게 되면은 값이 0이 넘을 때는 미분 값이 항상 1이 되기 때문에 많은 애니층이 있더라도 기울기가 소실되지 않고 잘 전달이 되게 됩니다. 이러한 활성화 함수는 앞에서 설명했었던 시그모이 다양한 활성화 함수가 있는데요 시그모이드 함수는 0과 1 사이의 값만 가질 수 있는 비선형 함수입니다. 보통 시그모이드 함수는 이진분류 출력을 가지는 출력층에서만 주로 사용되며 은닉층에서는 사용되지 않습니다. 하이퍼볼릭 탄젠트 함수인 탄 H 같은 경우에는 -1에서 1 사이의 값을 가질 수 있도록 하는 비선형 함수입니다. 수학적으로 0에서 1 사이의 값을 갖는 시그모이드 함수를 평행 이동한 것과 동일한데요 데이터의 중심을 영어로 위치시키는 효과가 있기 때문에 다음 층의 학습이 더 잘 이루어지게 됩니다. 보통 시그모이드 함수보다 2탄 H인 하이퍼홀릭 탄젠트 함수가 조금 더 나은 성능을 발휘합니다. 하지만 앞에서 다뤘던 것처럼 시그모이드 펑션이나 탄 H TY젠트 함수는 단점이 있습니다. 바로 X가 매우 크거나 매우 작을 때 미분값인 기울기 값이 거의 0이 된다는 것입니다. 그래서 그라디언트 베니싱 현상인 기울기 소실 문제가 발생하게 되는데요 이를 해결하기 위해서 렐로 함수를 사용하게 됩니다. 렐로 함수는 X가 양수이면 미분값이 1이고 X가 음수이면 미분값이 0인 함수입니다. 렐루암스는 층이 늘어날 때마다 값이 사라지는 현상인 기울기 소실 문제가 해결되기 때문에 가장 기본적인 활성화 함수로 사용됩니다. 그런데 렐루아 함수의 단점은 X가 음수일 때 미분 값이 0이라는 것인데요 그래서 일을 약간 변형해서 만든 함수가 리키 렐루입니다. X가 음수일 때 미분값이 0이 되는 렐로 함수 대신 약간의 기울기를 갖게 되는 함수입니다. 그 외에도 맥스아웃이나 엘루와 같은 활성화 함수도 있습니다. 그럼 실습을 통해서 텐서플로우의 내장된 활성화 함수를 찾아보겠습니다. 내장된 활성 함수 목록을 출력해 보도록 하겠습니다. 텐서플로우를 TF라는 별칭으로 불러왔다면 TF의 케라스의 액티베이션스로 텐서플로우의 내장된 함수의 목록을 출력해 볼 수가 있습니다. L로 익스포넨셜 그 다음에 리니어라든지 렐루셀로 그 다음에 시그머니티 소프트맥스와 같은 다양한 함수의 목록을 확인해 볼 수가 있는데요. 그러면 저희가 수업 시간에서 다뤘던 시그모이드와 렐루를 직접 한번 시각화 해보도록 할 텐데요 일단 그렇게 하기 위해서 마이너스 10에서 10까지 0.1씩 증가시켜서 값을 생성을 해보도록 하겠습니다. 시그머니드 함수에 위에서 생성한 값을 직접 통과시켜 보도록 하겠습니다. 시그모이드 함수를 통과시킨 값 이렇게 보면은 눈에 잘 들어오지 않기 때문에 직접 시각화해서 확인해 보도록 할 텐데요. 시각화해서 확인해 보게 되면은 0을 기준으로 보게 되면은 - 값에 가까울수록 값이 함수를 통과시킨 값이 0에 가까워지고 그 다음에 양쪽 기울기 값이 점점 이렇게 0에 가까워지는 것을 확인해 볼 수가 있습니다. 그래서 이렇게 - 값에서 값이 0으로 수렴하는 문제 때문에 오차 역전파 과정에서 기울기 소실 문제가 발생하기 때문에 렐루 함수를 저희는 활성화 함수로 사용할 예정입니다. 그러면 렐로 함수를 가져와서 활성화 함수를 통과시키게 되면 이렇게 0 이하의 값에서는 다 0이 나오게 됩니다. 그리고 0 이상의 값에서는 자기 자신을 출력을 하게 됩니다. 렐루 함수를 통과시킨 값을 시각화 해보게 되면은 이렇게 0 이하의 값에서는 0으로 수렴하고 0 이상의 값에서는 자기 자신을 출력하는 것을 확인해 볼 수가 있습니다. 모델 만들기를 알아보겠습니다. 모델을 만들 때는 신경망에 층을 쌓아서 만들게 되는데요 여기에 있는 예시는 간단한 심층 신경망 모델로 입력층 은닉층 출력층으로 구성이 되어 있습니다. 신경망의 기본 구성요소는 바로 2층 레이어입니다. 층은 입력된 데이터에서 표현을 추출하게 되고 딥러닝은 간단한 층을 연결해서 구성이 되게 됩니다. 이 구조에서는 두 가지를 결정을 해야 합니다. 모델에서 얼마나 많은 층을 사용할지 각 층에서 얼마나 많은 유닛을 사용할 것인지입니다. 그럼 케라스의 시퀀셜 api를 통해서 층과 유닛을 직접 한번 구성해 보도록 하겠습니다. 그럼 직접 시퀀셜 모델을 통한 네트워크를 구성해 보도록 하겠습니다. 케라스에 있는 시퀀셜 모델을 사용을 해서 입력층 은닉층 출력층을 직접 구성을 해 보도록 할 텐데요 네트워크에 첫 번째 층인이 플래툰 층 같은 경우에는 28 곱하기 28 사이즈의 이미지를 입력을 받아 1차원 배열로 변환하는 역할을 하게 됩니다. 그래서 이미지에 있는 픽셀의 행을 펼쳐서 일렬로 늘리게 되고요 2층에는 가중치가 없고 데이터를 변환하기만 합니다. 그리고 다음인 된 지층에서는 가중치를 훈련하는 동안 학습하게 되는데요 128기의 유닛을 갖고 활성화 함수로 렐루를 사용하도록 구성을 했습니다. 다음으로 출력층에서는 10개의 출력을 갖는고 소프트맥스 함수를 사용을 하도록 했는데요 이 출력층은 10개의 확률을 반환을 하고 반환된 값에 전체 합이 1이 되게 하는 추격층입니다. 더 이미지가 10개라면 10개의 클래스 중 하나에 소칼 확률을 출력하게 됩니다. 여기에서 출력층을 조금 더 자세히 알아보게 되면 분류의 예측값이 여러 개일 때 N개일 때는 활성화 함수로 소프트맥스를 사용하게 됩니다. N개의 확률을 반환하고 반환된 값의 전체 합은 1이 되게 됩니다. 각 노드의 현재 이미지가 N개 클래스 중 하나에 속할 확률을 출력을 하게 되고요. 분류의 예측값이 둘 중 하나일 때는 활성화 함수로 시그모이들을 사용하게 됩니다. 그리고 둘 중 하나를 예측할 때는 한 개의 출력값을 출력하게 됩니다. 확률을 받아 임계값을 기준으로 나누어서 분류를 하게 됩니다. 회계일 때는 1이라는 숫자를 넣어 주었는데요. 이때는 특정 값을 출력하도록 합니다. 그럼 이렇게 네트워크를 구성했다면 네트워크 모델을 요약해 볼 수가 있을 텐데요. 우리가 모델이라는 변수에 네트워크 층을 구성한 시퀀셜 모델을이 모델이라는 변수에다가 넣어 주었다면 모델 점 써머리를 통해서이 시퀀셜 레이어를 이렇게 요약해서 볼 수가 있습니다. 그래서 입력층에서는 28 곱하기 28 사이즈의 이미지를 일렬로 늘여서 입력을 받기 때문에 28 곱하기 28 결과인 784가 입력으로 들어오게 되고 다음 덴주 레이어에서는 유닛의 개수를 128개로 설정을 했습니다. 그리고 출력 중에서는 10개 중에 하나의 이미지를 분류를 하는 출력층을 구성을 했습니다. 그러면 실습을 통해 시퀀셜 모델 레이어를 직접 구성해 보도록 하겠습니다. 텐서플로우의 케라스 내부에 있는 시퀀셜 레이어를 통해서 모델을 만들어 보도록 하겠습니다. 입력층 은닉층 출력 으로 구성이 되어 있는 시퀀셜 레이어를 만들어 보도록 할 텐데요. 입력층에는 28 * 28 사이즈의 이미지를 넣어 준다라고 가정하고 플래툰을 사용을 해서 이미지를 1차원 벡터 형태로 만들어서 넣어 주도록 하겠습니다. 그리고 다음 층에는 텐서플로우의 케라스의 레이어의 댄질을 사용해서 덴젤 레이어를 만들어 주도록 할 텐데요. 노드가 128개이고 그리고 액티베이션 멜로를 넣어서 활성화 함수를 렐루로 사용하도록 설정하도록 하겠습니다. 그리고 덴젤 레이어에서는 출력값을 10개로 설정을 하고 액티베이션 펑션은 소프트맥스로 지정하도록 하겠습니다. 이때 출력값을 10개로 지정하게 되면은 10개의 멀티 클래스를 분류하는 분류기가 되게 되고 만약에 다섯 개를 분류한다면 5라는 숫자를 넣어주면 될 것입니다. 분류할 개수를 넣어주고 소프트맥스로 예측을 하게 되면은 출력값이 비율로 반환이 되게 됩니다. 그래서 모델을 만들어 주었고 모델을 실행하게 되면은 이렇게 모델 서머리를 통해서 모델을 요약해 볼 수가 있습니다. 플래툰 레이어는 28 곱하기 28의 행렬을 하나로 늘려서 표현하기 때문에 28 곱하기 28의 결과인 784가 그 다음에 히든레이어인 댄스 레이어에서는 노드의 개수가 128개로 그 다음에 출력층에서는 출력이 10개인 출력층으로 생성이 된 것을 보실 수 있습니다. 이번 시간에 학습한 내용을 정리해 보도록 하겠습니다. 텐서플로우와 케라스는 2017년 구글의 텐서플로우 팀은 텐서플로우의 코어 라이브러리에 케라스를 지원하기로 결정하였습니다. 케라스는 더 높은 수준의 더 직관적인 추상화 집합을 표현함으로써 백엔드 과학 컴퓨팅 라이브러리임에도 불구하고 신경망을 구성하기 쉽게 만들어 줍니다. 활성화 함수는 5차 역전파를 통해 가중치를 최적화하는 과정에서 입력층에 가까워질수록 가중치가 잘 학습되지 않는 기울기 소식 문제가 발생하게 됩니다. 활성화 함수를 시그모이드로 사용할 때 지날 때마다 가중치가 잘 학습되지 않는 문제가 발생하게 됩니다. 기울기가 점점 영에 가까워지는 문제가 있기 때문에 렐루라는 활성화 함수를 사용하게 되면은 0을 넘을 때는 미분 값이 항상 1이 되기 때문에 많은 은닉층이 있어도 기울기가 소실되지 않고 잘 전달이 되게 됩니다. 모델 만들기에서는 시퀀셜 모델을 통해 입력층 은닉층 출력층을 구성해 보았는데요. 신경망은 층을 쌓아서 만들게 됩니다. 케라스의 시퀀셜 api를 통해 층과 유닛을 구성해 보았으며 모델 점 써머리를 통해 네트워크의 모델을 요약해 보았습니다. 이번 시간도 수고 많으셨습니다 감사합니다.
이번 수업에서는 심층 신경망 훈련에 대해서 알아보겠습니다. 옵티마이저 모델 컴파일 드롭아웃 순서로 알아보겠습니다. 이번 수업에서는 심층 신경망 모델을 컴파일 할 때 사용하는 옵티마이저에 대해 알아보겠습니다. 딥러닝 에서 옵티마이저 최적화 알고리즘을 의미합니다. 학습 속도를 빠르고 안정적이게 하는 것을 의미합니다. 우리가 산을 내려가는 것을 학습 한다라고 가정할 때 어떤 방향과 속도로 가야 할지 학습하는 과정과 비슷합니다. 이렇게 산을 내려가는 과정을 종종 학습하는 과정에 비유하기도 하는데요. 옵티마이저에서 사용하는 알고리즘을 시각화 하게 되면 여기에 보이는 이미지 처럼 산을 내려가는 과정 처럼 그려지게 됩니다. 여기에서 주로 사용되는 알고리즘이 바로 경사 하강법입니다. 경사 하강 법은 뉴럴넷이 가중치 파라미터를 최적화 하는 방법으로 학습과 손실 함수의 기울기를 통해 가중치를 업데이트 하게 됩니다. 오차가 작은 방향으로 학습을 진행하며 손실 함수의 현 가중치에서 기울기를 구해서 오차를 줄이는 방향으로 학습하게 됩니다. 인공 신경망의 한계는 학습 과정에서 파라미터의 최저 값을 찾기 어려운 문제가 있습니다. 여기 그림을 보게 되면은 가장 낮은 글로벌 미니멈 값이 있고 로컬 미니멈 값이 있습니다. 우리가 산을 내려온다 라고 가정을 할 때 로컬 미니멈에 빠지게 되면은 여기가 최저점 인줄 알고 글로벌 미니마를 찾지 못하는 문제가 발생하게 되는데요. 이런 문제를 로컬 미니마 문제라고 하게 되는데요. 그 경사 하강법의 한계는 글로벌 미니멈 을 찾지 못하고 이렇게 로컬 미니멈 에 빠지게 되는 문제가 있습니다. 그래서 학습 과정에서 파라미터의 최저 값을 찾기 어려운 문제가 있는데 앞에 그림에서 봤었던 것처럼 이런 로컬 미니멀 문제가 있습니다. 그래서 에러를 최소화 시키는 최적 값을 찾을 때 학습 도중 로컬 미니마를 최적 값으로 인식하여 더 이상 학습을 진행하지 않는 문제를 개선하기 위해서경사 하강법을 비롯한 최적화 함수를 통해서 모델을 개선 하게 됩니다. 옵티마이저에서 가중치 업데이트 값을 구하는 방법은 에러를 낮추는 방향과 현 지점의 기울기 그리고 학습율을 곱하게 되면은 가중치 업데이트 값을 구할 수가 있습니다. 경사 하강 법에서 기울기를 알아보도록 하겠습니다. 이미지에서 보시는 것처럼 이렇게 그래프가 있다면 이 그래프의 기울기를 구할 수가 있을텐데요. 이 그래프의 기울기가 영이 되는 지점이 비용이 최소한 지점으로 미분의 결과로 얻어지는 기울기가 영이 되게 됩니다. 이 기울기가 영인 지점을 기준으로 왼쪽과 오른쪽의 기울기가 서로 다른 방향이다라는 것을 알 수가 있는데요. 미분의 결과가 영이 될 때까지 반복적으로 미분을 실행 하면서 직선의 기울기를 수정하게 되면은 비용이 최소가 되는 지점을 찾을 수 있게 됩니다. 학습률은 보폭이라고 볼 수가 있을텐데요. 우리가 산길을 따라 내려간다 라고 했을 때 보폭을 얼마나 크게 하느냐 작게 하느냐에 따라서 지나쳐 갈 수도 있고 아니면 너무 오래 걸릴 수도 있을 텐데요. 여기에서 보면은 파란색 선을 보게 되면은 보폭이 너무 작아 오래 해내는 것을 볼 수가 있고 초록색 선인 하이 러닝 레이트 같은 경우에는 보폭이 너무 커서 우리가 가야 하는 길을 지나칠 수가 있습니다. 그리고 노란색 선인 베리 하이 러닝이 너무 커서 엉뚱한 길로 가게 돼서 오차가 발생하는 것을 볼 수가 있습니다. 그리고 붉은 색 선인 굿 러닝 레이트는 적당한 보폭으로 오차가 점점 작게 수렴하는 것을 볼 수 있습니다. 옵티마이저인 경사 하강법을 개선한 다양한 방법이 있습니다. 이 방법은 모델을 컴파일 할 때 옵티마이저로 사용하게 되는데요. 경사 하강법인 그라디언트 디센트 는 최저값을 찾아가는 것은 정확하지만 너무 느리다는 단점이 있습니다. 그리고 확률적 경사 하강법은 데이터 샘플을 무작위로 추출하여 일부만 경사 하강법에 사용해 속도를 개선 하게 되었는데요. 빠르지만 최적의 값을 찾아가는 방향이 너무 뒤죽박죽이라는 문제가 있습니다. 그래서 한 스텝 나아가기 위한 사이즈를 정하기가 어렵습니다. 자 방향과 스텝 사이즈를 고려하는 새로운 옵티마이저들이등장하게 되는데요. 방향성을 고려한 옵티마이저로는 모멘텀 하고 NAG 가 있고요. 스텝 사이즈를 고려하는 옵티마이저로는 Adagrad RMSProp AdaDelta 가 있으며 방향성과 스텝 사이즈를 모두 고려하는 옵티마이저로는 Adam과 NAdam이 있습니다. 그럼 몇 가지 옵티마이저를 조금 더 알아보도록 하겠습니다. 방향성을 고려하는 모멘텀은 손실 함수의 기울기가 영인 여러 지점 중 한 지점에서 멈추지 않고 계속 최소 값을 찾도록 관성의 개념을 추가한 옵티마이저입니다. 스텝 사이즈를 고려하는 RMSProp은 손실 함수의 기울기에 따라서 학습을 조절하는 옵티마이저 입니다. Adam은 RMS prop과 모멘텀의 기능 두 가지의 기능을 결합한 것으로 손실 함수의 기울기에 따라 학습을 조절하면서 관성을 이용해 지역 최소 값에 갇히지 않고 전체 최소 값을 찾게 됩니다. 그럼 실습을 통해 텐서플로에 내장된 옵티마이저를 확인해 보도록 하겠습니다. 이번 실습에서는 텐서플로우에 내장된 옵티마이저의 종류를 알아보도록 하겠습니다. 일단 텐서플로우를 TF 로 불러 왔다면 TF 점 캐라스에 옵티마이저 하게 되면은 사용할 수 있는 옵티마이저의 목록이 보이게 됩니다. AdaDelta Adagra Adam 엑스와 같은 다양한 옵티마이저 목록을 확인해 볼 수 있습니다. 저희는 여기에 있는 다양한 옵티마이저 목록 중에서 대체적으로 좋은 성능을 내는 Adam을 사용할 건데요. Adam은 RMS Prop 모멘텀의 기능을 결합한 옵티마이저 입니다. 그래서 손실 함수의 기울기에 따라서 학습을 조정 하면서 관성을 이용해 지역 최소 값을 갖추지 않고 전체 최소 값을 찾게 되는데요. 여기에서 이제 러닝 레이트 라든지 다양한 옵션을 설정해서 사용해 보실 수 있습니다. 모델을 훈련 하기 전에 필요한 몇 가지 설정이 모델 컴파일 단계에서 추가 되게 되는데요. 이전 수업에서 배웠었던 옵티마이저 라든지 지표 라든지 아니면은 손실 함수와 같은 항목을 이 컴파일 단계에서 지정 하게 됩니다. 옵티마이저은 이전 수업에서 다뤘던 것처럼 데이터와 손실 함수를 바탕으로 모델의 업데이트 방법을 결정하게 되는데 그라디언드 디세트 스톡 캐스틱 그라 디 언 디 센트 모멘텀 RM prop Adam과 같은 방법을 지정할 수가 있습니다. 그리고 측정 지표로는 훈련 단계와 테스트 단계를 모니터링 하기 위해 사용하게 되는데요. 분류 일 때는 보통 어큐러씨 정확도를 사용하게 되고 회귀일 때는 평균 절대 오차인 MAE 이라든지 MSE 에 따라 적절한 평가 지표를 사용하게 됩니다. 손실 함수는 훈련하는 동안 모델의 오차를 측정하게 되는데요. 모델의 학습이 올바른 방향으로 향하도록 함수를 최소화해야 합니다. 분류 일 때의 손실 함수는 바이너리일 때와 멀티 클래스 일때에 따라서 달라지게 되는데요. 바이너리는 예측할 값의 종류가 둘 중 하나 true 나 false 일때를 의미하게 되는데 바이너리 크로스 엔트로피를 사용하고 예측할 값의 종류가 두 가지 이상인 멀티 클래스 에서는 categorical crossentropy와 sparse categorical crossentropy를 사용하게 되는데 categorical crossentropy는 예측 해야 되는 값이 one-hot 형태의 클라스 일 때 categorical crossentropy를 사용하며 crossentropy는 우리가 예측 해야 되는 정답값이 영 일 이 삼 사와 같은 숫자 형태일 때 sparse categorical crossentropy를 사용하게 됩니다. 회귀일 때는 평균 제곱 오차를 의미하는 MSE 나 평균 절대 오차를 의미하는 MAE 를 사용하게 됩니다. 실습을 통해 직접 만든 모델을 컴파일 해보도록 하겠습니다. 모델 컴파일을 해보도록 하겠습니다. 이전 실습 에서 저희는 Sequential 레이어를 구성 했었는데요. 입력 층과 음미 층 출력층을 갖는 간단한 모델을 만들었다면 이 모델을 컴파일에서 사용을 할 텐데요. 모델을 컴파일 할 때는 여러 가지 옵션이 들어가게 되는데 여기에서 최적화 함수로 Adam을 사용하고 그 다음에 손실 함수로는 Spars Categorical crossentropy를 사용하게 된다면 만약에 정답 값이 영 일 이 삼 사와 같은 형태일 때 이렇게 손실 함수를 지정해 주게 됩니다. 그 다음에 매트릭에는 측정 지표가 들어가게 되는데 우리가 분류냐 회귀냐에 따라서 적절한 평가 지표를 사용하게 되는데요. 저희는 날씨 이미지를 분류해 볼 예정이기 때문에 분류해서 많이 사용이 되는 어큐러시라는 정확도 기법을 사용해서 모델을 평가해 볼 예정입니다. 드롭아웃을 이해하기 위해서는 과소 적합과 과적합을 이해하고 있어야 하는데요. 과소 적합은 언더피팅 으로 학습할 데이터가 너무 적거나 오차 역 전파 과정에서 시그마 드 와 같은 활성화 함수의 특성에 따라 데이터가 소실이 되어 제대로 학습이 되지 않는 현상을 의미하게 됩니다. 과적합은 오버 피팅 으로 훈련 세트 에서는 좋은 성능을 되지만 실제 예측 세트에서는 좋은 성능을 내지 못하는 것을 의미하게 됩니다. 학습을 할 때 적절하게 학습이 되어야 훈련 세트와 예측 세트에서 모두 좋은 성공 될 수가 있습니다. 과적합은 훈련 세트를 너무 자세하게 학습해서 예측 세트가 들어왔을 때 제대로 예측을 하지 못하여 좋은 성능을 내지 못하는 것을 의미한다 라고 바로 앞에서 이야기 했었는데요 이를 개선하기 위해 사용되는 것이 바로 드롭 아웃입니다. 모델이 특정 정보에 의존하지 않도록 사용하며 과적합 방지를 위해 사용 되게 됩니다. 모델을 학습 시킬 때 지정된 비율 만큼의 노드를 무작위로 누락을 시키게 됩니다. 드롭아웃을 적용하게 되면은 무작위로 일부분을 가려서 학습 시키게 되면 딥러닝 모델이 특정 정보에 의존하지 않고 일반적인 특징을 도출해 판단을 내리도록 학습 됩니다. 드롭아웃층은 모델을 학습 시킬 때 매번 지정된 비율만큼 노드를 무작위로 누락 시켜 값을 영으로 만들게 되는데요. 예를 들어 이렇게 네 개의 노드가 있다 라고 가정 할 때 오십 퍼센트의 비율로 노드를 누락 시키는 드롭아웃층을 적용하게 되면은 두 개의 노드 만 사용해서 결과를 추론 하게 됩니다. 그럼 저희가 구성 했었던 Sequential 레이어에 드롭아웃층을 추가해 보도록 하겠습니다. 실습을 통해 만들었던 Sequential 레이어의 드롭아웃을 추가해 보겠습니다. 은닉 층인 dense 레이어 바로 아래 이렇게 드롭아웃 추가 하게 되면은 이십 퍼센트는 임의로 제외하고 사용하겠다라는 의미가 됩니다. 실행을 하고 모델 summary까지 보도록 하겠습니다. 입력 층 은닉 층 그 다음에 드롭아웃층 출력층으로 모델이 구성이 된 것을 확인해 보실 수 있습니다. 지금까지 배웠었던 내용을 정리해 보도록 할 텐데요. 모델을 컴파일 할 때 사용하는 최적화 함수 인 옵티마이저는 학습 속도 방향 스텝 사이즈를 통해 학습을 최적화 하게 됩니다. 방향성을 고려한 옵티마이저로는 모멘텀 NAG 가 있으며 스텝 사이즈를 고려한 옵티마이저로는 Adagrad RMSProp AdaDelta와 같은 옵티마이저가 있습니다. 그리고 방향성과 스탭 사이즈를 모두 고려한 옵티마이저로는 Adam NAdam이 있습니다. 이런 옵티마이저는 모델을 컴파일 할 때 정의하게 되는데요. 모델 컴파일 할 때는 이런 옵티마이저 외에도 손실 함수 평가지표를 함께 설정을 할 수가 있습니다. 그리고 드롭아웃은 모델이 특정 정보에 의존하지 않도록 사용이 되며 과적합 방지를 위해 사용됩니다. 모델을 학습 시킬 때 지정된 비율 만큼의 노드를 무작위로 누락시켜서 학습을 하는 방법입니다. 이번 수업도 수고 많으셨습니다 감사합니다.
이번 수업에서는 이미지 데이터의 이해를 알아보겠습니다. 파일 경로와 목록, RGB 색상, 이미지 처리 도구, 순서로 알아보겠습니다. 지금까지 배웠었던 내용을 바탕으로 저희는 실제 이미지를 불러와서 이미지를 분류해 보도록 할 텐데요. 이미지를 불러오기 위해서는 파일 경로를 이해하고 있어야 합니다. 파일의 경로에는 절대 경로와 상대 경로가 있습니다. 우선 절대 경로는 어떠한 웹페이지나 파일이 가진 고유한 경로를 의미하게 되는데 최상위 디렉토리가 포함된 경로를 의미하게 됩니다. 그래서 웹사이트라면 특정 웹사이트의 주소 혹은 특정 파일 경로 아니면 특정 파일 디렉토리를 의미하게 됩니다. 여기에 있는 예시를 보게 되면 최상위 디렉토리가 모두 포함되어 있습니다. 상대 경로는 현재 위치한 곳을 기준으로 하는 경로입니다. 슬래시를 해주게 되면 루트 경로를 의미하게 되고 ./를 하게 되면 현재 위치 ../ 하게 되면 현재 위치의 상위 폴더 그 다음에 ../ ../ 를 하게 되면 두 단계 위에 상위 폴더를 의미하게 됩니다. 이미지 파일 목록을 볼 때는 파이썬에 있는 OS 기능을 사용해서 import OS로 OS를 불러온 다음에 OS Walk를 통해 특정 폴더에 있는 파일을 볼 수가 있습니다. 현재 경로, 현재 경로의 하위 경로, 파일 목록을 탐색할 수가 있는데요. 저희가 분류해 볼 날씨 이미지들을 불러오는 예제를 직접 실습해 볼 예정입니다. 여기에서는 images라는 폴더를 상대 경로로 불러왔습니다. 이미지 파일 목록을 볼 때는 OS.work로 불러올 수도 있지만 glob로 파일 목록을 탐색할 수도 있습니다. glob는 패턴, 유닉스셀이 사용하는 규칙을 사용하여 파일을 검색하는 모듈입니다. 현재 디렉터리와 하위 디렉터리의 모든 텍스트 파일을 찾아서 출력을 하게 됩니다. 여기에서도 현재 경로에 있는 이미지 폴더에 jpg 로 끝나는 확장자만 가져와서 출력을 해보는 예제입니다. 그러면 실습을 통해서 이미지 폴더의 파일을 탐색해 보도록 할 텐데요. 저희가 분류해 볼 날씨 이미지의 하위 폴더에 있는 파일 목록을 가져와 보도록 하겠습니다. 파일 경로와 목록에 대해 실습을 해보도록 하겠습니다. 여기에서는 구글 콜라보레이토리를 통해 실습을 진행을 하고 있는데요. 내 구글 드라이브와 마운트를 해주게 되면 내 구글 드라이브에 있는 이미지 파일을 불러올 수가 있습니다. 이렇게 드라이브 마운트를 해주고 그 다음에 마이 드라이브에 저는 weather-images라는 폴더에 날씨 이미지를 올려 두었습니다 이 폴더를 매번 지정하기 번거롭기 때문에 image-path라는 변수로 지정해서 사용을 하도록 하겠습니다. OS.walk를 통해서 우리가 이미지 폴더에 있는 파일의 폴더라든지 아니면 하위 디렉토리에 있는 파일 목록들을 불러올 수가 있을 텐데요. import OS로 OS를 불러오고 oswalk로 불러온 거를 dirpath, dirnames, filenames 라는 변수로 받아서 출력해 보도록 하겠습니다. 이렇게 출력해 보게 되면 폴더명은 sunrise, shine, cloudy, rainy, foggy, alien-test 라는 폴더가 있는 것을 확인해 보실 수 있습니다. 저희는 여기에 있는 각각의 폴더에 있는 이미지들을 학습을 해서 예측을 해 볼 예정입니다. 이번에는 glob를 통해서 이미지 파일을 불러와 보도록 하겠습니다. glob는 Unix shell이 사용하는 규칙을 사용하여 파일을 검색하는 모듈로 현재 디렉토리와 하위 디렉토리의 모든 파일을 찾아서 출력하게 됩니다. images 폴더에 하위 경로의 파일 목록을 출력해 볼 텐데요. 이번에는 jpg라는 확장자를 가지고 있는 파일을 출력해 보도록 하겠습니다. 이렇게 jpg 확장자를 가지고 있는 모든 파일을 출력을 하도록 했는데요. 만약 확장자를 png로 변경한다면 png 확장자를 가진 파일만 로드를 해오게 됩니다. 그리고 이 파일들을 이렇게 image files라는 리스트 안에 담아 주게 되면 재사용이 가능합니다. png를 jpg로 바꿔주게 되면 jpg 확장자로 끝나는 모든 파일을 읽어 오게 되고요. 그리고 이 파일을 하나씩 읽어서 image files 라는 리스트에 넣어 주었습니다. 그리고 이미지 파일에 있는 첫 번째 파일을 읽어 오게 되면 이렇게 파일 이름을 읽어왔는데요. 이렇게 읽어온 파일을 저희가 직접 이미지로 로드해서 실습을 해볼 예정입니다. 저희는 날씨 이미지를 불러와서 실습을 해보도록 할 텐데요. 그 날씨 이미지를 불러오게 되면 세 가지 채널로 구성이 된 것을 확인해 볼 수 있을 텐데요. 그 세 가지 채널은 RGB 채널을 의미하게 됩니다. RGB 색 모형은 빛의 삼원색을 이용하여 색을 표현하는 방식으로 빨강, 초록, 파랑 세 종류의 광원을 이용하여 색을 섞을수록 밝아지는 가산 혼합 방식을 사용하고 있습니다. 오른쪽 이미지에서 보이는 RGB 큐브 모델과 같이 하나의 색은 삼원색을 기준선으로 하는 3차원 직교 좌표계의 한 점으로 나타낼 수가 있습니다. 이렇게 이미지를 불러오게 되면 레드, 그린, 블루 3개의 채널로 구성된 배열로 만들어져 있으며 이 3개의 채널을 합쳐서 이렇게 여러 가지 색을 표현하게 됩니다. 우리가 이미지 한 장을 불러오게 되면 RGB 3개의 채널로 구성이 되어 있게 되는데요. 3개의 채널을 가지는 배열 형태로 구성이 되어 있게 됩니다. RGB 데이터는 각각 3바이트로 구성이 되어 있는데요. 3바이트의 각 픽셀은 RGB에 대한 정보를 가지고 있습니다. 0,0,0은 검정, 255,255,255는 하얀색을 나타내게 되고 255, 0, 0은 빨간색을 나타내게 됩니다. 이렇게 3개의 채널 값으로 다양한 색상을 표현할 수가 있습니다. 그럼 직접 이미지 데이터를 실습을 통해 불러와서 수치 형태의 행렬 데이터로 만들고 시각화까지 해보도록 하겠습니다. 이번에는 실습을 통해 RGB 색상을 이해해보도록 하겠습니다. 상대 경로를 사용해서 이미지 폴더에 있는 특정 이미지를 불러와 보도록 할 텐데요. 이렇게 meplotlib의 Pyplot을 사용해서 plt라는 별칭으로 불러온 다음에 plt의 imread로 특정 이미지 경로를 지정하게 되면 이 이미지 경로를 배열 형태로 가져오게 됩니다. 이 img라는 변수에 불러온 값을 넣어주었는데요. img라는 변수의 쉐이프 값을 보게 되면 400 곱하기 720의 3개의 채널로 구성이 된 것을 확인해 볼 수가 있습니다. 400개의 행과 720개의 열을 가지고 있는 배열 형태로 구성이 되어 있으며 3장의 RGB 값으로 구성이 되어 있는데요. 그래서 이렇게 숫자로 되어 있는 값을 그냥 보면은 보기가 어렵기 때문에 저희는 IMCO라는 기능을 통해서 이미지 값을 표현해 보도록 하겠습니다. 위에서 쉐이프 값을 출력을 해봤을 때 400과 720의 사이즈로 구성이 되어 있었는데요. 행이 400, 그 다음에 열이 720 픽셀인 이미지로 이렇게 표현이 되는 것을 확인해 볼 수가 있습니다. 이미지는 3개의 채널로 구성이 되어 있는데요. 그러면 행과 열은 전체를 불러오게 되고 첫 번째 채널은 0번째 채널을 불러와 보도록 하겠습니다. 파이썬은 인덱스 번호가 0번부터 시작하기 때문에 0, 1, 2로 각각 RGB 채널에 접근할 수가 있습니다. 다음으로 그럼 1번 채널을 보도록 하겠습니다. 인덱스 값이 1인 채널, 2인 채널을 불러오게 되면 각각 이렇게 숫자로 구성이 되어 있는데 가장 첫 번째 픽셀은 88, 156, 205로 RGB 색상 조합으로 구성이 되어 있다라는 것을 확인해 볼 수가 있습니다. 이미지 분류를 하기 위해서는 이미지를 로드하거나 크기를 변경하거나 효과를 주는 등 다양한 처리가 필요할 수도 있는데요. 이때 사용되는 파이썬 이미지 처리 도구 몇 가지를 소개해보겠습니다. 우선 PIL로 불리는 파이썬 이미징 라이브러리는 파이썬 인터프리터의 다양한 이미지 파일 형식을 지원합니다. 강력한 이미지 처리와 그래픽 기능을 제공하며 Pillow라는 후속 프로젝트가 가능합니다. PIL 저장소에서 갈라져 나와 파이썬 3.0대 지원이 추가되었습니다 이 PIL의 주요 기능은 픽셀 단위의 조작이라든지 마스킹 및 투명도 제어, 흐림, 윤곽 보정, 윤곽 검출 등의 이미지 필터라든지 선명도, 밝기, 명암, 색보정 등의 화상 조정이라든지 이미지의 텍스트를 추가하는 기능 등을 사용해 보실 수가 있습니다. 그리고 다음으로 OpenCV를 보겠습니다. OpenCV는 Open Source Computer Vision의 약자로 실시간 컴퓨터 비전을 목적으로 인텔이 개발한 프로그래밍 라이브러리입니다. 윈도우, 리눅스 등에서 사용 가능한 크로스 플랫폼 오픈소스 도구로 텐서플로우, 토치, 파이토치 및 카페 딥러닝 프레임워크를 지원합니다. OpenCV의 주요 기능은 비디오에서 컬러 개체를 추적한다든지 이미지의 기하학적 변환이라든지 형태 변형, 이미지 그라디언트, 엣지 디텍션, 이미지 혼합, 윤곽선 찾기, 푸리에 코사인 변환 등 이미지에서 개체 검색, 원 등의 감지, 이미지 분할, 전경 추출 등 다양한 기능을 제공하고 있습니다. 그럼 필로우와 OpenCV를 통한 이미지 변환을 실습을 통해서 직접 알아보도록 하겠습니다. 이번 실습에서는 다양한 이미지 처리 도구를 알아보겠습니다. 이미지 파일을 매번 지정하기 번거롭지 않게 변수에 담아 재사용해 보도록 하겠습니다. img-cloudy라는 변수에 담아서 재사용하겠습니다. 그러면 먼저 pillow를 통해 이미지를 불러와 보도록 할 텐데요. pillow는 PIL을 통해 불러오게 되고 PIL에서 이미지와 이미지 필터를 따로 불러와서 이미지를 이렇게 열어보도록 하겠습니다. 이미지의 open을 하게 되면 이렇게 이미지를 열어볼 수가 있습니다. 이렇게 가져온 이미지의 사이즈를 볼 때는 original이라고 제가 변수에 지정을 했는데요. 변수에 지정한 오리지널의 사이즈 하게 되면 이미지의 픽셀 사이즈를 확인해 볼 수 있습니다. 720개의 열과 400개의 행을 가지고 있는 이미지 사이즈로 볼 수 있고요. 이미지 사이즈를 변경할 때는 오리지널의 리사이즈를 해주게 되면 이미지의 사이즈를 이렇게 작게 변경할 수가 있습니다. 그리고 변경한 이미지를 저장할 때는 이렇게 오리지널에 save하게 되면 이미지 파일을 저장해 볼 수가 있습니다. 그리고 왼쪽에 폴더를 열어보게 되면 이렇게 저장된 이미지를 확인해 보실 수 있습니다. 그리고 다음으로는 필터를 적용해서 흐리게 만들어 보도록 하겠습니다. 이렇게 PIE를 통해서 이미지를 흐리게 만들 수도 있고 Gaussian Blur 필터를 사용해서도 흐리게 만들 수가 있습니다. 그리고 Contour를 사용해서 등고선을 추출할 수도 있고요. 그 다음에 Emboss 효과를 적용할 수도 있습니다. 우리가 이미지를 학습시킬 때 다양한 이미지의 형태를 학습을 시킬 수도 있으며 다양하게 변형을 시킬 수도 있습니다. 그리고 OpenCV를 통해서도 똑같이 이미지를 불러올 수가 있습니다. 여기에서는 Sunrise에 있는 이미지를 하나 불러와 보도록 하겠습니다. CV에서 imread라는 것을 통해서 이미지를 읽어 올 수가 있는데요. 여기에서는 RGB 형태를 사용하지 않고 BGR 형태를 사용하기 때문에 Color BGR TO RGB를 해야지만 RGB 형태로 이미지를 불러오게 됩니다. 이렇게 불러온 이미지는 240, 360 픽셀 값을 가지고 3개의 채널로 구성이 된 것을 확인해 볼 수가 있습니다. 이렇게 배열의 값이 구성이 되어 있고 OpenCV로 파일을 읽어왔을 때는 OpenCV에 내장이 되어 있는 뷰어로 파일을 열어볼 수도 있지만 브라우저 내에서 파일을 열어볼 때는 이렇게 matplotlib을 같이 사용하시는 것을 추천합니다. matplotlib을 통해서 파일을 읽어 왔더니 이렇게 Sunrise 이미지가 출력이 되는 것을 확인해 볼 수가 있습니다. PIL에서와 마찬가지로 이미지의 크기를 변경해 볼 수도 있고요. 그 다음에 Gray Scale을 통해서 흑백 이미지로 변환을 해 볼 수도 있습니다. 그리고 이미지를 흐릿하게 만들어 볼 수도 있습니다. 그리고 적응적 임계 처리를 통해서 이렇게 어떤 값보다 큰 값을 가진 픽셀을 흰색으로 만들고 작은 값을 가진 픽셀은 검은색으로 만드는 처리를 해볼 수도 있습니다. 이번 시간 다루었던 내용들을 정리해 보도록 하겠습니다. 파일 경로와 목록에서는 절대 경로와 상대 경로를 다뤄보았는데요. 절대 경로는 어떠한 웹페이지나 파일이 가진 고유한 경로를 의미하게 되며 상대의 경로는 현재 위치한 곳을 기준으로 하는 경로입니다. OS.walk 기능을 통해서 파일 목록을 탐색하거나, GLOB를 통해서 유닉스 쉘이 사용하는 규칙을 사용하여 파일을 검색할 때 사용하는 모듈로 파일을 탐색해 볼 수도 있습니다. RGB 색상에서는 빛의 삼원색을 이용하여 색을 표현하는 방식을 알아보았으며, 각 색상마다 256가지의 명도, 선명도를 결정하는 방법을 알아보았습니다. 이미지 처리 도구로는 파이썬 이미징 라이브러리인 PIL과 오픈소스 컴퓨터 비전의 약자인 OpenCV를 알아보았습니다. PIL은 강력한 이미지 처리와 그래픽 기능을 제공하며 OpenCV는 실시간 이미지 프로세싱에 중점을 둔 라이브러리입니다. 이번 시간도 수고 많으셨습니다 감사합니다.
이번 수업에서는 합성곱 신경망에 대해 알아보도록 하겠습니다. 합성곱 신경망의 개요 합성곱 층 풀링 층 순서로 알아보겠습니다. 이번 수업에서는 합성곱 신경망의 개요에 대해 알아보겠습니다. 합성곱 신경망을 구성하는 합성곱과 풀링 과정을 알아보고 합성곱 신경망을 구성해 보도록 하겠습니다. 그럼 우선 합성곱 층의 유래 대해서 알아보도록 할 텐데요. 합성곱 신경망이 기본적인 아이디어는 고양이 실험에서 시작되었습니다. 고양이에게 어떤 그림을 보여 주었더니 어떤 형태의 그림에 대해서만 반응한다 는 것을 알게 되었는데요. 여기에서 착안해서 만들어진 것이 바로 합성곱 신경망 알고리즘 입니다. 합성곱 신경망 은 뉴런 사이에 연결 패턴이 동물 시각 피질의 조직과 사하다는 점에 영감을 받아서 만들어 졌는데요. 개별 피질 뉴런은 시야에 제한된 영역에서만 자극에 반응하게 되는데 서로 다른 뉴런의 수용 필드는 전체의 시야를 볼 수 있도록 부분적으로 중첩되는 아이디어에서 출발 하였습니다. 합성곱 신경망 은 크게 합성곱 층인 레이어와 풀링 층인 풀링 레이어로 구성이 되게 됩니다. 하나의 이미지가 있다면 이 이미지를 잘라서 합성곱 층을 의미하는 convolution 션 층으로 넘기게 됩니다. 그리고 활성화 함 수인 relu를 넣어주고 중간에 서브 샘플링 과정인 풀링을 거치게 됩니다. 합성곱과 서버 샘플링 과정을 여러 번 반복하고 뒤에 완전 연결 층인 풀리 커넥티드 레이어를 넣어서 분류 하게 됩니다. 자 여기 자동차 이미지가 있는데요 이 자동차 이미지가 이 필터를 통과하면서 이 필터에서 점점 추상화 되고 있는 것을 볼 수가 있는데요. 이렇게 추상화 된 이미지를 통해서 이 이미지가 자동차인지 트럭인지 비행기인지 배인지 말인지 등을 예측해 볼 수가 있습니다. 다층 신경망 층은 한 줄로 길게 늘어선 뉴런 으로 구성이 되어 있는데요. 그래서 신경 망에 주입 하기 위해서는 일차원 배열로 이미지를 변환해 주어야 합니다. 완전 연결 계층에서는 일 차원으로 데이터를 넣어 주어야 하기 때문에 이렇게 이 차원인 이미지를 일 차원으로 변형을 해서 넣어주게 되는데요. 이렇게 변형을 해서 넣어주게 되면은 공간적인 정보를 잃게 되어 본질적인 패턴 정보가 유실 되는 문제가 있습니다. 그리고 이미지가 커질수록 파라 미터의 수가 증가하여 과적합 되는 문제가 발생되게 됩니다. 완전 연결 신경망과 합성곱 신경망을 비교해 보도록 할 텐데요. 완전 연결 신경망 에서 이미지를 주입 하기 위해서는 이 왼쪽에 보이는 이미지처럼 일차원 벡터로 평탄한 넣어 주어야 하는데요. 이렇게 일차원 벡터로 평탄화하는 과정에서 정보의 소실이 발생하게 됩니다. 합성곱 신경망의 경우에는 너비 높이 깊이의 삼 차원으로 배열된 뉴런으로 이미지를 그대로 주입을 할 수가 있습니다. 그래서 공간 정보를 유실하는 문제를 해결해 볼 수가 있습니다. 합성곱 신경망은 크게 합성곱 층과 풀링 층으로 구성이 되게 됩니다. 합성곱 층 및 특징으로는 특징 추출 이라는 기능을 가지고 있게 되는데요 이 특징 자동 추출 기능은 이미지에서 부분마다의 특징을 자동으로 추출 하게 됩니다. 이때 합성곱 연산을 사용하게 되는데요 이 합성곱 연산은 특정한 패턴의 특징이 어디에서 나타나는지를 확인하는 도구입니다. 영어로는 컨볼루션이라고도 불리게 되는데요. 이런 복수의 필터를 통과시켜서 이미지의 특징을 추출 하고 학습하게 됩니다. 합성곱 연산은 커널 또는 필터 라는 N 곱하기 N 크기의 행렬로 높이와 너비의 곱하기 크기의 이미지를 처음부터 끝까지 겹치면서 이동하게 됩니다. 겹쳐지는 부분의 이미지와 커널의 원소의 값을 곱해서 모두 더한 값을 출력을 하게 되는데 이게 바로 합성곱 연산 입니다. 이미지의 가장 왼쪽부터 오른쪽까지 순차적으로 이동을 하게 되는데요. 서로 다른 뉴런이 전체 시야를 볼 수 있도록 부분적으로 중첩되는 원리로 구현이 되게 됩니다. 오른쪽에 보시는 이미지를 보게 되면은 이미지의 가장 왼쪽부터 오른쪽까지 순차적으로 이동하면서 연산이 이루어지는 것을 보실 수 있습니다. 합성곱 연사는 이미지에 필터를 적용을 하여 그 필터 와 합성곱 연산을 해서 오른쪽처럼 그 결과를 이렇게 추출 하게 되는데요. 합성곱 이미지에서 삼 곱하기 삼 크기의 필터의 행렬 앞 부분부터 한 칸씩 이동하면서 합성곱 연산을 하게 됩니다. 노란색 이미지 아래 붉은 색 글씨로 숫자를 곱하는 연산이 있는데 각 필터에 있는 값들을 원래 이미지 값과 곱하여 더한 값을 합성곱 feature에 반환 하게 됩니다. 노란색 필터 부분에 합성 곱 연산을 한 결과가 오른쪽 합성곱 feature로 반환된 것을 볼 수가 있습니다. 이렇게 필터를 이동하며 계산한 값들을 모아 새로운 feature맵을 만들게 됩니다. 앞에서 합성곱 과정을 봤습니다. 이미지가 삼 차원에 RGB 형태 라면 세 개의 채널을 갖게 될 것이기 때문에 그림과 같이 세 장의 배열을 입력으로 갖게 됩니다. 그리고 삼 곱하기 삼 크기에 RGB 채널 세 개의 채널을 갖는 필터 두 개를 적용을 해서 사 곱하기 사 형태의 아웃풋 두 장이 나오게 되는 과정입니다. 그럼 합성곱 연산 과정을 다시 한 번 정리해 보도록 하겠습니다. 합성곱 과정은 데이터의 특징을 추출하는 과정인데요. 데이터의 각 성분의 인접 성분들을 조사해 특징을 파악 하게 됩니다. 여기 이미지에서 보는 것처럼 필터를 통과 시키게 되면은 데이터의 각 성분의 인접 성분들을 조사하게 되겠죠. 그리고 파악한 특징들을 한 장으로 도출 시키는 과정인데요. 여기 이미지에 있는 것처럼 feature 맵을 생성을 하게 됩니다. 이미지의 특정 부분을 추상화 해서 특정 층으로 표현을 하게 되는데요. 이렇게 이미지에서 필터를 통과시켜서 합성곱 연산을 한 결과값이 있는 이 feature 맵을 하나의 압축 과정으로 파라 미터의 개수를 효과적으로 줄여 주게 됩니다. 그럼 합성곱 층과 관련된 기본 용어를 정리해 보도록 하겠습니다. 커널은 슬라이딩 윈도우 형식으로 입력된 데이터 상에서 좌 에서 우로 위에서 아래로 내적 연산을 진행하게 됩니다. 필터는 작은 필터를 여러 개 중첩하게 되면 원하는 특징을 더 돋보이게 연산량을 줄일 수 있게 되는데요. 입력 데이터의 채널 수와 필터의 채널 수는 같아야 하며 RGB 색이 추가 된다면 총 세 개의 채널을 갖게 되며 터널 은 여전히 N 곱하기 N 곱하기 일 개의 텐서이지만 필터의 차원은 M 곱하기 M 곱하기 삼이 되어 세 개의 커널을 포함 하게 됩니다. 스트라이드는 커널의 이동 보폭을 의미하게 됩니다. 일이라면 한 픽셀씩 이동한다는 의미가 되며 큰 값을 입력하게 되면은 계산 단위가 줄어들게 됩니다. feature 맵은 입력과 커널의 합성곱 연산 결과를 의미하게 됩니다. 패딩은 합성곱 연산을 수행하기 전에 입력 데이터 주변을 영과 일 등이 특정 값을 사용해서 채우는 것을 의미하게 되는데요. 영으로 채우는 제로 패딩을 주로 사용하게 됩니다. 입력 데이터와 출력 데이터의 크기를 맞춰주기 위해 사용하게 되고요. 입력 데이터에 필터를 적용해서 합성곱 연산을 수행할 때 데이터가 축소되는 것을 방지하게 됩니다. 그리고 모서리 부분의 데이터를 충분히 활용하기 위해서 사용하게 됩니다. 패딩 에는 벨리드 패딩과 세임 패딩 두 가지가 있는데요. 벨리드 패딩은 패딩 하지 않는 것을 의미하게 됩니다. 입력 보다 출력이 크기가 작아지게 되고요. 세임 패딩은 입력과 출력에 이미지가 갖게 됩니다. 제로 패딩을 의미하게 됩니다. 텐서플로우 캐라스에서는 컨벌루션 투 디의 패딩 옵션을 제공하고 있습니다. 실습 에서 사용할 합성 곱 함수를 이해해 보도록 하겠습니다. 텐서플로우 의 케라스 레이어의 컨벌루션투 디 로 컨벌루션 투 디를 접근을 할 수가 있으며 여기에 몇 가지 옵션이 있는데요. 필터는 필터의 개수 커널 사이즈는 필터의 크기 스트라이드 는 이동할 픽셀의 크기 패딩은 제로 패딩 유무 액티베이션은 활성화 함수를 의미하게 됩니다. 실습을 통해 합성곱 신경망을 직접 구성해 보도록 하겠습니다. 실습을 통해 텐서 플로우의 케라스 모델을 사용하여 합성 신경망 모델을 구성해 보도록 하겠습니다. Sequential 모델을 먼저 만들고 순서대로 연결된 층을 구성해 나가도록 하겠습니다. 합성곱 층을 컨벌루션 투 디 를 통해서 구현을 하고 첫 번째 합성곱 층에서는 입력을 함께 받도록 합니다. 여기에서는 필터의 개수 커널의 사이즈 그 다음에 스트라이드의 값 패딩 값까지 함께 지정을 해 주도록 할 텐데요. 서른 두 개의 피처 앱이 생성이 되도록 필터의 개수를 서른 두 개로 커널의 사이즈는 삼 콤마 삼으로 그 다음에 일 픽셀 씩 이동 하도록 스트라이드는 일로 설정을 했습니다. 그 다음에 입력 값과 출력 값이 갖도록 패딩을 세임으로 지정을 했고요. 다음 합성곱 층에서는 필터의 개수를 동일하게 서른 두 개로 지정하고 코너의 사이즈는 삼 콤마 삼으로 그 다음에 스트라이드는 일로 설정을 해서 일 픽셀씩 이동을 하도록 하며 패딩은 밸리드로 지정을 해서 출력 값이 줄어 들도록 설정을 했습니다. 그럼 이렇게 구성한 Sequential 층을 실행을 해보도록 하겠습니다. Sequential 모델이 실행이 되었고요 입력 값을 백오십 콤마 백오십에 서른 두 개의 필터를 받아서 백사십 콤마 백사십팔에 서른 두 개의 피처 맵을 반환한 것을 확인해 볼 수가 있습니다. 첫 번째 합성곱 신경망 에서는 패딩을 세임으로 지정 했기 때문에 입력과 출력의 값이 같은데 두 번째 컨벌루션 합성곱 층에서는 패딩을 벨리드로 지정 했기 때문에 커널의 사이즈 만큼 이미지의 사이즈가 줄어든 것을 확인해 볼 수가 있습니다. 커널의 사이즈를 삼 콤마 삼으로 지정을 해서 아웃풋 값이 백사십팔 콤마 백사십팔 에 서른두 개의 피처 맵으로 반환이 된 것을 확인해 볼 수가 있습니다. 그리고 모델의 서머리 통해서도 출력 값이 백오십에서 백사십 팔로 줄어든 것을 확인해 볼 수가 있으며 여기에서 필터의 개수 서른 두 개를 지정 했기 때문에 서른 두 개의 피처 맵이 반환이 된 것도 확인해 볼 수가 있습니다. 이렇게 모델 서머리를 통해서 확인해 볼 수도 있지만 plot 모델을 통해서도 우리가 만든 레이어를 확인해 볼 수도 있습니다. 이번에는 풀링에 대해서 알아보도록 하겠습니다. 풀링은 합성곱 과정을 거친 층에 사이즈를 줄여주는 과정인데 장점은 단순히 데이터의 사이즈를 줄여 주어 학습 속도를 높여 주게 되며 노이즈를 상쇄 줍니다. 미세한 부분에서 일관적인 특징을 제공하기 때문에 오버 피팅 을 억제해 주기도 합니다. 풀링 의 종류에는 맥스 에버리지 민 풀링 등이 있는데요. 대상 영역에서 최대 값 평균 최소값 등을 취하는 것에 따라 풀링 의 종류가 달라지게 됩니다. 보통은 맥스 풀링 을 가장 많이 사용하게 됩니다. 풀링의 장점은 전체 데이터의 사이즈가 줄어들어 연산에 들어가는 컴퓨팅 리소스가 줄어든다라는 것인데요. 데이터의 크기를 줄이면 소실이 발생하기 때문에 오버 피팅 을 방지해 주게 됩니다. 여기 이백이십사 곱하기 이백이십사 사이즈의 이미지를 받아서 맥 스프링을 진행을 하게 되면은 사이즈가 백십이 곱하기 백십이로 줄어들게 됩니다. 이렇게 맥스 풀링을 조금 더 자세하게 한 번 보도록 할 텐데요. 일 일 오 육 에 있는 숫자 중에 가장 큰 숫자를 뽑는다면 육을 뽑을 수가 있겠죠. 그래서 이렇게 맥스 풀링을 할 때 필터의 사이즈를 이 곱하기 이로 하고 스트라이드를 이로 해서 한 번에 두 칸씩 이동하게 되면 이렇게 색이 칠해진 영역 만큼 이동하게 됩니다. 그래서 색깔이 칠해진 영역에서 가장 큰 숫자를 추출을 해서 이렇게 맥스 풀링을 진행하게 되면은 데이터의 크기가 줄어들게 됩니다. 텐서플로어 에 있는 풀링 함수 기능을 사용해 보도록 할 텐데요. 맥스 풀 투 D 기능을 사용해서 맥스 풀링을 진행해 볼 예정입니다. 이때 사용할 수 있는 옵션 몇 가지가 있는데 풀 사이즈는 풀링 에 사용할 필터의 크기를 정하는 것으로 단순 정수 또는 튜플 형태로 지정을 하게 됩니다. 스트라이드는 풀링이 사용한 필터에 이동할 수 있는 폭을 의미하게 됩니다. 그래서 일 콤마 일 이라면은 한 번에 일 픽셀씩 이동하게 됩니다. 그리고 패딩을 두 가지로 지정할 수가 있는데 벨리드와 세임으로 지정할 수가 있고 밸리드는 패딩을 하지 않는 것을 의미하며 세임은 결과 사이즈가 인풋 사이즈와 동일하게 패딩 되는 것을 의미하게 됩니다. 지금까지 합성곱과 풀링 에에 대해서 알아보았는데요. 여기에서는 르넷 파이브 라는 모델을 한번 보도록 하겠습니다. 이 르넷 파이브는 얀 르쿤 교수에 의해 만들어진 모델 인데요. 합성곱과 풀링 과정 후에 완전 연결을 사용하여 결과를 만들어 내는 방식입니다. 인풋으로 삼십이 곱하기 삼십 이 사이즈의 이미지를 받아서 여섯 장의 피처 맵을 생성한 것을 볼 수가 있는데요. 이때 사이즈가 삼십 이에서 이십 팔로 사 줄어든 것을 확인해 볼 수가 있는데 필터의 사이즈를 오 곱하기 오로 사용했다라는 것을 알 수가 있습니다. 자 컨벌루션 과정을 거친 다음에 맥스 풀링을 거쳐서 사이즈가 십사 곱하기 십 사로 줄어들었고요 다음으로 필터 열여섯 장을 사용을 해서 사이즈를 십 곱하기 십으로 줄였습니다. 그리고 또 맥스 풀링을 사용을 해서 사이즈를 오 곱하기 오로 줄이게 됩니다. 이렇게 합성곱 과정과 풀링 과정을 거쳐서 피처 맵을 생성한 다음에 이렇게 생성이 된 피처맵을 플레팅을 통해서 이렇게 일 차원 배열 형태로 만들어 주어 완전 연결 층에 넣어주고 백이십 개의 유닛을 갖는 레이어와 팔십사 개의 유닛을 갖는 레이어를 구성을 하고 열 개의 멀티 클래스를 예측하는 모델이 생성이 된 것을 확인해 볼 수가 있습니다. 실습을 통해 지금까지 배웠었던 합성곱과 풀링을 활용하여 합성곱 신경 망을 구성해 보도록 하겠습니다. 이번에는 실습을 통해 합성곱 층과 풀링 층을 같이 적용을 해 보도록 하겠습니다. 합성곱 과정을 거친 후 사이즈를 줄여주기 위해서 서버 샘플링 이라 불리는 맥스 풀링을 거치게 되는데요. 이 과정을 통해 데이터 사이즈를 줄여주기 때문에 빠르게 학습을 할 수가 있습니다. 합성곱 층인 컨벌루션 투디 층 아래에 맥스 풀링 투디 를 통해서 풀링 과정을 거치도록 모델을 변경해 보았습니다. 합성곱 중인 컨벌루션 투 디 층 바로 아래에 맥스 풀링 투디 를 통해서 맥스 풀링 거치 모델을 변경을 했습니다. 그래서 컨벌루션 층 아래에 또 맥스 풀링을 통해서 서버 샘플링을 거치도록 했고요. 그리고 플레튼 을 통해서 완전 연결 층을 만들어 주도록 했습니다. 여기에서 활성화 함수로 는 relu를 사용했고 유닛의 개수는 이백오십육 개로 지정을 해 주었으면 저희는 이제 날씨 이미지를 다섯 가지로 분류를 해 보도록 할 텐데요. 그래서 다섯 가지 날씨 이미지를 분류하기 위해서 출력을 오로 액티브 펑션은 소프트 맥스로 해서 비율로 반환이 되도록 모델을 구성을 해 보았습니다. 그래서 셀을 실행을 해서 모델을 생성을 했고요. 이렇게 생성한 모델을 모델 서머리를 통해서 요약을 해보도록 하겠습니다. 모델 서머리를 통해 요약을 해보게 되면은 입력은 백오십 콤마 백오십 콤마 삼십 이로 크기로 출력을 갖는 컨벌루션 합성곱 신경망 출력을 일단 출력을 갖게 되고요. 다음으로 맥스 풀링을 거치면서 크기가 칠십오 컴마 칠십오로 줄어든 것을 확인해 볼 수 있습니다. 필터의 개수는 여전히 서른두 개 이기 때문에 서른두 개의 피처 맵을 가지고 있다. 라는 것을 확인해 볼 수가 있으면 다음으로 컨벌루션 과정을 거치면서 사이즈가 또 줄어들게 되는데 이때 패딩을 벨리드로 지정 했기 때문입니다. 그리고 다음으로 맥스 풀링을 지정 하면서 사이즈가 또 줄어들게 되고요. 그 다음에 플래튼 과정을 거치면서 이제 일 차원 벡터로 데이터의 형태를 변경해 주게 됩니다. 그 다음에 히든 레이어 은닉 층을 구성을 해주고 출력 층으로 다섯 개의 클래스를 예측을 하도록 만들어 주었습니다. 이렇게 합성곱과 풀링 연산을 진행하면 전체 데이터의 사이즈가 줄어들어 연산이 들어가는 컴퓨팅 리소스가 줄어드는 장점이 있으면 데이터의 크기를 줄이면 소실이 발생하기 때문에 오버 피팅 도 방지하게 됩니다. 그러면 이렇게 만든 모델을 플롯 모델을 통해서 요약해 보도록 하겠습니다. 입력을 받아서 합성곱 층을 통과하고 다음으로 맥스 풀링을 거쳐서 사이즈를 줄여 주며 다시 합성곱 연산을 하고 맥스 풀링을 한 다음에 플레튼 레이어로 데이터를 일 차원 형태로 만들어서 완전 연결 레이어에 넣어주면 히든 레이어를 거쳐 다섯 개의 클래스를 예측하는 출력 층까지 구성해 본 것을 이렇게 시각과 까지 해 보았습니다. 이번 시간에 배운 내용을 정리해 보도록 하겠습니다. 합성곱 신경망은 삼 차원으로 배열 된 뉴런 으로 이미지를 그대로 주입 할 수 있습니다. 합성곱 연산과 서브 샘플링을 적용하는 것을 반복하며 마지막에 완전 연결층을 통해 데이터를 분류 하게 됩니다. 합성곱 층은 특정한 패턴의 특징이 어디에서 나타나는지를 확인하는 도구입니다. 필터의 개수 크기 스트라이드로 이동할 픽 셀의 크기 패딩 유무 활성 함수 등으로 구성이 되게 됩니다. 풀링은 합성곱 과정을 거친 층에 사이즈를 줄여주는 과정입니다. 데이터의 사이즈를 줄여주기 때문에 빠르게 학습하는 데 도움이 되며 노이즈를 상쇄시키고 오버 피팅을 억제시켜 줍니다. 이번 시간도 수고 많으셨습니다 감사합니다.
이번 수업에서는 합성곱 신경망의 성능 개선에 대해서 알아보겠습니다. 합성곱 층을 통한 학습 데이터 증가 배치 정규화 순으로 알아보겠습니다. 이번 수업에서는 합성곱 층을 통한 학습으로 이미지 데이터를 분류해 볼 예정입니다. 우리가 모델을 만들었고 그 모델을 모델이라는 변수에다가 넣어 주었다면 model.fit()을 통해서 학습을 진행할 수 있습니다. 학습을 할 때 몇 가지 파라미터 값들을 지정을 할 수가 있는데요 이때 X에는 날씨 사진 학습 이미지를 넣어 줄 겁니다. 그리고 Y 에는 정답 값 클라우드나 샤인, 선라이즈, 레인, 포기 와 같은 정답 값을 수치 데이터 형태로 만들어서 넣어 줄 겁니다. 그리고 배치 사이즈에는 한 번에 학습할 데이터 크기를 지정하고 epoch는 학습 횟수 그 다음에 버스는 로그 형식을 지정을 해주는데요 근데 로그를 전부 다 출력을 할 건지 일부만 출력을 할 건지를 이 verbose를 통해서 지정을 할 예정입니다. 그리고 콜백 은 사용자 정의 함수로 예를 들어서 EarlyStopping을 지정 하게 되면은 열번 이상 손실이 줄어들지 않으면 학습을 멈추는 설정을 해 볼 수도 있습니다. 그리고 밸리데이션 스플릿을 지정하게 되면은 검증 데이터의 비율을 지정할 수도 있습니다. 학습을 잘 진행을 했다면 학습 세트와 검증 세트를 통해서 얼마나 잘 예측을 했는지를 비교해 볼 수가 있을 텐데요 학습 결과를 히스토리로 받아와서 Accuracy와 Loss를 비교해 볼 수가 있습니다. Accuracy는 정확도로 학습 검증 세트를 통해 정답 값의 비율을 확인해 볼 수가 있고 Loss 학습 검증 세트를 통해 손실율을 확인해 볼 수가 있습니다. 그리고 이제 학습을 진행하다 보면 어느 시점에서는 더 이상 성능이 증가하지 않는 시점이 오게 되는데요 이때 EarlyStopping을 지정 하게 되면 어느 시점에서 모델이 성능이 정치하는 구간에서 성능 향상이 없으면 자동으로 훈련을 멈추도록 설정해 볼 수가 있습니다. 그리고 예측을 진행합니다. 예측을 할 때는 model.predict를 사용합니다. 예측이 다 되었다면 Accuracy를 통해 예측에 정확도를 측정합니다. 그럼 실습을 통해 합성곱 신경망으로 학습을 하고 예측을 해보도록 하겠습니다. 이번에는 실습을 통해 합성곱 층을 통한 학습을 해보도록 할 텐데요 지금까지 배웠었던 내용들을 모두 종합해서 실습을 해보도록 하겠습니다. 일단 실습을 하는데 너무 오래 걸리기 때문에 제가 일단 돌려 놓은 코드로 설명을 드리도록 하겠습니다. 합성곱 층을 통한 학습을 하기 위해서 일단 필요한 라이벌 리를 불러왔습니다. numpy나 pandas matplotlib 본 그 다음에 오픈 CV 2와 같은 도구들을 불러 왔고요 그리고 구글 컬레브레이토리를 사용하고 있기 때문에 구글 드라이브를 우선 마운트 해주었습니다. 그리고 이미지가 있는 폴더에 폴더 경로를 변수에 지정해서 재사용 하도록 했고요 그 다음에 정답이 쓰여져 있는 테스 점 CSV 는 제외를 하도록 했습니다. 그래서 이렇게 파일을 읽어 와서 오픈 CV 를 통해서 이미지를 불러와서 우리가 학습에 사용할 데이터셋 그 다음에 예측에 사용할 데이터 셋을 따로 리스트로 만들어 주도록 했습니다. 그래서 오픈 CV 를 사용해서 이미지를 읽어 오고 RGB 형태로 변환해 준 다음에 백오십 곱하기 백오십 사이즈로 변경을 해주고 그리고 나서 이제 테스트 데이터셋과 트레 데이터 셋을 각각 개별 폴더로 넣어주도록 했습니다. 그래서 이미지 데이터 셋을 이렇게 위에 함수를 돌려서 각각의 이제 폴더에 맞게 불러 오도록 하고요 여기 보면 이제 클래스 별로 삼백오십 개 이백오십 개 삼백 개 이렇게 있는 걸 보실 수 있고 우리가 최종적으로 예측해야 될 데이터 셋은 이 위에 있는 데이터 셋을 통해서 삼십 개 데이터 셋을 예측하기 될 겁니다. 그러면 배열 형태로 엑스 와 Y 의 값을 를 일단 numpy 어레이 값으로 변경을 해 주도록 하고요 그리고 학습 세트와 검증 세트를 분리를 하도록 합니다. 학습 세트와 검증 세트를 분리를 할 때는 사이키 면에 있는 트인 테스트 스플릿을 통해서 검증 세트가 이십 퍼센트가 되도록 분리를 해주고요 그리고 우리가 나중에 학습을 할 때 학습 세트와 검증 세트를 따로 넣어줄 예정입니다. 그리고 이미지는 백오십 픽셀로 어 변경을 해서 사용을 할 거고요 그리고 이백오십오 로 나누어서 딥러닝 모델이 학습하기 좋은 형태로 데이터를 만들어 주었습니다. 그리고 이제 예측에 사용할 데이터와 데이터를 이렇게 전 처리를 해 주었다면 이제 테스트에 사용할 데이터의 이제 사이즈도 변경을 해주고요 그 다음에 이렇게 테스트의 쉐프 값도 변경을 해 주었습니다. 그리고 이제 라벨 바너라이저를 통해서 정답 값을 원화 형태로 변경을 해주게 됩니다. 그래서 레이블 바이 라이어 통해서 이렇게 정답 값을 원화 형태로 변경을 해 주었고요 원화 형태로 변경이 되게 되면은 그 해당 클래스 에만 일로 표기가 되게 됩니다. 그래서 우리는 이제 날 씨를 예측을 해볼 건데 클라우드라는 포기 라든지 라이즈 라든지 샤이 이런 날씨 값들이 여기에 이제 순서대로 들어가 있고 그 다음에 그 해당 값에 해당될 때만 이렇게 일로 표기되는 방식을 원 핫 인코딩 이라고 부르게 되는데요 그래서 정답 값을 원화 형태로 변경을 해 주었습니다. 그래서 변경된 값이 이제 어떤 값을 의미하는지 알기 위해서 이제 디너 형태로 만들어 주었는데요 이 순서에 따라서 값을 가지고 와서 첫 번째 값은 클라우드 그 다음에 일 번 인덱스는 포기 이 번 인덱스는 레인이 삼 번 인덱스는 샤 인 사 번 인덱스는 솔라 즈 라는 거를 이제 확인을 해 볼 수가 있고요 그리고 이제 트레이 데이터 셋이 이제 어떻게 생겼는지 저희가 한 번 보도록 할 텐데요 시각화 에서 이제 이미지 라벨을 사용하기 위해서 이제 A 일련 테스트는 저희가 이제 테스트 데이터 셋으로 예측을 할 건데 제거를 해 주었습니다. 그래서 학습에 사용할 이미지가 어떤 형태인지 한 번 보도록 하겠습니다. 그래서 썰이 는 이제 해가 이제 떠오르는 썰이 이미지 샤이 클라우드 레인 포기 와 같은 에 이미지들이 들어 있습니다. 그래서 이 이미지들을 학습을 해서 우리가 그 이미지에 해당되는 날씨를 맞추는 게 이번 실습입니다. 예측 값의 종류별 빈도 수를 보도록 할 텐데요 이백오십 개에서 삼백 오십 개 사이에 빈도수가 분포되어 있다라는 것을 확인해 볼 수가 있고요 그리고 우리가 이제 지난 시간까지 배웠었던 어 합성곱 신경망을 직접 구현을 해서 이렇게 컨 로션 과 맥스 플린 컨 션 과 맥 스프링을 해주고 그 다음에 이제 플레 을 통해서 이렇게 일차원 배열로 펴 준 다음에 히든 레이어 은닉 층을 하나 통과를 시키고 유니 세 개수는 이백오십육 개로 그 다음에 출력 의 개수는 다섯 개 소프트 맥스 로 해서 출력을 하는 이런 신경 막을 모델로 만들어 주었고요 그래서 모델의 요약 값도 보고요 그래서 지난 시간에 했었던 내용의 복습이기도 합니다. 그래서 모델 컴파일을 해 주었다면 이제 학습을 할 수 있게 되었는데요 제 학습을 하게 되면은 좀 시간이 오래 걸리기 때문에 제가 코드를 미리 돌려 두었는데요 백 번을 포크를 돌도 했습니다. 근데 이제 백 번을 돌다보면은 어느 순간에는 더 이상 학습의 성능이 증가하지 않고 이제 정치하고 되는 구간이 오게 되는데 그 구간이 오게 되면은 멈춰라 라고 해서 이렇게 얼리 스타핑 페이트 를 십으로 지정을 해서 열 번 이상 성능이 개선되지 않으면은 학습을 멈추도록 얼리 스타핑 까지 지정을 해 주도록 했습니다. 그래서 model.fit의 트인 데이터 셋과 그 다음에 위에서 나누어 주었던 밸리데이션 데이터 셋을 따로 나누어서 넣어 주었습니다. 그리고 이 데이터들을 이렇게 학습을 해서 포크를 돌 때마다 이제 로그를 찍도록 했는데요 그 서 어플로 시를 보면은 처음에는 영 점 오 시작을 하는데 학습을 하면은 할수록 점점 이렇게 정확도가 영 점 구 팔 영 점 구 구까지 높아지는 것을 확인해 볼 수가 있고 그리고 이제 밸리데이션 의 어드 러시 도 보게 되면은 점점 증가하고 있다라는 것을 볼 수가 있습니다. 그런데 어느 순간 되게 되면은 학습의 정확도가 정체가 되게 되는 순간이 오게 되는데요 그래서 위의 학습 결과를 데이터 프레임으로 받아서 직접 시각화를 해서 비교를 해 봅니다. 그래서 학습 결과를 시각화 하게 되면은 정확도가 높아지는지 이제 오차가 줄어드는 지를 확인해 볼 수가 있습니다. 그래서 어느 순간에 가게 되면은 더 이상 성능이 올라가지 않고 정체 하는 구간이 발생하게 되는데요 그래서 위에 있는 것은 정확도를 의미하고 아래 있는 그래프는 이제 손실류 Loss 를 의미하게 됩니다. 그래서 페 트 를 통해서 학습을 해 주었다면 프레디트 를 통해서 예측을 해볼 수가 있겠죠. 그래서 프레디 를 통해서 예측을 하고 그 예측 결과를 정답지를 불러와서 한 번 비교를 해보도록 할 텐데요. 우리가 불러온 순서대로 이 테스트 Y 의 순서대로 이 정답지를 정년 해 주었고요 순서대로 불러 오도록 했고요 그래서 이 정답 한번 정확도를 비교해 봤더니 영 점 칠 육 정도의 정확도가 나왔습니다. 그래서 우리가 이제 위에서 예측 했었던 밸리데이션 세트의 정확도는 한 영 점 팔 오 정도까지 나왔었는데 실제 테스트 셋을 넣어서 예측을 했더니 이제 영 점 칠 육 정도가 나왔는데요 이때 정확도를 높여 위해서는 어 우리가 이제 합성 곡 신경망이 층을 더 더 해 본다든지 아니면은 다른 방법들을 사용을 해서 성능을 좀 더 높여 볼 수가 있을 텐데요 일단 우리가 예측한 테스트 데이터 셋을 보게 되면은 이렇게 실제로는 이제 클라우드 인데 포기 라고 예측을 하거나 아니면은 클라우드 인데 차인 이라고 예측을 하거나 그리고 포기 인데 레인 이라고 예측을 하거나 이렇게 어 제대로 예측을 한 것도 있고 포기를 인데 포기 라고 예측을 하고 레인 이라서 레인 이라고 이렇게 제대로 예측한 데이터도 있지만 이제 제대로 예측하지 못한 데이터도 있다라는 것을 이렇게 시각화를 통해서도 확인해 보실 수가 있습니다. 그래서 지금까지 배웠었던 내용들을 종합을 해서 직접 데이터를 불러오고 그 데이터를 나누어 주고 그 다음에 어 합성곱 신경망을 구현을 해서 그 합성곱 신경망이 을 컴파일 하고 그 다음에 핏 프로젝트 해서 어 그 예측에 결과가 이제 얼마나 정답값에 정확하게 맞추는 지 확인까지 해 보았습니다. 이번에는 데이터 증강 알아보도록 하겠습니다. 데이터 증강 은 데이터의 양을 늘리는 기술로 여기에 보이는 이미지 처럼 같은 이미지지만 위치를 조금 이동 한다든지 회전을 통해서 이미지를 다양하게 생성을 해 볼 수가 있을 텐데요 이 데이터 증강을 통해서 식별 하고자 하는 물체의 이미지를 변형 시킬 수가 있습니다. 평행 이동 이나 확대 회전 밝기 조정 등 다양한 변형을 해 볼 수가 있으며 이렇게 이미지를 다양하게 변형되면은 이미지를 다양하게 학습할 수 있어서 오버 피팅 을 방지할 수가 있습니다. 하지만 이미지 변형시 정보가 왜곡되는 것을 유의해야 합니다. 예를 들어서 여기에 있는 이런 날씨 이미지가 아니라 숫자 이미지 육을 회전 하게 되면은 구로 오해할 수가 있기 때문에 그래서 데이터 증강 기법을 통해서 데이터의 양을 늘릴 때는 그 이미지의 특성을 이해하고 이미지 변형 시 정보가 왜곡 되지 않도록 데이터 증 강을 해야 할 것입니다. 그리고 이 데이터 증상은 훈련 세트에 적용하는 것을 추천하고 테스트 세트에 적용시 현실과 너무 다른 동떨어진 결과가 나올 수 있다는 것에 유의를 해야 합니다. 이 데이터 증상은 산업계와 실제 프로젝트에서도 자주 사용하는 방법입니다. 방법이 어렵지 않고 효과 또한 뛰어납니다. 라스 에서는 이렇게 데이터 증강 할 수 있는 기능을 제공하고 있는데요 랜덤 컨트 라스트 를 통해서 색상의 대비를 조정 한다든지 아니면은 일부만 자른다든지 무작위 뒤집기 회전 확대 축소 크기 변경 등의 다양한 기능을 제공하고 있습니다리고 이미지 채널 레이더라는 기능도 제공을 하고 있는데요 샘플 의 특성 분포를 결정하거나 랜덤 샘플의 특성이 정규 분포를 따르게 하거나 아니면은 회전 범위 이미지의 너비와 높이를 조정 한다든지 기울기 확대 축소 회전 여부 등 다양한 변형을 할 수 있는 기능을 제공하고 있습니다. 그러면 실습을 통해 팬서 플로우 에 내장된 캐라의 전철 이층을 사용해 데이터 증강 해보도록 하겠습니다. 이번에는 실습을 통해 데이터 증강 해보도록 하겠습니다. 데이터 증강 하는 방법에는 여러 가지가 있는데요 여기에는 댄서 플로우의 내장이 되어 있는 전 처리 도구를 사용을 해서 데이터 증강 해보도록 하겠습니다. 사이즈를 변경 한다든지 아니면은 플립 을 한다든지 컨트 라스트 값을 조정 한다든지 로테이션 으로 회전을 한다든지 줌을 해서 확대 축소 등을 해볼 수가 있습니다. 그래서 이렇게 데이터 증강 통해서 데이터를 여러 개를 생성을 할 때는 이미지가 변형이 되기 때문에 원래의 정보에서 이제 정보가 왜곡되는 것에 유의를 해야 합니다. 그래서 데이터 증강하게 되면은 성능이 올라갈 수도 있지만 성능이 내려갈 수도 있다라는 점에 주의를 해 주셔야 하고요 그리고 이제 그 이미지에 맞는 데이터 증강 방법들을 사용하셔야 합니다. 예를 들어서 이제 숫자 이미지라면 육이라는 숫자를 거꾸로 뒤집으면 구가 되기 때문에 그런 정보가 왜곡되는 것에 이제 주의를 해주셔야 되고요 자 여기에서 몇 가지 플립 이라든지 컨트라스트 로테이션 줌과 같은 옵션을 사용을 해서 데이터 증강 통해서 데이터를 무작위로 생성을 해보도록 하겠습니다. 그래서 이제 오기만케이션 이라고 해서 이렇게 만들어 준 옵션들을 CO 레이어에 상단에 넣어주게 됩니다. 그 이제 CO 레이어 상단에서 이미지 변형을 처리를 하게 되고 그 다음에는 합성곱 층과 맥스 플린 합성 곡 층 맥스 플린 을 거쳐서 이제 플레 에서 일 차원 배열로 이제 데이터를 어 일 차원 형태로 변형을 해준 다음에 히든 레이어를 통과를 시키고요 이백오십육 개의 유인을 가지는 이제 히든 레이어를 통과하고 다섯 개로 이제 예측을 하는 이제 소프트 맥스를 사용을 해서 출격 층을 구성을 했습니다. 그래서 모델을 컴파일 해주고 그리고 여기에서 똑같이 학습을 하게 되는데요 이제 학습하는 과정이 오래 걸리기 때문에 제가 미리 코드를 돌려 두었는데요 환경에 따라서 시간이 조금 많이 차이가 날 수도 있는데요 그래서 이제 좀 오래 걸리는 코드 라서 제가 미리 에 실행을 해 두었습니다. 포크를 백 번으로 하고 열 번 이상 성능이 올라가지 않으면은 이제 학습을 멈추게 했는데요 그래서 어케 시가 영 점 사부터 시작을 하고 이제 밸리데이션 같은 경우에는 영 점 육 부터 어플 시가 시작이 되게 됩니다. 그래서 우리가 그냥 이전 실습 에서 실습 했던 것보다 오히려 이제 성능이 떨어진다라는 것을 이제 확인해 볼 수가 있는데요 쭉 끝까지 학습을 해서 보게 되면은 이제 학습 데이터셋도 성능이 계속 올라가고 밸리데이션 데이터셋도 이제 성능이 계속 올라가게 되는데 이제 열 번 이상 성능이 증가하지 않는다고 하게 되면 이제 몸 축에 이제 얼리스트 AI 하는 옵션을 넣어 두었습니다. 그래서 이제 성능이 생각보다 그렇게 올라가지는 않았는데요 여기에 있는 이제 날씨 이미지 이기 때문에 이제 회전을 한다든지 주문을 한다든지 해서 학습을 했는데 여기에서는 이제 데이터 증강 방법이 이런 방법이 있다 정도로 이제 알아 두시면은 좋을 것 같은데 이 데이터 증강 방법은 성능이 대체적으로 이제 올라가는 경우도 있지만 이렇게 떨어지는 경우도 있다라는 점도 함께 알아두시면 좋을 것 같고 위에 있는 데이터 증 강의 옵션을 변경을 해서 성능을 예 변경을 해보실 수 있습니다. 그래서 어 다양한 옵션을 통해서 실습을 진행해 보시는 것을 예 추천을 하고요 그래서 이렇게 학습 결과를 시각화해서 보게 되면은 트레 세트와 밸리데이션 세트가 어느 순간 가게 되면 지금 삼십 번 정도 넘게 학습을 했더니 더 이상 성능이 증가하지 않더라 그래서 이제 학습을 멈추게 되었고요 그 다음에 로스 같은 경우에도 계속 줄어들다가 늘었다 줄었다 하는데 대체적으로 줄어들었다라는 것을 이제 확인을 해 볼 수가 있습니다. 그래서 저희가 데이터 증 강을 실습을 해 보았는데요 텐스 플로우 에 매장 되어 있는 기능을 사용을 해서 다양한 데이터를 변형을 해서 학습에 적용을 해볼 수가 있습니다. 이번에는 배치 정 교화를 알아보겠습니다. 배치 정규는 값의 크기를 변경해 입력을 정교하고 인공 신경 망을 보다 빠르고 안정적으로 만드는 방법입니다. 배치 훈련 에서는 이전 층의 활성함수 출력에 대해 통일된 정규화를 진행해 평균값이 영이고 표준 편차가 일이 되도록 하는 것입니다. 배치 정교 화의 특징은 기울기 소식과 폭주 문제를 해결할 수 있으며 값의 스케일을 변경해 입력을 정교하게 됩니다. 또 신경 망을 보다 빠르고 안정적으로 만드는 방법이며 가중치 파라미터의 스케일을 규제 해서 학습을 높게 설정할 수 있기 때문에 학습 속도를 개선할 수가 있습니다. 저희가 학습율 배웠을 때 컴파일 과정에서 학습을 설정하게 되는데 이때 학습을 너무 어 높게 설정하게 되면은 경사로를 그냥 지나쳐 버려서 이탈하는 현상들이 발생하게 되는데 이게 배치 정규화를 하게 되면은 이런 가중치 파라미터의 스케일을 규제하기 때문에 학습 속도를 개선할 수가 있습니다. 현재 미니 배치해서 평균과 표준 편차를 평가하기 때문에 배치 정규화 입니다. 배치 정규화를 합성곱 신경 망에 적용해 보도록 할 텐데요. 각 층에서 활성화 함수를 통과하기 전이 난 후에 배치노니션이라는 연산을 추구하게 됩니다. 배치 정규화를 하게 되면 훈련 세트를 표준화 할 필요가 없습니다. 그래서 배치 정규화를 사용하면 기울기 소실 문제가 크게 감소하여 수렴을 가진 활성화 함수를 사용할 수 있으며 가중치 초기와의 네트워크가 훨씬 덜 민감해지게 됩니다. 실습을 통해 합성곱 신경망의 배치 정규화 층을 적용해 보겠습니다. 이번에는 배치 정규화를 실습 해 보도록 하겠습니다. 배치 정규화 도 텐서 플로우 에 내장이 되어 있는 배치 노리 제이 이라는 기능을 사용을 해서 실습을 할 수가 있는데요 이 배치 노리 제이를 해주게 되면은 우리가 데이터를 입력을 해 줄 때 영과 일 사이로 만들어서 값을 넣어주게 되는데 그런 과정들을 해 줄 필요 없이 이 배치 노리 제이에서 정규화를 해주게 됩니다. 그래서 기존 레이어에서 이제 시 레이어를 만들어줄 때 합성곱 신경망 쿨링 그 다음에 배치 노리 이을 새로 맥스 플린 아래에 추가를 했고요. 다음으로 컨션 맥스 플린 다음에 또 배치 노리션 을 추가를 했습니다. 그리고 이제 플레 해서 일 차원 형태의 배열로 펴주고 다음으로 이백오십육개의 유닛을 갖는 히든 레이어를 하나 구성을 해주고요 그 다음에 다섯 개의 출력을 갖도록 소프트 맥스 로 반환을 하도록 했습니다. 이렇게 만든 모델을 컴파일 해주고 그리고 핏을 해주는데요 이때도 이제 트레이 데이터셋과 밸리데이션 데이터셋을 나누어서 학습을 하도록 했습니다. 이렇게 학습 결과를 보도록 할 텐데요. 이제 이것도 학습에 오래 걸리기 때문에 제가 코드를 미리 실행을 해 두었는데요 그래서 어퓨 영 점 오 부분부터 시작을 하고 밸리데이션 은 영 점 육 팔 부터 시작을 하게 되는데요 학습을 하면 할수록 점점 정확도가 높아지는 것을 확인해 볼 수가 있으며 밸리데이션 어디로 시도 이제 영 점 팔 삼으로 자 점점 학습을 할수록 이제 정확도가 높아지고 있다라는 것을 확인해 볼 수가 있습니다. 그래서 열 번 이상 성능이 증가하지 않으면 이제 멈추도록 했는데요 한 삼십 번 정도 학습을 하고 멈춘 것을 확인해 볼 수가 있습니다. 네 그래서 이렇게 배치 노리 이까지 적용을 해구 하는데요 배치 노리 제이션도 층의 어느 부분에 적용을 해 주냐에 따라서 성능이 많이 달라지게 되니까요 이 부분도 배치 노리 제이 층을 변경을 해보면서 추가 제거를 통해서 모델의 성능을 올려 보시는 실습을 해보시면은 좋겠습니다. 지금까지 배운 내용을 정리해 보도록 하겠습니다. 합성곱 층을 통한 학습은 모델 점 핏을 통해서 학습을 하게 되는데 이때 엑스 에는 학습에 사용할 이미지 Y 에는 정답 각 그리고 배치 사이즈 에는 학습 파일 데이터 크기 에포크 에는 학습 횟수를 넣어주게 됩니다. 이렇게 학습을 했다면 모델 점 프로젝트로 예측을 하게 되는데 엑스의 예측을 사용할 이미지를 넣어 주면은 됩니다. 데이터 증강은 데이터의 양을 늘리는 기술인데요 식별 하고자 하는 물체의 이미지를 변경하거나 평행 이동 확대 회전 밝기 조절 등을 하게 되며 이미지를 변형해서 다양하게 학습이 가능합니다. 배치 정규는 기울기 소식과 폭주를 해결해 주며 각의 스케일을 변경해 입력을 정규화 하게 됩니다. 신경 망을 보다 빠르고 안정적으로 만들어 주는 방법입니다. 이번 시간도 수고 많으셨습니다 감사합니다.
이번 수업에서는 다양한 합성곱 신경망 모델에 대해서 알아보겠습니다. AlexNet, VGGNet, GoogleNet, LessNet 순서로 알아보겠습니다. 이미지 넷 역대 우승 알고리즘을 통해서 이미지 분류 알고리즘의 발전을 알아보도록 하겠습니다. ILSVRC라는 이미지 넷이라는 경진대회는 ImageNet Large Scale Visual Recognition Challenge의 약자로 이미지 인식 경진대회입니다. 이 대회는 대용량의 이미지 셋을 주고 이미지 분류 알고리즘의 성과를 평가하는 대회입니다. 2010년에 시작된 이 대회에서 우승한 알고리즘들이 컴퓨터 비전 발전에 큰 역할을 하게 됩니다. 딥러닝 기반 알고리즘이 사용되면서 인식 오류는 현저하게 낮아졌습니다. 심지어 2015년에는 사람의 정확도라고 알려진 5%보다 훨씬 더 낮은 3.57%로 사람의 에러 인식률보다도 훨씬 좋은 성능을 내고 있습니다. 합성곡 신경망 알고리즘 중에 이미지 분류용 알고리즘으로 여기에서 우승했던 AlexNet이라든지 VGGNet, 구글넷, 레스넷 등 다양한 알고리즘이 있는데요. 여기에 있는 알고리즘들을 하나씩 알아보도록 할 텐데 저희는 여기에서 AlexNet을 가장 먼저 살펴보도록 하겠습니다. AlexNet은 ILS VRC ImageNet Large Scale Visual Recognition Challenge의 2012년 대회 우승 알고리즘입니다 이 AlexNet은 의미 있는 성능을 낸 첫 번째 합성곡 신경망 구조이며 당시에 GPU 성능이 지금보다 발달하지 않았기 때문에 GPU를 2대를 사용하는 구조로 되어 있습니다. 그래서 2대의 GPU를 이용하다가 끝부분에 가서 이렇게 하나의 결과를 도출하게 되는데요 여기에서 이제 활성화 함수로 렐루를 사용했고 드랍아웃 기법을 사용했습니다. AlexNet은 의미 있는 성능을 낸 첫 번째 합성곡 신경망으로 AlexNet에 쓰인 드롭아웃 기법 등은 이 분야의 표준으로 자리 잡을 정도로 선도적인 역할을 했습니다. 이번에는 VGGNET을 알아보도록 하겠습니다. VGGNET은 옥스포드 대학의 연구팀 VGG에 의해 개발된 모델입니다. 2014년 ILSVRC인 이미지 넷 챌린지에서 준우승을 한 모델인데요 VGGNET을 시작으로 네트워크의 깊이가 엄청 깊어지게 됩니다. 여기에서 16, 19라는 숫자는 16개의 층 혹은 19개의 층을 의미하게 됩니다. VGGNET은 사용하기 쉬운 구조와 좋은 성능 때문에 그 대회에서 우승을 거둔 좀 더 복잡한 형태의 구글 르넷보다 더 인기를 얻었습니다. VGGNET 연구의 핵심은 네트워크의 깊이를 깊게 만드는 것이 성능에 어떤 영향을 미치는지를 확인하고자 한 것입니다. VGG 연구팀은 깊이의 영향만을 최대한 확인하고자 컨볼루션, 필터의 커널 사이즈는 가장 작은 3X3으로 고정했습니다. 깊이가 11층, 13층, 16층, 19층으로 깊어지면서 분류 에러가 감소하면서 성능이 좋아지게 됩니다. VGGNET은 큰 특징은 없는데 매우 깊은 모델로 파라미터의 개수가 많고 모델의 깊이가 깊은 것으로 잘 알려져 있습니다. 요즘에도 딥러닝 엔지니어들이 처음 모델을 설계할 때 전의학습 등을 통해서 가장 먼저 테스트하는 모델이기도 하며 간단한 방법론입니다. 그럼 실습을 통해 VGGNET으로 이미지를 분류해 보겠습니다. 이번에는 실습을 통해 VGGNET으로 직접 날씨 이미지를 예측해 보도록 하겠습니다. 일단 기본적인 코드는 이전에 실습했었던 내용과 동일하고요 그래서 이렇게 이미지를 불러와서 이제 배열 형태로 만들어주고 기본적인 처리를 해주었다면 이제 VGGNET을 적용해 보도록 하겠습니다. 19개의 층을 사용하는 VGG19 모델을 불러오도록 할 텐데요 이 VGGNET 모델을 직접 구현을 할 수도 있지만 텐서플로우에는 이 VGGNET을 내장하고도 있습니다. 그래서 19개의 층을 가지고 있는 VGG 모델을 불러왔고요 이렇게 가져온 모델을 직접 레이어에 추가해 보도록 합니다. 시퀀셜 레이어에 VGG 모델을 추가하고 다음으로 플래튼해서 1차원 형태로 배열을 펴주고요 다음으로 5개의 출력을 갖는 소프트맥스로 날씨의 종류를 예측하도록 했습니다. 이렇게 층을 구성해 주고 나서 모델 요약까지 해보았고요 이렇게 만든 모델을 통해서 컴파일하고 이제 학습까지 진행을 해보도록 하겠습니다. 여기에서도 이제 Early Stopping을 지정을 해서 이번에는 5번 이상 성능이 증가하지 않으면 멈추도록 했습니다. 19개의 층을 갖는 VGGNet을 통해서 모델을 Fit을 해서 이제 학습을 진행을 해보도록 할 텐데요 에포크를 돌면서 학습을 진행을 하도록 했고 Accuracy와 Validation Accuracy를 보게 되면 이렇게 Accuracy가 학습을 하면 할수록 계속 증가하는 것을 확인해 볼 수가 있습니다. 그래서 VGNet 19를 직접 구현할 수도 있지만 이렇게 간단한 방법으로 미리 구현된 VGNet 19를 사용을 해서 학습을 진행을 해보았고요 그리고 진행한 결과를 시각화해 보게 되면은 어큐러시는 계속 거의 100%에 가깝게 증가를 했는데 이제 밸리데이션 어큐러시가 어느 순간 정체하게 되는데 여기에서는 5번 이상 증가하지 않으면은 학습을 멈추도록 했습니다. 그래서 이렇게 학습을 진행을 했고 진행한 학습 결과를 통해서 우리가 이제 예측을 진행을 해보도록 할 텐데요 모델점 프레딕트 를 통해 예측을 하고 예측한 결과가 원한 형태이기 때문에 argmax를 통해서 어떤 인덱스의 번호로 예측을 했는지를 확인을 했습니다. 그리고 이제 정답지를 불러와서 이제 정확도를 직접 구해봤는데요 이전에 실습했었던 결과보다 훨씬 더 높은 성능을 내는 것을 확인해 볼 수가 있고 여기에서도 이 vccnet 모델을 약간 변형을 하고 거기에 추가적인 옵션들을 몇 가지 변경을 해 본다면 이것보다도 훨씬 더 좋은 성능을 내는 모델을 만들어 볼 수가 있을 거예요 그래서 이렇게 우리가 예측한 결과를 직접 한번 시각화 해 보도록 하겠습니다. 그래서 제대로 예측을 했는지 보게 되면 여기에서도 보면은 foggy인데 sunrise라고 예측한 이미지가 있고요 그리고 이제 다른 이미지들은 대체로 잘 예측을 한 것으로 보입니다. 그래서 제대로 예측하지 못한 값들도 있는데요 모델을 개선하게 되면 정확도를 훨씬 더 개선을 해 볼 수가 있습니다. 그래서 여기에서는 VGGNET 19, 19개의 층을 갖는 VGGNET을 통해서 이렇게 학습을 진행해 보았습니다. 이번 시간에는 이미지넷의 2014년 우승 알고리즘인 구글 르넷을 알아보겠습니다. 구글 르넷은 합성곡 신경망의 아버지인 얀 루크니 구글에서 개발한 합성곡 신경망 구조입니다. 알렉스넷 이후 층을 더 깊게 쌓아 성능을 높이려는 시도들이 계속되었는데 바로 VGG넷과 구글 르넷이 대표적인 사례입니다. 구글 르넷은 VGG넷보다 구조가 복잡해서 널리 쓰이진 않았지만 구조면에서 주목받게 됩니다. 하나의 계층에서도 다양한 종류의 필터, 풀링 등을 도입하게 되었습니다. 구글 르넷 연구진들은 한 가지 필터를 적용한 합성곡 계층을 단순히 깊게 쌓는 방법도 있지만 하나의 계층에서도 다양한 종류의 필터, 풀링을 도입함으로써 개별 계층을 두텁게 확장시킬 수 있다는 창조적인 아이디어로 후배 연구자들에게 많은 영감을 주었는데요 이 인셉션 모델에서 주의깊게 보아야 할 점은 차원, 채널 축소를 위한 1X1 합성곱 계층 아이디어입니다. 갈림길이 생김으로써 좀 더 다양한 특성을 모델이 찾을 수 있게 하고 인공지능이 사람이 보는 것과 비슷한 구조로 볼 수 있게 합니다. VGG보다 신경망이 깊어졌음에도 사용된 파라미터는 절반 이하로 줄어들게 됩니다. 이번에는 2015년 이미지넷 경진대회의 우승 알고리즘인 레스넷을 알아보도록 하겠습니다. 알렉스넷이 처음 제한된 이후로 합성곡 신경망이 계층은 점점 더 깊어지게 되는데요 알렉스넷이 불과 5개 계층에 불과한 반면 VGGNET은 19개, 구글 르넷은 22개의 계층에 달하게 됩니다. 하지만 층이 이렇게 깊어질수록 역전파의 기울기는 점점 사라져서 학습이 잘 되지 않는 문제인 기울기 소실 문제가 발생이 됩니다. 여기 이미지를 보시게 되면 20층의 신경망이 56층의 신경망보다 낮은 오류율을 나타내고 있는 것을 볼 수가 있는데요. 이렇게 층이 깊어질수록 기울기가 점점 사라져 학습이 잘 되지 않는 기울기 소실 문제가 발생하게 되고 이 기울기 소실에 의한 디그라데이션 문제를 해결하기 위해서 이 레스넷이 제한되게 되었습니다. 레스넷 연구진은 레지듀얼 블록을 제한하게 되는데요 이 레지듀얼 블록은 기울기가 잘 학습될 수 있도록 일종의 지름길을 만들어 주는 방법입니다. Y는 FX 플러스 X를 다시 쓰면 FX는 Y 마이너스 X로 표현할 수 있는데요 여기에서 레지듀얼 블록은 입력과 출력 간의 차이를 학습하도록 설계되어 있습니다. 레스넷의 레지듀얼 블록은 합성곡 신경망 역사에서 큰 영향을 끼쳤고 아직도 많이 사용되는 구조 중의 하나인데요 이 FX plus X는 Shortcut Connection과 동일한데 이는 하나 이상의 레이어를 스킵하게 만들어 줍니다. 여기에서 Identity Shortcut Connection은 하나 이상의 층을 건너뛸 수 있게 하며 추가적인 파라미터도 필요하지 않고 복잡한 곱셈 연삼도 필요하지 않다는 게 장점입니다. 그래서 이 residual block을 사용하게 되면 대체적으로 모델의 성능이 좋아지는 편입니다. 레스넷의 degradation 문제를 보도록 하겠습니다. 플레인넷과 레스넷을 비교해 보도록 할 텐데요 여기 연구 결과 이미지를 보게 되면 플레인넷에서는 34개의 층이 18개의 층보다 성능이 떨어지는 것을 확인해 볼 수가 있고 18개의 층의 성능이 오차가 더 낮은 것을 확인해 볼 수가 있습니다. 레스넷에서는 기울기 수시 문제가 스키커넥션에 의해서 해결되기 때문에 34개의 층의 성능이 더 뛰어나게 됩니다. 그래서 오차가 훨씬 더 줄어든 걸 확인해 볼 수가 있는데요 오른쪽 표에서도 확인해 보게 되면 플레인넷에서는 18개의 계층의 성능이 더 좋지만 레스넷에서는 에서는 34개의 계층이 오차가 더 줄어든 것을 확인해 보실 수 있습니다. 지금까지 배운 내용들을 정리해 보도록 하겠습니다. AlexNet은 이민인의 대회의 2012년 우승 알고리즘으로 의미 있는 성능을 낸 첫 번째 합성곱 신경망 구조입니다. 활성화 함수로 렐루를 사용하며 드랍아웃 기법을 적용했습니다. 그리고 VGGNET부터는 네트워크의 깊이가 엄청 깊어지게 되는데요 이렇게 깊은 네트워크를 사용하기 위해서 컨볼루션 필터 커널의 사이즈는 가장 작은 3X3으로 고정을 했습니다. 그리고 구글의 르넷은 VGGNET보다 구조가 복잡해서 널리 쓰이지는 않았지만 구조면에서 주목을 받았습니다. 하나의 계층에서도 다양한 종류의 필터나 풀링을 도입했습니다. 그리고 레스넷은 기울기 소실에 의한 디그라데이션 문제를 해결하기 위해 제안이 되었고 레지지얼 블록으로 기울기가 잘 학습될 수 있도록 일종의 지름길을 만들어 주었습니다. 지금까지 수고 많으셨습니다. 감사합니다
날씨 데이터를 활용한 태양광 발전연제 측 강의 그 연간 강의 소개를 드리도록 하겠습니다. 네 강사 소개부터 먼저 드릴게요 안녕하세요 1강 날씨 데이터를 활용한 태양광 발전형 예측 강의를 맡게 된 마케팅입니다. 저는 it 분야에서 15년 정도 개발을 하다가 2018년부터 강의를 시작하게 됐습니다. 그때부터도 인공지능 데이터 사이언스라는 분야는 굉장히 흥미로운 분야였습니다. 4년이 흐른 지금은 훨씬 더 구체적이고 실제 활용되고 있는 분야가 많아진 것 같습니다. 배우기 시작한 지 얼마 되지 않은 분들에게는 아직 알아야 할 것이 많다고 생각되지만 차근차근 하나씩 배워 나가다 보면 점점 익숙해지고 잘 활용할 수 있는 도구처럼 느껴지실 것입니다. 그런 의미에서 이 강의가 여러분들에게 도움이 되었으면 좋겠습니다. 우리 과정은 태양광 발전량 예측이라는 문제를 풀어가는데 필요한 기반 지식과 데이터의 수직과 선택 전처리 딥러닝 모델링 모델의 학습과 예측을 담고 있습니다. 강의를 본격적으로 시작하기 전에 데이터의 중요성을 우리가 먼저 이해할 필요가 있습니다. 최근 1년 사이에 자주 등장하는 키워드가 있는데 바로 데이터 중심 ai입니다. 데이터 중심 ai가 무엇인지 먼저 이해하고 가도록 하겠습니다. 1강에서는 데이터 중심 AI 이에 대해서 다루도록 하겠습니다. 모델 중심 ai에서 데이터 중심 ai로 넘어가는 그 과정에서 설명드릴 수 있는 내용들을 1강에서 다루도록 하겠습니다. 앤드류 교수가 설명한 내용들을 중점적으로 설명을 드리는데요. 과거 인공지능 논문에서 볼 수 있는 현상들 모델 중심 ai와 데이터 중심 ai가 어떤 차이가 있는지 AI 모델 성능을 효율적으로 높이는 방법과 데이터의 양과 질의 상관관계 그리고 노이즈가 있는 데이터와 없는 데이터의 차이점 그리고 인공지능과 데이터 시작한지 용어의 차이점에 대해서 차례대로 설명을 드리도록 하겠습니다. 지금까지 인공지능을 배웠던 방법 중에 가장 많이 해왔던 방법은 일단 표준 데이터셋을 다운로드 받고 그 데이터셋을 사용하여 우리가 사용하려는 모델을 학습하고 못 코드를 수정하는 방식으로 인공지능의 성능을 개선하는데 초점을 두었습니다. 이미 어느 정도 적절하게 만들어진 데이터셋을 사용하여 모델 알고리즘에 집중하다 보니 데이터셋의 중요성에 대해서는 잘 인식하지 못하고 코드를 수정해야 되는 성능을 개선된다는 편견을 많이 가지고 있습니다. 2022년에 시작한 지 교수는 딥러닝 ai의 영상을 통해 이 방법이 효율적이지 못한 방법이라고 이야기했습니다. 코드를 수정하는 것보다 데이터를 수정하는 것이 훨씬 성능을 높이는데 도움이 된다는 것입니다. 그렇게 설명하면서 AI 시스템은 코드와 데이터로 이루어져 있다 이렇게 설명을 했습니다. 화면에 보이시는 것처럼 코드와 데이터로 이루어져 있죠. 이 두 가지를 더해서 AI 시스템이라고 정의하는데 우리는 코드에 대한 비중은 굉장히 높게 생각하고 있고 데이터에 대한 비중은 훨씬 낮게 생각하고 있는 것이 현실입니다. 그래서 굉장히 단순 하나의 수식이지만 알고리즘에 집중해서 성능을 개선하려고 하는 편견을 가지고 있는 사람들에게는 어디에 시간을 얼마만큼 사용해야 될지 조언한 한마디인 것 같습니다.이 수식을 여러분들이 계속 좀 기억을 해주셨으면 좋겠습니다. 앤드류 교수는 인공지능 연구의 앱스트랙트 파트만 보면 99% 연구는 모델 개선에 대해 다루고 1% 연구는 데이터 증식에 대해서 다루고 있다고 이야기합니다. 그러면 왜 이렇게 편향적인 연구가 이루어지고 있을까요 그 이유는 표준 데이터셋에 있습니다. 표준 데이터셋은 상대적으로 데이터에 대한 이해가 좋은 부족하고 데이터의 품질을 조금 덜 신경 쓰고 모델의 계산에만 집중해도 될 만한 것들이었습니다. 전처리가 이미 되어 있기 때문에 모델에만 집중할 수 있는 데이터셋입니다. 반면에 우리가 실제적인 문제를 다룰 때는 수집된 데이터의 노이즈가 많이 있고 전처리를 많이 필요하여 그 특징이 많이 다르다는 것을 인정해야 됩니다. 앞의 수식과는 지금요 화면에서 보이는 것이 좀 약간 다르죠. 코드에 대한 부분들을 좀 크게 제가 글자를 써놨고 데이터를 좀 작게 써놨는데 우리가 이렇게 편향적으로 AI 시스템을 바라보고 있다는 것을 제가 이제 요 화면에서 보여드리고 있습니다. 그래서 표준 데이터셋을 많이 사용하다 보면은 너무 표준 데이터셋에 익숙해짐으로 인해서 발생하는 전처리에 대한 무시 전처리를 좀 넘어 적게 분량으로 보는 그런 부분들을 우리가 확인할 수 있습니다. 모델 중심 ai는 데이터는 일반적인 전처리 과정만 진행하고 모델만 반복적으로 향상하는 데 집중합니다. 데이터는 최대한 모을 수 있을 만큼 모으고 데이터에 노이즈가 있더라도 문제가 없을 정도로만 전처리합니다. 물론이 설명은 너무 극단적인 설명처럼 보일지 모르겠지만 ai를 배우는 사람의 입장에서 책에서 그 다음에 강의를 통해서 배우는 사람들이 일반적으로 취하고 있는 현상들을 가리키는 어떤 그런 정입니다. 모델 중심 ai는 우리가 그렇게 하려고 의도를 하지 않았지만 실제적으로 우리가 어떤 형태로 공부하고 있는지 연구하고 있는지를 보여주고 있는 그런 키워드입니다. 반면에 데이터 중심 ai는 모델은 적정한 수준으로 고정하고 데이터의 질을 반복적으로 향상하는 데 집중합니다. 데이터는 일관성 있는 레이블을 유지하는 것이 중요합니다.이는 레이블린 품질까지 살펴봐야 한다는 것을 말합니다. 레이블링의 품질은 데이터를 자세히 살펴보지 않으면 살펴보기 어려운 부분입니다. 이 표는 철강의 결항 검출 태양광 패널 표면 검사를 하는 문제에서 모델을 개선했을 때와 데이터를 개선했을 때 AI 모델의 성능이 얼마만큼 향상되는지를 확인할 수 있습니다. 모든 문제에서 확인할 수 있는 것은 모델을 개선하는 것보다 데이터를 개선했을 때 훨씬 좋은 효과를 보이는 것을 확인할 수 있습니다. 요 가운데 있는 모델 센트릭이라고 되어 있는이 부분을 보시면요. 그 세 가지 모델에 대한 부분들이 다 실제적으로 개선되는 게 0% 0.04% 0%의 성능 개선을 보일 수 있습니다. 모델 센트리거래선 별로 크게 개선되지 않는다는 것을 우리가 확인할 수 있는 것이죠. 반면에 데이터 센트릭이라고 하는 이 부분에서 16.9%, 3.06% 0.04%의 비율을 보시면 상대적으로 모델 센츄리계 방법보다는 성능이 많이 개선되고 있다는 것을 우리가 확인할 수 있습니다. 이번에는 데이터의 양과 질의 상관관계에 대해서 살펴보겠습니다. 상황을 세 가지로 우리가 볼 수 있는데요. 첫 번째는 데이터가 적고 레이블에도 노이즈가 있는 경우이고요. 두 번째는 데이터는 많으나 레이블의 노이즈가 있는 경우입니다. 세 번째는 데이터는 적으나 레이블에 노이즈가 없는 경우 이렇게 세 가지를 가지고 우리가 살펴보도록 하겠습니다. 첫 번째는 데이터가 적다는 의미는 요 x로 표시되어 있는 것이 굉장히 좀 적게 표현되어 있죠. 이것을 우리가 데이터라고 볼 수 있고요. 데이터가 적은 반면에 지금 것을 모델링을 할 때 여러 개의 직선을 우리가 그을 수가 있겠죠. 한 가지의 직선을 극기 원하는 우리 입장에서는 상대적으로 모델링이 어렵다는 것을 우리가 확인할 수 있습니다. 그리고 상대적으로 노이즈가 많다라고도 볼 수 있고요. 자 두 번째 그림에서는 x자 표시로 되어 있는 요것이 많이 표시가 되어 있죠. 그래서 요 x자 표시를 아까 말씀드렸듯이 데이터라고 우리가 이해한다고 하면은 요 데이터를 평균을 내서 그 가운데 점을 지나는데 직선을 긋게끔 이렇게 모델링을 할 수가 있습니다. 자 이런 경우에는 그 레이블에는 분명 노이즈가 있는 편이긴 하지만은 데이터의 평균을 통해서 우리가 모델링 할 수 있는 특징을 가지고 있습니다. 이런 상태에서도 데이터가 많다고 하면은 평균을 통해서 우리가 노이즈를 상쇄시킬 수 있는 그런 효과를 누릴 수 있다는 거죠. 그리고 세 번째는 데이터는 적지만은 레이블링을 일관성 있게 했기 때문에 하나의 곡선으로 우리가 쭉이어서 연결할 수 있게끔 그렇게 되어 있습니다. 그렇기 때문에 실제 데이터가 적으면서도 모델링 하게도 가장 적합한 그런 모델이라는 것을 우리가 확인할 수 있습니다. 이를 통해서 데이터의 일관성과 데이터의 품질이 얼마나 중요한지를 보여주는 그런 사례라고 볼 수 있습니다. 노이즈는 없지만 데이터의 양이 적은 경우와 노이즈는 있지만 데이터의 양이 많은 경우를 우리가 비교해 보도록 하겠습니다. 자 두 데이터셋은 모두 동일한 정확도를 얻을 수 있습니다. 지금 요 사각형 상자 안에 들어가 있는 요 부분을 주목해 보시면요. 붉은색 그래프는 노이즈가 있는 데이터를 의미하고 그다음에 녹색에 있는 요 그래프는 그 노이즈가 없는 깨끗한 데이터를 의미합니다. 상대적으로 가로축이 지금 보시면은 훈련 데이터의 수가 얼마만큼 되는지를 보고 볼 수 있는데 그 깨끗한 데이터가 500개 정도의 데이터를 가지고 있는 경우에 62% 정도의 성능을 보이고 있고 노이즈가 있는 데이터인 경우에는 동일하게 62%의 성능을 보이고 있습니다. 반면에 데이터의 수로는 500개와 1300개 에너지 400개 되는 수준의 데이터의 차이를 보이고 있습니다. 만약에 다양한 케이스를 구별할 수 있는 인공지능 모델을 만들려고 한다면 데이터의 케이스도 다양해져야 되는데 케이스가 늘어날 때마다 학습 시간이 비례해서 늘어난다면 데이터의 수리를 줄이는 것도 중요한 포인트가 될 것입니다. 네이 페이지에서는 인공지능과 데이터 사이언스는 비슷한 의미로 사용할 수 있지만 인공지능이란 단어는 새로운 방법론으로 풀 수 없는 어려운 문제도 척척 풀어낼 것 같은 신비감을 주는 단어로 인공지능을 우리가 꼽을 수 있습니다. 반면에 데이터 사이언스란 단어는 우리가 풀고자 하는 문제는 양질의 데이터를 가지고 문제를 풀어내는 데이터 사이언스라는 것을 우리가 이해할 수 있는 그런 비교표라고 볼 수 있습니다. 인공지능은 막연한 단어로 우리가 이해할 수 있고 데이터 사이언스는 구체적으로 무엇을 가지고 어떻게 문제를 풀어내는지를 설명하고 있는 그런 키워드라고 이야기할 수 있습니다. 그래서 우리는 데이터 사이언스라는 단어를 좀 더 기억하면서 이 과정을 함께 했으면 좋겠습니다. 네 다음 2강에서는 태양광 발전량 예측의 이에 대해서 살펴보도록 하겠습니다. 감사합니다.
안녕하세요 박효신입니다. 2강 태양광 발전형 예측 이에 대해서 이번 시간에 다루도록 하겠습니다. 우리 과정에서 풀어보려는 문제는 태양광 발전량 예측입니다.이 문제를 먼저 정의하고 필요한 지식은 무엇이 있는지 살펴보고 기본적으로 알고 가야 할 개념들에 대해서 이해하고 넘어가겠습니다. 그리고 태양광 발전량 예측에 필요한 데이터는 무엇이 있는지 살펴보도록 하겠습니다. 우리가 풀어볼 문제를 먼저 살펴보겠습니다. 지구의 기후가 점점 변하고 있습니다. 지구의 대기 기온이 올라가면서 태풍의 강도도 강해지고 지역별 시간당 강수량도 늘어난 것을 우리는 경험하고 있습니다. 이런 기후 변화를 막기 위해 화석연료 사용량을 줄여 탄소 배출을 줄이려고 합니다. 화석 연료 대신에 태양광 풍력과 같은 재생에너지로의 전환을 진행 중이긴 하지만 재생에너지는 날씨에 따라 전력 생산량이 변하기 때문에 일정한 전력을 생산하기 어렵다는 단점이 있습니다. 날씨에 따라 변하는 것은 어쩔 수 없다 하더라도 발전량 예측이 가능하다면 다른 방식의 에너지 발전소와 상호 보완이 가능할 것 같습니다. 자 그런 의미에서 날씨에 따른 변화량을 예측해 보도록 하겠습니다. 왼쪽에 있는 데이터 사이언스 벤 다이어그램으로 데이터 사이언스를 위해서 어떤 지식들이 필요한지를 보여주고 있습니다. 첫 번째는 도메인 지식입니다. 도메인 지식은 현재 우리가 태양광 발전량을 예측하는데 예측이 필요한 내용들이 무엇인지 알지 못한다면 첫 단추를 끼우기 어렵습니다. 그래서 우리는 이와 관련된 일사량 일조량 날씨 정보를 나타내는 aws asos 등 전반적인 내용들을 살펴보려고 합니다. 두 번째는 컴퓨터 관련된 지식입니다. 파이썬과 테이 데이터 사이언스 패키진 판다스 넘파이 메플로립 그리고 딥러닝 프레임워크인 텐서플로우까지 사용법에 익혀져야 합니다. 그리고 남은 하나는 수학 및 통계 지식인데 고등학교 수준의 선형대수 확률 및 통계 지식을 필요로 합니다. 이렇게 데이터 사이언스를 이해하기 위해서는 3가지 지식을 고루 갖추고 있어야 된다는 것을 우리가 기억하셔야 됩니다. 그렇기 때문에 데이터 사이언스라면서 이것저것 알아야 될 것이 많기 때문에 좀 부담감을 많이 가지시는 것이 사실입니다. 그리고 또한 세 가지 식의 균형을 잡으면서 균형이 있는 상태에서 3가지씩을 골고루 다 갖추긴 어렵기 때문에 특정한 분야에 대한 부담감을 가질 수 있는데 그런 부담감은 좀 내려놓으시고 우리가 이 과정을 함께 했으면 좋겠습니다. 우리보다 앞서서 이에 대한 연구를 한 사람들이 있는지 살펴봅니다. 다양한 연구들이 있지만 제가 선택한 기준은 최근 논문 중에 어떤 데이터 어떤 모델로 예측하면 결과를 얻을 수 있는지를 설명하는 자료를 활용하고자 했습니다. 그래서 이렇게 3개의 논문으로 정해 봤습니다. 그런데 발전량 예측을 위해서 논문까지 살펴봐야 할까요라는 질문하실 수도 있습니다. 앞에 소개되는 논문을 살펴보면 직접적으로 도움이 되는 내용들도 많이 있으니까 너무 오래 하실 필요는 없을 것 같습니다. 앞에 두 개의 논문은 요약으로 설명을 드릴 것이고 마지막 한 개의 논문은 참조로 살펴보도록 하겠습니다. 그러기 위해서는 우리가 첫 번째 마주치게 되는 단어가 있습니다. 일사량과 1조량이라는 단어입니다. 자 이사량에 대한 정의는 태양광선의 직각으로 놓은 1제곱 cm 넓이에 1분 동안 복사되는 에너지의 양 빛의 세기를 가리킵니다. 반면에 일조량이라는 단어는 일정한 면적의 비치는 태양광선의 양으로 태양광선이 구름이나 안개로 가려지지 않고 땅 위를 비추는 시각적으로 느껴지는 밝기를 의미합니다. 따라서 우리에게 태양광 발전량을 예측하기 위해 필요한 것은 일사량입니다. 대한민국에서 일사량은 하루 중에 태양이 정남쪽 하늘이 있을 때 12시 30분 무렵이 최대가 됩니다. 1년 중에는 하진 6월 23일 경에 최대가 됩니다. 태양의 고도가 높으면 지표면에 도달하기까지 통과하는 대기의 두께가 얇기 때문에 일사량이 증가하게 됩니다. 국소적인 일사량은 지역에 따라 큰 차이를 보이는데 산이나 거대 구조물 등의 지형에 의한 그림자의 영향을 받을 수도 있습니다. 따라서 태양광 발전소가 위치한 지역의 일사량 정보를 참조하면 제일 좋습니다. 반대로 지역별 일사양 정보를 통해 태양광 발전소의 위치를 선정할 수도 있습니다. 자 아래 있는 부분은 태양광 발전에 영향을 미치는 특징 분석을 통한 영감 발전량 예측에 관한 연구 논문의 한 부분을 참조한 내용입니다. 태양광 발전에 있어 가장 큰 영향을 미치는 요소는 일사량입니다.라고 설명을 하고 있고요 옛사랑의 증가하면 대기 온도와 태양광 모듈 온도가 함께 증가합니다. 자이 논문에서 밝힌 부분은 대기 온도와 태양광 모듈 온도와의 상관관계에 대해서 설명하고 있습니다. 실제 우리가 대기 온도를 사용하긴 하지만 그 대기 온도와 태양광 모듈의 온도가 동일하지 않을 수 있다는 것을 우리가 좀 염두에 두실 필요는 있습니다. 태양광 모듈의 온도가 증가하면 발전 효율이 낮아지고 풍속이 증가하면 발전 효율이 높아집니다. 자이 얘기는 뭐냐면요. 풍속을 통해서 뜨거워졌던 태양광 모듈의 온도가 낮아짐으로 인해서 발전 효율이 높아지고 그리고 너무 온도가 낮아도 태양광 모듈의 온도가 낮아도 발전 효율이 좋지 못하다는 것을 우리가 알 수 있는 그런 대목입니다. 그래서 그이 논문을 통해서는 요 세 가지 내용을 참조해 보시면 될 것 같습니다. 첫 번째로 살펴볼 데이터는 기상 위성 데이터입니다. 국소적인 일사량이라고 제목이 되어 있는데 기상위성 데이터에서 하향 단파 복사라는 이름으로 되어져 있습니다. 자이 하향 단파복사란 데이터는 일사량과 상관관계가 굉장히 높은 그런 데이터입니다. 그래서 그 국소적인 일사량은 그럼 어떤 데이터를 수집하면 될까요 이제요 데이터를 위해서 우리가 하얀 단파 복사를 사용하도록 하겠습니다. 태양으로부터 지구로 도달하는 복사를 태양 복사 또는 단파 복사라고 합니다. 태양으로부터 지구로 내려오는 방향을 단파복사라고 정의를 했습니다. 자 오른쪽 이미지는 천리안 위성 벤 다이어그램으로 촬영된 하향 단파 복사입니다. 천리안 위성 벤 다이어그램으로 이전에 그 이전에 우리나라 위성이 있었죠 그때는 일사량이란 이름으로 정의되어 있는 데이터가 있었는데 천리안 위성 eao에서는 하향 단파복사라는 이름을 사용합니다. 이 데이터는 일정한 넓이의 영역에 하나의 픽셀로 고유한 값을 갖도록 설정되어 있는 데이터입니다. 지상관측 데이터는 asos와 aws 두 종류가 있습니다. 먼저 asos 데이터에 대해서 설명을 드리면 ass 데이터는 존강 규모의 날씨를 파악하기 위해 정해진 시각의 모든 관측소에서 같은 시각의 실시하는 지상 관측을 말합니다. 여기서 종간규모란 일기에도 표현된 보통의 고기압이나 저기압의 공간적 크기 및 수명을 말하며 매일 날씨 현상을 뜻합니다. 제공 기간은 1904년부터 측정을 시작했지만 관측을 시작한 시점은 지점별로 그리고 요소별로 다를 수 있습니다. 그리고 제공 요소는 기온 강수 바람 기압 습도 일사 1조눈 구름 시정지면 상태지면 초상 온도 일기 현상 증발량 현상 번호 등의 다양한 데이터를 가지고 있습니다. 전국에는 백 세 개의 제공 지점이 있고 원하는 지점이 없는 경우에는 제공 요소가 aws 존재한다면 aws의 보안하는 형태로 사용을 하고 있습니다. 세 번째는 aws 데이터입니다. aws 데이터는 asos 지점이 설치되지 않은 위치에 관측 공백 해소와 국지적인 기상 현상을 파악하기 위해 설치되었습니다. aws는 과거의 사람이 직접 관측하던 것을 자동으로 관측할 수 있도록 설계한 장비로 실시간 측정 연산 저장 표출 등의 정보를 수집할 때 모든 과정을 자동으로 처리합니다. 제공 기간은 1997년부터 제공하며 aws 또한 지점별 요소별로 다릅니다. 제공 요소는 기온 강수 바람 기압 습도 등으로 상대적으로 ass 데이터에 비해서 상대적으로 적은 요소를 제공하고 있습니다. 반면에 제공 지점은 510개로 ass 데이터보다 훨씬 많은 지점을 제공하고 있습니다. 자 이렇게 기상위성 데이터 단파복사 데이터를 받기 위해서는 3단계로 진행을 해야 됩니다. 첫 번째가 단파복사 데이터의 조회 단계입니다. 기상청에 기상자를 개방 포털이라는 홈페이지로 들어가셔서 데이터를 선택해 주시고요 중앙에 있는 그 메뉴입니다. 중앙에 있는 메뉴에 데이터를 선택해 주시고 데이터를 선택하시면 좌측에 메뉴가 변경이 되는데 기상 위성 페이지를 우리가 확인할 수 있습니다. 기상 위성을 선택해 주시면 하위 페이지로 천리안 위성 eao에 대한 페이지를 우리가 확인할 수 있습니다. 자 이렇게 선택을 하시면 화면 가운데에 검색 조건에 대한 부분들을 우리가 확인할 수 있습니다. 그래서 자료 구분으로는 기본 산출물로 우리가 변경을 해 주셔야 되고 기본 산출물 중에서 단파 복사를 체크해 주시면 됩니다. 물론 단파 복사에는 하향 단파 복사만 있는 것이 아니고 여러 가지 단파 복사 조건들이 있는 데이터를 가지고 있습니다. 그리고 자료 형태는 내 cdf라는 타입으로 우리가 선택을 해주셔야 됩니다. 메시데이프 말고 이미지로 우리가 받을 수 있는데 이미지로 받는 것보다는 내 cdf로 받으시는 것이 훨씬 수월합니다. 영역은 한반도로 체크해 주시고 그다음에 데이터가 필요한 구간에 대해서는 한 번에 최대 5일까지로 설정을 하실 수가 있습니다. 이렇게 설정을 하신 다음에 시간대는 전체 시간대로 설정을 해주시고 조회 버튼을 눌러주시면 우리가 필요한 데이터를 조건에 따라서 설정할 수가 있습니다. 두 번째 단파 복사 데이터 담기 단계입니다. 여기에서는 앞에서 신청했었던 그 자료의 목록들을 우리가 확인해 볼 수 있습니다. 먼저 담기 버튼을 눌러주시기 이전에 체크박스를 선택을 해줍니다. 체크박스를 선택해 주시면 아래 있는 목록들을 한꺼번에 선택할 수가 있습니다. 그런 다음에 담기 버튼을 눌러주시면 선택되어진 리스트들을 우리가 신청 대기 목록에다 담아 주게 됩니다. 자 그런 다음에 대용량 자료 신청 대기 목록으로 이동을 하도록 하겠습니다. 자 세 번째 단계 단파복사 데이터 자료 요청 단계입니다. 자 여기서는 앞에서 대기 목록에 집어넣던 목록들을 지금 요기 이렇게 리스트에서 확인해 볼 수가 있습니다. 그래서 체크박스를 먼저 선택을 해주시고 체크박스를 선택하신 다음에 자료 요청을 눌러 주시면이 목록을 자료 요청으로 보내 주게 됩니다. 근데 주의하실 것은 만약에 5일간의 데이터를 담았다고 하면은 5일간의 데이터는 24시간으로 되어 있기 때문에 총 120개로 되어 있습니다. 근데 한 페이지에 최대로 볼 수 있는 신청 건수가 40권으로 되어 있습니다. 그래서 체크박스를 한번 누르셨을 때요 한 번에 누름으로 인해서 40권의 선택되어졌기 때문에 아래 보시면 페이지가 보이실 겁니다. 그래서 페이지를 이동해 가면서 40권씩을 추가로 세 번 누르셔야 됩니다. 만약에 이와 같은 방법이 좀 불편하고 장기간의 데이터를 한꺼번에 다운로드 받으시려면 국가 위성 센터 홈페이지를 통해 다운로드를 추천드리도록 하겠습니다. 네 번째는 단파복사 데이터 ftp 설정 입력입니다. 기상청 ftp를 선택하고네 이렇게 기상청 ftp를 선택해 주시고 아래에서 자료를 다운로드 받으시려는 수단을 선택을 해 주셔야 되는데 이메일로 체크해 주시면 가장 좋습니다. 이렇게 이메일이나 sms를 체크했을 때 어떤 데이터를 우리가 확인을 받을 수 있냐면요 ftp의 주소와 아이디와 비밀번호와 포트 번호를 전달 받게 됩니다. 바로 요청을 했다고 해서 바로 메일이나 sms가 오는 것이 아니고 시간이 일정 시간 주어져야 되는 것을 우리가 좀 유념하셔야 될 것 같고요 그리고 이와 같은 과정들을 진행하시려고 하면은 회원 가입이 먼저 되어 있으셔야 됩니다. 그래서 회원가입이 되어 있지 않으시다고 하면은 회원가입부터 먼저 진행해 주시기 바랍니다. 예 다섯 번째는 단파복사 데이터 FTP 접속 주소 확인 단계입니다. 메일을 통해서 이와 같은 내용을 확인할 수 있습니다. 제가요 안쪽에 있는 부분은 붉은색 박스로 이렇게 그 쳐놨는데 이 위치에 사이트 주소의 주소하고 아이디하고 비밀번호가 채워져 있을 것입니다. 그리고 주의하실 것은 계속해서 이 아이디와 비밀번호로 사이트를 접속할 수 있는 상황은 아니고 유효기간이 정해져 있기 때문에 이 유효기간 안에 접속을 하셔서 다운로드 받으시는 것을 요청을 좀 드리도록 하겠습니다. 네 우리가 실습에 사용할 단파 복사 데이터에 대해서 설명을 드리도록 하겠습니다. 앞에서와 같이 하향 단파복사 데이터를 다운받기 위해서는 시간과 저장 공간을 많이 필요로 합니다. 실제로 우리가 그 실습에서 사용할 데이터는 2020년 3월에서부터 12월까지의 데이터입니다. 총 10개월이 데이터인데이 기간의 데이터를 다운로드 받으실 경우에는 NC 파일을 용량이 100gb를 넘게 될 것입니다. 그렇기 때문에 본 강의에서는 그 많은 대용량의 파일을 다운로드 받기 어렵기 때문에 사이트를 통해서 파일을 제공해 드리도록 하겠습니다. 그래서 정리되어져 있는 NC 파일을 다운로드 받아서 CS 파일로 변환되어 있는 파일을 여러분들의 제공 드리려고 하고 있습니다. 이번에는 기상 관측 데이터에 대해서 설명을 드리도록 하겠습니다. 동일하게 기상청 기상자료 개방 포털 사이트에서 데이터를 선택해 주시고 그다음에 기상 관측을 선택을 해 주시게 되면 그 안에 지상이 보이실 거고 그 안쪽에 종광 기상 관측 ass라는 항목을 우리가 확인해 보실 수 있습니다. 이렇게 선택을 해서 들어오시게 된다면 오른쪽에 보이시는 이와 같은 화면을 보실 수가 있습니다. 그래서 자료 형태는 시간 자료를 선택을 해 주시게 되고요 그 다음에 지점은 제주도를 선택을 하도록 하겠습니다. 아직 설명을 드리진 않았지만 우리가 예측하는 지역에 대해서는 제주도로 선정되었음을 미리 말씀을 드리도록 하겠습니다. 그래서 제주도에 지점이 총 여섯 개가 있습니다. 고산 서귀포 성산 성산 성산포 제주 이렇게 6개 지점이 있지만 지점 상세보기가 없는 성산 187과 성산포 265가 있는데 여기에는 데이터가 존재하지 않습니다. 그래서 지점 상세 보기가 있는 고산과 서귀포 성산과 제주지점만 asos 데이터를 받을 수 있음을 여러분들이 기억하실 필요가 있을 것 같습니다. 자 이렇게 지점을 정의해 주시고 그다음에 데이터를 어떤 것을 받을 거냐라고 했을 때 기온 데이터와 강수량 데이터 풍속 풍향 습도 일사 데이터를 우리가 다운로드 받을 수 있습니다. asos 데이터에서도 일사량 데이터를 받을 수 있는데 앞에서 하향 단파복사 데이터를 위성 데이터를 사용할 것이기 때문에이 일사 데이터는 참조하는 데이터로 사용하셔도 무방할 것 같습니다. 자 이렇게 데이터를 선택하시고 조회 버튼을 눌러주시고 그 다음에 조회가 뜨게 되면은 아래와 같이 리스트를 우리가 확인해 볼 수 있습니다. 자 이렇게 리스트를 확인하면 최대 10권만 표출된다는 것을 우리가 기억하시고 10권의 데이터를 확인하신 다음에 csv 버튼을 눌러주시면 csv 파일로 내 컴퓨터에 저장되게 됩니다. 예 이번에는 지상관측 데이터 aws 데이터 받기를 보도록 하겠습니다. 이 방법은 앞에서 설명드렸던 asos 데이터하고 비슷합니다. 지상까지는 동일하고요. 방제 기상 관측 aws 데이터를 선택해 주시면 오른쪽과 같은 화면을 보실 수가 있을 것입니다. 자료형태는 시간 자료로 변경을 합니다. 참고로 시간짜리 말고 이것은 주욱 데이터하고 월 데이터로 우리가 확인을 해 보실 수 있는데 우리가 받는 데이터는 1시간 단위의 자료인 시간 자료 데이터로 받도록 하겠습니다. 자 그런 다음에 아래 지역을 보시면은 제주도를 체크해 주시고요. 그다음에 aws 데이터는 기압 데이터를 제외하고 전부를 체크해 주시면 될 것 같습니다. 자 이렇게 체크하신 다음에 위의 기간이 있죠. 기간은 3월부터 12월까지 이렇게 2020년 3월 1일부터 12월 31일까지를 지정해 주시면 될 것 같습니다. 그리고 잊지 마셔야 될 것은 시간이 0시부터 23시까지로 되어 있다는 거 요거를 점검을 해주시고 조회 버튼을 눌러주시면 됩니다. 그럼 동일하게 또한 아래 리스트가 뜨게 될 것이고 그 리스트를 확인하시고 csv 버튼을 누르시면 내 컴퓨터 안에 csv 파일로 저장이 될 것입니다. 네 다음 3강에서는 태양광 발전형 예측의 이에 두 번째 편에 대해서 살펴보도록 하겠습니다. 감사합니다.
네 안녕하세요 파킨슨입니다. 3강 태양광 발전량 예측의 이해에 대해서 두 번째 시간으로 다루도록 하겠습니다. 이번 3강에서는 고전적인 통계 기법을 통한 예측 모델을 살펴보고 선행 태양광 발전형 예측 논문 분석을 투표를 하도록 하겠습니다. 그리고 제주도의 태양광 발전형 예측량을 예측해 보는 그런 과정으로 순서를 진행하도록 하겠습니다. 이강을 통해서 우리가 사용하고자 하는 데이터는 위성 하향 단파 복사 asos 데이터 aws 데이터라는 것을 확인했습니다. 그러면 이 데이터를 가지고 어떤 인공지능 모델에 적용할 수 있을까요. 우리가 사용하는 데이터는 12월 데이터입니다. 12월 데이터의 특징은 일정 시간 간격으로 배치된 데이터들의 수요를 말합니다. 아직까지 일반적으로 12월 데이터에 대한 처리는 고전적인 통계기법인 자기 회기 이동평균 자기 회기 누적 이동평균과 같은 고전적인 통계기법을 이용하여 에너지 발전량을 예측했습니다. 하지만 이런 방법들은 시계열 데이터가 빅데이터가 되고 예측값이 비선형적인 특성을 갖는다면 그렇게 좋은 방법은 아닐 것 같습니다. 제가 이제 설명을 자기획이나 이동평균이나 자기 획이 누적 이동평균으로 설명을 드리면 상대적으로 통계적인 내용들을 좀 많이 아셔야 되는 기본 지식들을 좀 많이 아셔야 되는 그런 상황이기 때문에 배우시는 분들도 굉장히 좀 부담스러워 하시는 그런 특징들도 좀 있습니다. 그래서 딥러닝과 통계적인 방법의 차이는 통계적인 기법은 수학적인 지식들을 많이 가지고 있어야 되고 상대적으로 딥러닝 같은 경우는 데이터를 잘 걸러내서 좋은 데이터를 가지고 딥러닝 모델에다가 집어넣게 되면 좋은 결과를 보인다는 또 다른 특징들의 있다는 것을 우리가 기억하실 필요는 있을 것 같습니다. 살펴보도록 하겠습니다. 먼저 살펴볼 논문은 1조 시간과 1주랑 데이터를 고려한 lstm 기반 태양광 발전형 예측 논문입니다.이 논문에서는 lstm 모델을 사용하고 있습니다. 그리고 rna 가지고 있는 장기 의존성 문제를 해결하고자 에스팀 모델을 사용하였습니다. 자이 장기 의존성 문제에 대해서는 뒤의 강의에서 설명을 드리도록 하겠습니다. 머신러닝과 딥러닝 모델을 비교하여 딥러닝 모델이 더 정확하다고 밝히고 있습니다. 저도 이제 머신러닝과 딥러닝 모델을 어떻게 비교할지에 대해서 살짝 고민했었는데 실제 이 논문에서 머신러닝과 딥러닝 모델을 비교하고 딥러닝 모델이 더 성능이 우수하다는 것을 미리 이야기하고 있기 때문에 상대적으로 우리가 실험해야 될 어떤 그런 부분에 대해서를 많이 좀 덜어낼 수 있는 측면들이 있습니다. 계절점 평균 태양광 발전량은 여름 봄 가을 겨울 순으로 나타났다고 밝힙니다. 그리고 전라남도 영암지역에 2019년도 일조시간 일사량 발전량 데이터를 통해서 예측을 하고 있다는 것을 밝히고 있습니다. 입력 데이터는 1조 시간과 일사량 정보를 사용합니다. 반면에 1조 시간과 일사량의 데이터는 단위가 서로 다르고 크기가 다르기 때문에 데이터를 정교해야 된다고 이야기하고 있습니다. 여기선 데이터 정교하기 위해서 민맥스 스케일을 사용합니다. 정교화를 하는 이유는 1조 시간과 잇사양이 서로 다른 단위를 갖고 있는 숫자인데이는 절댓값으로 서로 비교할 수 없습니다. 따라서 값의 분포 범위를 동일하게 0에서 1 사이의 스케일로 동일하게 맞춰주면 단위는 다를지라도 스케일로 비교할 수 있게 만들어 줍니다. 만약 스케일이 다르다면 스케일이 큰 값이 모델이 더 많은 영향을 주게 되므로 정교를 하면은 이에 대한 영향을 줄여주는 효과가 있습니다. 두 번째 설명드린 논문은 아래는 lstm을 이용한 태양광 발전량 단기 예측 모델입니다. 태양광 발전량 예측 모델에는 실시간으로 발전량을 예측하는 초단기 예측 다음날인 20세간 24시간 앞에 발전량을 예측하는 단기 예측이 있습니다. 본 논문은 2013년부터 2015년까지 시간별 기상 데이터와 영암 태양광 발전소에 시간별 발전량 데이터를 이용하여 단기 예측 모델을 재현하였습니다. 3년치의 데이터를 사용했다고 이야기를 하고 있죠. 기상 데이터는 기온 강수량 풍향 습도 풍속 물량 등의 기상 요소를 이용하였습니다. 예측 위한 모델은 dnn r에는 lsm 등의 모델들을 비교 분석했습니다. 태양광 발전 예측 요소는 기상요소와 지리요소 설비 요소 등이 있다고 이야기를 합니다. 태양전지는 반도체이므로 적당한 온도를 유지해야 하며 기상요소의 가장 많은 영향을 받는다고 이야기합니다. 위도 경도 해발 높이 등이 있습니다. 설비 요소로는 고정형 고정 가변형 추적형 등 태양광 패널이 움직임 여부와 축전지 및 전력 변환장치의 효율 등의 영향을 받는다고 이야기를 합니다. 본 논문은 기상 요소만을 활용했습니다. 기상청에서 1조 및 일사량은 예보하지 않기 때문에 예보되는 기상 요소를 이용하여 1조 및 일사량을 예측합니다. 이렇게 예측된 일종의 일사량을 이용하여 태양광 발전량을 예측한다고 합니다. 성능 평가 기준은 rmse 루트 민스케어 에러죠 mae 민 앱솔루트 에러를 사용하도록 하겠습니다. 아래 그림을 보시면은 단계를 우리가 볼 수 있죠 조도 및 일상을 예측하는데 사용했던 데이터는 기온 강수량 풍향 풍속 습도 물량 데이터를 이용해서 조도 및 일사량을 예측하도록 하겠습니다. dnn과 rn은 lstm 3가지 모델을 비교해서 어떤 모델이 가장 좋게 결과가 나온지를 확인하는 과정들이 논문 안에 포함되어 있습니다. 이렇게 예측된 일사량 데이터를 이용해서 안에다가 집어넣죠 조도하고이 사람 데이터를 이렇게 집어넣고 앞에서 봤던 날씨 데이터를 같이 집어넣어서 태양광 발전량 예측을 합니다. 이때 사용하는 태양광 발전의 예측 모델에는 동일하게 dnn 아래는 lstm 모델을 사용하고 있습니다. 앞에 살펴보신 내용을 바탕으로 우리도 태양광 발전량을 예측해 보도록 하겠습니다. 일단 데이터를 수집하기 수월한 지역으로 제주도가 있습니다. 제주도가 있다는 것은 저도 공공데이터 포털을 통해서 이 지역과 저 지역을 많이 살펴보고 그 데이터를 통해서 제주도를 선정했습니다. 앞에 논문들과는 다르게 영역이 상대적으로 넓죠. 넓기 때문에 여러 지역에 기상 데이터를 가져와야 합니다. 데이터가 태양광 발전형 예측의 가장 크게 영향을 준다고 합니다. 이것은 관련된 논문들을 통해서 확인할 수 있었습니다. 따라서 일사량 데이터는 태양광 발전소 해당 지역의 것을 사용하기 위해 기상위성인 천리안 eao의 하향 단파 복사 데이터를 사용하도록 하겠습니다. 다음 강에서는 탐색적 데이터 분석에 대해서 살펴보도록 하겠습니다. 감사합니다.
네 안녕하세요. 4강에서는 탐색적 데이터 분석 첫 번째 시간에 대해서 다루도록 하겠습니다. 이번 4강에서는 태양광 발전소 데이터를 전처리하고 주소 값을 위도 경도로 변환하고 지도상에 시각화하는 과정을 진행하도록 하겠습니다. 자 첫 번째로 태양광 발전소 현황 전처리에 대해서 다루도록 하겠습니다. 제주도의 태양광 발전소 현황을 지도에 시각화 제주도는 태양광 발전소 현황을 지도상의 시각하려면 어떻게 해야 될까요 가장 먼저 던진 질문은 어떤 데이터가 필요한가입니다. 태양광 발전소의 위치를 가지고 있어야 합니다. 그리고 설비 용량이나 사업 개시를 가지고 있으면 좋을 것 같습니다. 이런 데이터를 어디에서 찾을 수 있을까요 데이터 사이언스를 위해 공공데이터를 많이 가지고 있는 공공데이터 포털 홈페이지로 가보도록 하겠습니다. 제주도 태양광 발전소 현황 데이터 받기 자 보이시는 요 페이지는 공공데이터 포털 페이지인데 여기서 검색을 태양광 발전소 현황 앞에다가 제주도까지 붙여주면 더 검색이 쉬울 것 같습니다. 이렇게 검색을 해주시면 화면에 보이시는 것 같이 이와 같은 페이지를 우리가 검색하실 수가 있습니다. 자 이렇게 태양광 발전소 현황에 대해서 csv 파일을 가지고 있고이 파일을 우리가 다운로드 버튼을 눌러서 내 컴퓨터에 다운로드 받도록 하겠습니다. 참고로 이 페이지를 찾기 어르신 분들을 위해서 아래 링크 주소를 붙여 놨으니까요 주소를 참조하시길 바랍니다. 자 csv 파일에 대해서 좀 생소하신 분들을 위해서 csv 파일에 대해서 설명을 드리고 가도록 하겠습니다. 자 csv 파일을 위키피디아에서는 아래와 같이 설명하고 있습니다. 몇 가지 필드를 쉼표로 구분한 텍스트 데이터 및 텍스트 파일이다라고 설명을 하고 있습니다. csv란 이름이 콤마 세퍼레이티드 밸류스라고 되어있는 요 이름으로 되어 있습니다. 그리고 csv하고 유사하게 tsv라는 파일도 살펴볼 수 있습니다. tsv는 콤마 대신에 앞에 탭이 들어갑니다. 탭사퍼레이티드 밸류라고 해서 만약에 밸류와 밸류 사이에 탭을 집어넣게 되면 그 탭을 통해서 구별자로 사용해서 밸류 값을 구분하는 어떤 그런 파일 형식이라고 보실 수 있습니다. 자 그리고 아래에서 이제 이와 같이 csv 파일을 만들었다고 우리가 가정하겠습니다. 연도 제조사 모델 설명 가격 이렇게 돼 있고 연도 뒤에 콤마 제조사 디에콤마 모델데 이런 식으로 콤마로 그 간격들을 구별을 해주게 된다고 하면은 이와 같은 표로 나타나게 됩니다. 자 요런 식으로 우리가 정의되어 있는 파일 포맷이 csv8 포맷입니다. 자 이런 포맷들은 엑셀과 같은 스프레드시트 프로그램을 통해서 쉽게 확인할 수 있다는 것도 기억해 두실 필요는 있을 것 같습니다. 제주도 태양광 발전소 현황 데이터 읽기 자 다운로드 받은 파일을 파이썬에서는 판다스의 리드 언더바 csv라는 함수를 통해서 열 수가 있습니다. 주의할 점은 공공데이터 포털에 저장되어 있는 텍스트의 엔코딩 포맷이 cp949로 되어 있다고 하는 것입니다. 한글이 들어가 있는 csv 파일의 경우에는 반드시 엔코딩을 신경을 쓰셔야 됩니다. 엔코딩 자체가 cp949로 되어 있는 포맷이 있을 수도 있고요 또 다른 포맷이 있을 수 있으니 m코딩을 확인해 보시고 이 파일로 읽었을 때 이 엔코딩을 읽었을 때도 만약에 한글이 깨진다고 하면은 다른 포맷으로 읽어보실 필요가 있습니다. 근데 지금요 데이터는 cp949로 읽으시면 정상적으로 읽으실 수가 있습니다. 자 이렇게 리드 언더바 csv 파일에 첫 번째 인자값에 인수값에는 파일명을 넣어 주시고요. 그다음에 두 번째에 n코딩을 넣어주시면 정상적으로 이렇게 csv 파일을 읽으실 수가 있습니다. 자 두 번째 확인해 보실 부분은 뭐냐면요. 데이터프레임에서mpo라는 함수를 이용해서 그 데이터 안에 결측값이 있는지를 확인해 보시는 내용입니다. 자 인포로 확인해 보시면은 첫 번째가 컬럼 명을 우리가 확인해 보실 수 있습니다. 자이 csv 파일에는 컬럼이 총 8개로 구성되어 있다는 것을 확인할 수 있습니다. 그중에서 우리가 관심있게 봐야 될 부분이 사업 계실일 것입니다. 자 그 다음에 두 번째로 보실 부분이 난 널 카운트라고 하는 부분입니다.이 난놀이라고 하는 것은 비어져 있는 결측치가 있는지를 알려주는 겁니다. 전체 데이터가 2148개로 구성되어 있고 그 2148개가 하나도 난 널이 아니다.라고 표현할 때는 난 널이라고 이렇게 표현이 되어 있죠. 근데 사업 계시를 보시면은 1571개만 난 널리고 나머지 것들은 널 데이터라고 하는 것을 알 수 있습니다. 그 얘기인즉 사업 개시일에 데이터가 비어 있다는 내용입니다. 그래서 결측값을 우리가 처리해 드릴 필요가 있다는 것을 인포 함수를 통해서 확인할 수 있습니다. 그리고 D 타입이라고 되어 있는 부분은 컬럼에 있는 요 데이터의 타입이 무엇인지를 확인할 수 있습니다. 오브젝트로 표시되어 있는 요 부분은 문자열을 이야기를 합니다. 행정시는 문자열이고음면 동도 문자열로 데이터로 되어 있습니다. 사업 개시일도 문자열 데이터로 되어 있다는 것을 우리가 알 수 있죠. 자 이렇게 결측값을 우리가 확인하신 다음에 결측값을 제거하도록 하겠습니다. 사업 개시일이 없는 데이터는 우리한테 의미가 없는 그런 데이터입니다. 실제적으로 사업계의 경우에는 사업개실이 비어 있는 경우도 있습니다. 그 데이터는 우리가 필요한 데이터가 아니기 때문에 삭제를 하도록 하겠습니다. 삭제할 때 사용하는 함수는 드랍 na라고 하는 함수입니다. 그리고 엑시스를 0으로 설정해 주신 것을 잊지 않으셨으면 합니다. 자 이렇게 설정하시면 비어 있는 중간중간에 비어있는 발전소 데이터들을 삭제해 줍니다. 상태 이상 수정 자 그리고 또한이 데이터를 보다 보면은 상태 이상치를 우리가 확인할 수 있습니다. 상태에서 공사 진행이나 인허가로 되어 있는 어떤 그런 필들이 있습니다. 상태가 사업계시가 아닌 것들을 찾아라라고 검색을 해보면은 이렇게 공사 진행 인허가로 되어 있는 것을 우리가 찾아볼 수가 있습니다. 그런데 이상한 것은 사업 개시일이 존재한다는 것입니다. 사업계실이 존재하는데 상태가 공사 진행이거나 인허가일 수는 없습니다. 단계로 봤을 때는 허가가 먼저 일어나고 허가한 다음에 실제 공사가 진행된 다음에 공사가 다 마치게 되면은 사업개시가 되면서 사업계시대의 의미가 있는데 공사진행 중인데 사업 개시가 된다는 좀 말이 안 되는 그런 데이터의 특성을 가지고 있습니다. 이는 인터넷에서 데이터 검색을 통해서 뉴스 검색을 통해서 실제이 발전서가 완공이 되어 있는지를 확인해 볼 수 있습니다. 아래 링크 주소를 제가 붙여놨는데 이 주소를 찾아가 보시면은 여기에 있는 발전수들이 실제 운영이 되고 있다는 것을 준공기사를 확인할 수 있습니다. 그래서 요 상태는 데이터 오류라고 판단되어지고 이로 인해서 사업계시록 바꾸도록 하겠습니다. 네 그 다음에 이제 사업 개시일의 데이터 타입을 오브젝트 타입에서 데이트 타임 필드로 타입으로 바꾸도록 하겠습니다.이는 데이터를 우리가 걸러낼 때 기간으로 선정해서 필터링 할 때 매우 요긴하게 사용할 수 있는 특성을 주게 됩니다. 그래서 날짜 타입으로 데이터 타입을 변경하도록 하겠습니다. 근데 데이터를 보다 보니까 좀 이상한 것이 보입니다. 파일명에는 분명히 태양광 발전소 발전량에 대한 어떤 그런 부분들을 나타날 수 있었는데 지금요 상호에서 보시면은 풍력 발전 단지 풍력발전단지 이렇게 표기되어 있는 것을 우리가 확인해 볼 수 있습니다. 이 데이터 파일을 좀 자세히 살펴보다 보니까 파일명에는 태양광 발전소라고 되어 있지만 실제적으로는 신재생 에너지를 다 포함하고 있는 그런 데이터로 해석이 됐습니다. 그래서 실제 이 가운데에서 태양광 발전소를 다시 걸러내야 되는 어떤 그런 작업이 필요하다는 것을 알 수 있습니다. 제주도 신재생 에너지 발전시설 현황 읽기 그래서 앞에서 다운 받았던 파일이 가장 좋은 파일인지를 살펴보기 위해서 신재생 에너지 발전시설 현황이라는 이름으로 다시 한번 검색을 해서 그러면은 이 신재생 에너지 발전 시설 현황을 통해서 발전소에 유형을 우리가 확인하기 위해서 csv 파일을 다운로드 받도록 하겠습니다. 자 이 파일을 다운로드 받으시면요 동일하게 리더 언더바 csv 함수를 통해서 파일을 여시면 됩니다. 그래서 앞에와 다르게 데이터프레임 2 df2라는 이름으로 데이터프레임을 읽어오게 되고요. 엔코딩 타입은 cp949로 설정을 해 주셔야 되는 거고요. 그래서 앞에 억은 다르게 지금요 파일도 제주지역 전체의 신재생 에너지의 발전 현황을 우리가 볼 수 있습니다. 앞에 파일하고는 좀 다른 것은 원동력 종류가 있어서 태양광을 쉽게 걸러낼 수 있다는 것이죠. 그런데 두 개의 발전소 파일을 우리가 비교를 하다 보니까 태양광 발전만 걸러낸다 하더라도 발전소의 개수가 56개가 차이 나는 것을 확인할 수 있습니다. 자 그러면은 이제 여기서 좀 혼란스러운 좀 일이 발생을 하죠. 그럼 어떤 파일을 믿어야 되는지 어떤 데이터가 현재 제주도에 태양광 발전소 현황에 좀 더 근접한 데이터인지를 우리가 확인해 보실 필요가 있습니다. 자 그러기 위해서 저는 2019년 12월 기준으로 작성되어져 있는 6차 제주도 지역 에너지 계획이라는 PDF 파일을 좀 참조했습니다. 이 파일은 제주도 에너지공사 홈페이지에 들어가서 다운로드 받았던 파일입니다. 그래서 그 파일 중에 있는 그 내용인데 811개소 중에서 245kw 분량의 발전소가 운전 중이라는 것을 우리가 확인할 수 있습니다. 그래서 이 데이터와 가장 부합되는 그런 데이터를 찾아보다 보니까 두 번째 다운로드 받았던 파일이 우리하고 가장 부합되는 것을 확인할 수 있습니다. 자 그래서 원동력 종류를 태양광으로 필터링을 하고 그 데이터는 우리가 리스트를 확인해 보도록 하겠습니다. 그랬더니 앞에서 이야기했던 제주도 PDF 분수하고 동일하게 811개의 태양광 발전소가 검색되어지는 것을 확인할 수 있습니다. 설비 용량도 앞에서 이야기했던 것과 비슷한 용량을 가지고 있습니다. 아마 그 차이는 운영이 중단된 발전소를 표시하지 않은 그런 차일 것으로 짐작이 됩니다. 네 두 번째로 태양광 발전소 위도 경도 구하기를 진행하도록 하겠습니다. Geopy패키지로 위도 경도 변환 자 태양광 발전소 위도 경도를 구하기 위해서 지오파이 패키지를 활용하도록 하겠습니다. 물론 지오파이 패키지 말고도 위도 경도를 가져올 수 있는 방법은 여러가지가 있습니다. 카카오 지도나 네이버 지도를 활용해서 위도나 경도를 받아올 수 있지만 이 지도 서비스는 개발자 등록을 해야 사용할 수 있는 서비스라서 우리는 지오파이 패키지를 활용하도록 하겠습니다. 근데 이 지오파이 패키지의 단점이라고 하는 것은 한글 지명을 넣었을 때 한글 지명이 100% 호환되지 않음을 확인할 수 있었습니다. 그래서 첫 번째로는 한글 지병을 집어넣어서 우리가 위도 경도를 구할 것입니다. 근데 만약에 그 주소가 정상적으로 위도와 경도를 얻어올 수 없는 그런 주소라고 하면은 그 한글 주소를 영문으로 변경하여서 그 변경된 영문 주소를가지고 다시 한번 위도 경도를 구하는 방식으로 보완을 하도록 하겠습니다. 자요 페이지에서 보시는 요 내용이 지오코딩이라는 함수를 통해서 우리가 설정하는 내용입니다. 그래서 첫 번째 그 유저 에이전트의 언어는 사우스 코리아로 우리가 선택을 했습니다. 그래서 한글이 입력 가능한 그런 상태로 우리가 설정을 했고요. 그다음 두 번째 만약에 지옥과 지옥 코더의 주소값을 넣었는데 그에 해당되는 위도와 경도가 나오지 않았을 경우에는 프린트로 지호이슨 널이라는 메시지를 출력하게끔 그렇게 설정을 해 놨습니다. 그리고 정상적으로 주소가 입력이 됐다고 하면은 위도와 경도 값을 바로 출력할 수 있게끔 그렇게 구성을 했습니다. 자 앞에서 만들었던 지옥 코딩이라는 함수를 이용해서 위도와 경도를 우리가 받아올 수 있습니다. 자 위도와 경도를 받아올 수 있는데 지금 만약에 만약에 위두와 경도가 정상적으로 데이터 값을 받아오지 못한다고 하면은 위에서 정상적으로 받아오지 못하는 세계 주소가 있음을 확인할 수 있습니다. 그래서 서귀포 안덕면 그 다음 서기표 남원읍 서귀포 도순동요 3개의 주소는 한글 주소로 정상적으로 입력되지 않은 것을 확인할 수 있습니다. 그래서 자 이것을 그 검색 엔진에다가 영문 이름으로 다시 한번 검색을 해서 이렇게 리스트 형태로 세 가지를 다시 한번 집어넣어서 프로그래밍했습니다. 그래서요 세 가지 이름으로 검색을 했더니 지오파이 패키지에서도 정상적으로 의도 경도가 출력되는 것을 확인할 수 있었습니다. 자 이렇게 앞에서 지오파이라는 패키지를 이용해서 위도와 경도를 데이터를 가져왔으니까 그 데이터를 데이터 프레임으로 저장하도록 하겠습니다. 그래서 주소를 맨 앞에다가 저장을 해주고 경도와 위도 순서로 우리가 데이터를 집어넣어서 DF 유니크라고 하는 데이터 프레임 이름으로 저장을 하도록 하겠습니다. 자 이렇게 주소 경도 위도를 갖고 있는 요 데이터를 이용해서 이제 그래프 위에다가지도 위에다가 우리가 표시를 하도록 하겠습니다. 자 세 번째 태양광 발전소 위치 시각화를 하도록 하겠습니다. Folium으로 지도 위에 마커 표시하기 자 지도를 표시하기 위해서는 폴리엄 패키지를 사용해서 지도상의 위치를 마커로 표시하도록 하겠습니다. 지도를 생성할 때는 폴리엄 맵을 시작할 지도의 위치와 줌의 단계를 설정합니다. 화면에 보시면 33.38 126.55 이 두 가지가 위도와 경도의 좌표입니다. 그리고 앞에서 생성했던 데이터프레임을 포물에다가 집어넣고 포모랜드를 이용해서 마커로 표시를 합니다. 그래서 폴리엄의 마커를 좌표값으로 연결해 가지고 요것을 포문으로 동작을 시키게 되면 최종적으로는 html 파일이 생성이 되게 됩니다. 아래에 있는요 제주도의 표시되어 있는 요 마커의 표시 있는 그림은 제주도 점 html을 웹브라우저를 통해서 출력한 그 결과를 제가 화면에다 붙여 놓았습니다. 그래서 최종적인 결과는 반드시 html 파일 열어서 확인을 해 보시기 바랍니다. 근데이 html 파일을 보시면은 제주도의 태양광 발전량을 예측하기 위해서 발전소의 위치가 제주도에 그 해안가 쪽으로 많이 배치되어 있다는 것을 우리가 확인할 수 있습니다. 그 이유를 살펴보시면 여기 보시면 아시겠지만 녹색 있는 요 부분이 한라산의 봉우리들이 있는 그런 지역들입니다. 그런 지역들은 상대적으로 해가 뜨고 질 때 산의 그림자를 많이 받게 되므로 태양광 발전량이 상대적으로 줄어드는 그런 불리한 음이 있기 때문에 그렇기 때문에 지금 요 위치들이 산과는 좀 멀리 떨어져 있는 위치에 위치하고 있다는 것을 우리가 확인할 수 있습니다. 다음 5강에서는데이터 전처리에 대해서 살펴보도록 하겠습니다. 감사합니다.
네 안녕하세요 이번 5강에서는 데이터 전처리 부분에 대해서 다루도록 하겠습니다. 네 이번 5강에서는 실습용 데이터 파일에 대한 소개를 드리고 날씨 데이터를 전처리하는 과정에 대해서 다루도록 하겠습니다. 우선 오광을 좀 진행하기 전에 전체 흐름을 먼저 설명을 드리고 가도록 하겠습니다. 첫 번째는 실습용 데이터 파일에 대한 소개를 먼저 드리도록 하겠습니다. 파일에 대한 특성들을 좀 이해하셔야지 뒤에 전처리 과정을 진행할 때 이해가 좀 되실 것 같습니다. 그리고 두 번째는 수집된 데이터의 시간 간격을 동일하게 맞추기도록 하겠습니다. 세 번째로는 위성 데이터의 NC 파일을 csv 파일로 변환해서 준비하도록 하겠습니다. 이렇게 NC 파일을 csv 파일로 변환을 해주게 되면요. 그다음에는 여기에서 위성 이미지 좌표를 위도와 경도로 변환해서 dsl의 값을 가져오는 작업을 진행하도록 하겠습니다. 그리고 이렇게 준비된 파일을 지역별로 csv파일로 만들어주고 그다음에 utc 시간 국제표준시라고 할 수 있죠. 국제표준시를 서울 시간으로 변경을 해줘야 되고 시간 데이터 타입을 변경을 하도록 하겠습니다. 그리고 하향 단파 복사 관련 데이터만 골라서 저장을 하고 그리고 앞에서 준비했던 aws sasos 그리고 하향 단파 복사 데이터에 3개 cs5 파일을 합치는 작업을 진행하도록 하겠습니다. 네 실습을 위해 제공되는 파일들을 먼저 살펴보도록 하겠습니다. 크게 위성 데이터와 지상 데이터 폴더가 있는데 지금이 화면에서는 지상 데이터를 먼저 보여주고 있습니다. 지상 데이터는 asos 데이터와 aws 데이터가 있습니다. 4강에서 살펴봤던 제주도 내 태양광 발전소에서 가장 가까운 위치에 asos 데이터와 aws 데이터를 먼저 가져왔습니다. 4강에서 설명드린 대로 asos를 기본 데이터를 사용하고 가까운 관측 지점이 없는 경우 aws 데이터로 보완한다고 했었는데 현재 지상 데이터 폴더인 그라운드 웨더 데이터가 그렇습니다. asos와 aws가 지점마다 폴드로 되어 있는데 예를 들어 asos 184 폴더를 열어보시면 그 안쪽에 이렇게 asos184 언더바 레인 점 csv 파일과 asos184.csv 파일이 두 개 존재합니다. 184 폴더뿐만 아니라 나머지에 있는 모든 폴더들도 다 이렇게 파일이 두 개가 존재합니다. 그중에서 언더바 레인이라고 하는 문자열이 들어가 있는 요 파일은 강수량 파일이고요. 나머지요 rain이 없는요 파일의 경우는 기온과 풍향과 풍속과 습도를 가지고 있는 기본적인 날씨 데이터라고 이해하시면 될 것 같습니다. 그래서 포맷은 레인 폴더는 레인 파일은 이렇게 되어 있고요. 그다음에 184.csv8은 요런 형태로 되어 있습니다. 앞에서 보시면은 일시로 되어 있고 얘는 기준 시간으로 되어 있는데 나중에 데이터프레임을 합치는 작업을 하기 위해서는 기준 시간이라는 이 이름을 일시라는 파일명으로 바꾸도록 하겠습니다. 그리고 이제 중요한 것은 지금 여기서 기온과 풍향과 풍속과 습도는 10분 단위의 데이터로 되어 있습니다. 근데 강수량 데이터의 같은 경우는 1분 데이터로 되어 있기 때문에 두 가지를 하나의 시간으로 동일한 맞춰주는 작업이 필요합니다. 위성 데이터는 set under 데이터 폴더에 저장되어 있습니다. 지역별로 파일이 저장되어 있습니다. NC 파일을 csv 파일로 변경하는 과정에서 지역별로 저장하기 위해 그라운드 웨더 데이터 폴더에 있는 제주 지오메트 임포점 csv 파일을 참조했습니다. asos나 aws 데이터를 가져온 위치의 위성 데이터를 참조하기 위해 대체위도와 대체 경도를 사용했습니다. 여기서 대체위도와 대체 경도는 asos awc지점의 위도와 경도 정보입니다. 이와 같은 방법으로 위도와 경도를 계산하게 되면 오차가 발생함을 알 수 있습니다. 태양광 발전소의 위치가 아닌 태양광 발전소의 행정동의 위치와 경로를 받아오고 다시 가까운 asos나 aws 지점에 좌표로 변환했기 때문에 위치상의 오차가 발생함을 할 수 있습니다. 만약 발전소 별로 측정된 데이터가 존재한다면 정확도가 더 개선될 수 있을 것입니다. 그리고 기호는 대기 온도를 가리킵니다. 하지만 우리가 필요로 하는 기호는 대기의 온도보다는 태양광 패널의 표면 온도가 필요합니다. 태양광 패널의 온도가 너무 낮거나 너무 높다면 발전 효율이 떨어질 것이기 때문입니다. 하지만 우리는 태양광 패널의 온도를 구하기 어렵기 때문에 대기 온도를 사용하도록 하겠습니다. 일단 데이터는 준비하되 뒤에서 각각의 데이터들이 발전량과 어떤 상관관계가 있는지를 살펴보도록 하겠습니다. 지금이 위성 데이터 단파복사 데이터를 파일을 하나 열어보시면 지금 이와 같이 데이터가 보이짐을 알 수 있습니다. 맨 앞에 데이트 그다음에 devention y와 x 그 다음에 ASR ASR dqf DSR dsrtqf rsr rsrtqf 이런 데이터들이 있는데요. dkf라고 되어 있는 요 이름은 앞에 있는 요 ASR 데이터가 유효할 때 1이라는 비트 값을 가지고 있습니다. 만약에 dqf의 어떤 값도 존재하지 않을 경우에는 ASR 값이나 DSR 이런 값들이 유효하지 않다는 것을 나타나는 것이 dqf라는 플래그 필드입니다. 앞에서 설명드린 대로 데이터의 시간 주기가 서로 다르기 때문에 시간 중위를 동일하게 맞춰 주도록 합시다. 현재 강수량 데이터는 1분 강수량으로 되어 있고 나머지 데이터는 1시간 간격으로 되어 있으므로 동일한 시간 주기를 맞추기 위해 1시간으로 맞춰 주도록 하겠습니다. 시계열 데이터를 시계열을 위한 신경망이 입력하기 위해서는 시간을 통일시켜주는 것은 필수적인 전처리 작업입니다. 그림에서 보시는 것처럼 동일한 간격으로 동일한 시간 간격을 맞출 수 있게끔 이렇게 통합시켜주는 것이 가장 중요한 첫 번째 전처리 작업입니다. 자이 코드는 수십 된 데이터의 시간 간격을 동일하게 맞춰주는 코드로 되어 있습니다. 일단 csv가 저장되어 있는 폴더를 지정을 해주고 그 안에서 aws나 asos 폴더 안에서 하나의 asos나 aws 폴더 안에는 두 개 파일이 존재한다는 것을 우리가 앞에서 확인을 했습니다. 하나의 파일명은 rain이라고 하는 이름이 들어가 있는 그런 파일이고요 나머지 하나는 레인이란 이름이 없는 그런 파일입니다. 근데 우리가 지금 강수량 데이터를 가져와서 1분당 강수량으로 되어 있는 파일을 그것을 1시간 단위로 누적해서 변경을 하고자 합니다. 자 그러기 위해서는 두 개 팔 중에 레인이라는 문자열이 포함되어 있는 그런 파일을 찾아야 됩니다. 그래서 여기서 find라고 하는 함수를 이용해서 레인이라고 하는 문자열을 찾습니다. 파일명에서 찾는 거죠. 자 그래서 메인이라고 하는 문자열이 포함되어 있다고 하면은 카운트가 0보다 크게 설정이 될 것입니다. 자 그래서 nain이라는 이름이 들어가 있는 파일을 csv 파일을 직접 읽어서 데이터프레임으로 불러옵니다. 그렇게 데이터프레임을 읽어온 파일 중에 파일명이 aws로 되어 있다고 하면은 aws와 asos 데이터는 두 개가 필드가 다름을 우리가 확인할 수 있습니다. 오른쪽 하단을 보시면은 1분당 강수량 포맷이 서로 약간 차이가 있음을 우리가 확인할 수 있습니다. aws는 asos보다 지정 컬럼이 더 존재하는 것을 우리가 확인할 수 있습니다. 그래서 aws 파일 경우에는 지점이라고 하는 칼럼을 삭제해 줄 필요가 있습니다. 그래서 aws 파일은 이렇게 읽어온 다음에 지점이라고 하는요 컬럼을 삭제하기 위해서 우리가 드랍이라고 하는 함수를 이용해서 지점에 대한 컬럼을 삭제하도록 하겠습니다. 자 그렇게 한 다음에 만약에 결측지가 존재한다고 하면은 결측치를 0으로 채워주는 우리가 전처리를 해주고요. 그다음에 1분당 강수량으로 되어 있는 것을 1시간당 누적 강수량으로 변경할 수 있는 레인 언더바 썸이라는 함수를 하나 생성을 해서 변경을 하도록 하겠습니다. 자 이렇게 해서 일시라고 되어 있는 날짜 시간 이것을 제일 앞에다가 집어넣고 두 번째는 강수량 1시간에 강수량 정보를 가져와서 밸류라고 하는 형태로 dictional 형태로 하나 선언을 합니다. 그래서 요 딕셔너리를 데이터프레임에다 넣어 주시게 되면 우리는 데이터 프레임을 하나 생성할 수 있습니다. 그리고 우리가 사용할 수 있는 데이터에서 검색 조건으로 필터링을 해야 되는 상황이 발생할 수 있기 때문에 일시라고 되어 있는 요 부분을 데이트 타임이라고 하는 타입으로 변경을 해주게 됩니다. 이전에는 문자열로 되어 있을 겁니다. 문자로 되어 있는 것을 데이트 타임이라는 타입으로 변경을 해주게 됩니다. 그렇게 해서 우리가 데이터 수집 기간을 2020년 3월 1일 0시부터 2021년 1월 1일 이전까지 그러니까 2020년 12월 31일 23시까지겠죠. 그 시간으로 필터링을 하려고 하면은 이 타입을 데이트 타임 타입으로 변경을 해 주시는 것이 가장 좋습니다. 문자열로는 이런 필터링이 되지 않지만 데이트 타임이란 타입으로는 이렇게 조건 검색 형태로 우리가 조건을 걸어줄 수가 있습니다. 이렇게 필터링된 데이터를 받아들여서 이것을 csv 파일로 저장하도록 하겠습니다. 주어진 위치 위성 데이터는 이미 지역별로 변환된 파일입니다. 이 파일을 어떤 과정으로 만들어졌는지 간단하게 설명드리도록 하겠습니다. 일단 아래 코드를 실행하시려고 하면 내 cdf2 csv라는 패키지와 xray 사이파이라는 패키지가 기본적으로 설치가 되어 있어야 됩니다. 앞에 있는 패키지를 먼저 설치하시고 내 cdf2 csv 패키지에 컨버트 언더바 di라는 함수를 실행해서 csv 파일로 변환하도록 하겠습니다. 만약 NC 파일이 저장된 폴더를 통째로 변환해야 될 경우 폴더를 하나 만들고 그 안에 NC 파일이 여러 개가 존재하는 경우에는 컨버터 언더바 di라는 함수를 사용한 것이 훨씬 유리합니다. nc파일 하나만을 하는 경우에는 컨버트 언더바 파일함수를 사용하시는 것이 더 낫습니다. 컨버트 언더바 di 함수는 첫 번째로 NC 파일의 경로를 인수로 넣어 줘야 됩니다. 두 번째는 csv 파일이 전달된 저장될 경로 세 번째는 클린 언더바 csv 파일의 경로 물론 네 번째 인자로 오는 클린 언더바 csv 파일을 생성할지 여부를 만약에 추로로 설정하셨다고 하면은 클린 언더바 시술 파일의 경로를 반드시 넣어 주셔야 됩니다. 만약에 클린오더가 csv 파일을 생성하지 않는다고 하면은 세 번째와 네 번째 인자는 불필요한 필드가 될 것입니다. 여기서 클린 온도가 csv 파일은 널 값이 없도록 널 값을 채워서 출력해주는 그런 타입이라고 보시면 될 것 같습니다. csv로 변환된 파일을 확인해 보겠습니다. 왼쪽에 보이시는 표가 바로 csv로 변환된 파일입니다. y 팀과 xd문 위성 이미지상의 XY 좌표이고 dsr은 하향 단파 복사 즉 일사량 데이터입니다. 지금 ecsv 파일은 전극 모든 위치에 단파 복사 데이터를 포함하고 있습니다. 우리에게는이 데이터가 다 필요하지 않고 4강에서 확인했던 제주도 태양광 발전소 위치에 DSR 값만 필요로 합니다. 이 값을 얻어오르면 코디네이트 언더바 트랜스폼 점 csv라는 파일을 제공해 드리고 있는데 이 파일을 참조하시면 됩니다. 오른쪽 아래 보시는 것과 같이 위도와 경도 값을 이미지 좌표와 일대일로 대응하는 테이블입니다. 이 테이블은 한반도 주변에 위치 데이터를 모두 포함하고 있습니다. 자 이렇게 변환된 파일에는 ASR 흡수단파 복사 데이터죠 DSR 하향단파 복사고 rsr은 상향 단파 복사 데이터입니다. 그 중에서 우리가 필요한 것은 DSR 하향 단파 복사 데이터겠죠. 그리고 각 데이터별로 앞에서 말씀드렸지만 dqf1이라는 컬럼이 존재합니다. 칼럼은 각각의 단파 복사 데이터가 유효한지 유효지 안 하는지를 알려주는 그런 플래그비트입니다. 디큐에프원이 1이 아니라고 하면은 그 데이터는 결측치로 비어 있을 것입니다. 그리고 데이트 컬럼은 서울 시간이 아닌 utc 시간 국제표준시로 9시간이 차이가 나는 것에 주의하셔야 됩니다. 지상관측 데이터는 서울 시간으로 되어 있기 때문에 뒤에서 동일하게 서울 시간을 맞춰 주셔야 합니다. utc 시간을 서울 시간으로 변경하는 컨버터 타임 함수를 만들어 보도록 하겠습니다. 자 첫 번째 줄에서 타임 포맷이라고 하는 문자열을 우리가 정의하고 있습니다. 퍼센트 y % m 퍼센트 D요 부분은 연월일 그 다음에 퍼센트 h % ymd hm이라고 되어 있는 부분에서 대문자와 소문자로 구별하고 있는데 대문자와 소문자는 정확하게 구별을 해주셔야 됩니다. 만약에 이와 같이 타임 포맷을 나타내고 있다고 하면은 우리는 이와 같은 순서대로 연월일 시 분 형태로 데이터를 우리가 시간 날짜와 시간 데이터로 정의하고 있음을 알려주는 그런 포맷입니다. 지금 현재 csv파일의 저장되어 있는 날짜와 일시 정보가 지금 이와 같은 포맷으로 되어 있다는 것을 우리가 지정한 것입니다. 그래서 시간 정보를 csv8 안에 있는 예시 컬럼에서 읽어 오시려고 하면은 str p 타임이라고 함수를 이용해서 읽어오시면 됩니다. 그래서 타임 포맷은 요렇게 되어 있다는 것을 우리가 알려주는 것이죠. 그리고 지금이 시간이 한국 시간인지 아니면 utc 타임인지를 알 수 없기 때문에 지금 우리가 csv 파일에 저장되어 있는 그 내용은 utc 시간이라는 것을 설정해서 알려줍니다. 그런 다음에 지금 현재 우리 컴퓨터가 지금 시간 설정되어 있는 그 시간 존이 서울 시간으로 되어 있다는 것을 우리가 읽어오기 위해서 티제트 로컬이라는 함수를 실행해서 로컬 정보를 읽어옵니다. 그럼이 로컬 언더바존이라고 하는이 값에는 현재 우리 시간 존이 서울 시간으로 되어 있다는 것을 우리가 리턴 받을 수 있도록 되어 있습니다. 그래서 아래 보시면 S 타임 존이라고 되어 있는 것이 있습니다. 그래서 로컬 존을 괄호 안에다가 인자 값으로 입력을 해주면 utc 시간으로 되어 있는 시간이 서울 시간으로 변경되어지게 됩니다. 그래서 시간이 DT 언더바 utc로 되어 있는 것을 별도의 상수로 별도의 변수를 선언해서 DT 언더바 로컬이라는 시간으로 우리가 새롭게 리턴을 받도록 하겠습니다. 자 그런 다음에 시간 포맷을 앞에서 우리가 타임 포맷으로 정의했던 그 포맷대로 strf타임 함수를 실행하시면 이런 형태로 이런 포맷 형태로 문자열로 우리가 생성해서 컨버 언더바 타임이라는 문자를 생성하게 됩니다. 자 앞에서 만들었던 컴버 언더바 타임이라는 함수를 이용해서 이 코드를 우리가 함께 동작을 시키도록 하겠습니다. 일단 데이터 언더바 di라는 폴더는 위성 데이터가 저장되어 있는 폴더를 가리키고요. 그다음에 최종적으로 그 우리가 파일을 저장할 경로를 데이터 폴더로 우리가 지정을 했습니다. 자 그런 다음에 데이터를 우리가 읽어올 때 위성 데이터의 csv 파일에는 데이트 DSR DSR 언더바 dqf 컬러만 선별적으로 가져온 다음에 그렇게 저장된 csv 파일을 우리가 생성하도록 하겠습니다. 그러면은 불필요하다고 생각하는 컬럼을 드랍컬이라고 하는 리스트 안에다가 집어 넣어 주시고 지금 여기에서 csv 파일 읽은 다음에 이 컬럼들은 우리가 삭제하겠다는 그런 의미로 해석하시면 될 것 같습니다. 그래서 드롭컬을 드랍을 시켜버리게 되면 우리가 필요로 하는 데이트 DSR DSR dqf1 컬럼을 배제하고 나머지 컬럼들이 삭제되게 됩니다. 자 그리고 혹시 그 안쪽에 그 0으로 결측치로 채워주는 함수를 필 na를 먼저 동작을 시킵니다. 그래서 결측치를 다 채워주고 그다음에 앞에서 만들었던 컴퓨터임이라는 함수를 우리가 사용을 하도록 하겠습니다. 자 이렇게 되면은 위성 데이터가 utc 시간에서 서울 시간으로 변경이 되게 됩니다. 그리고 나중에 뒤에서 우리가 데이터프레임을 통합을 할 건데 그때 서로 컬럼명이 일시하고 데이트하고 이렇게 서로 다르게 되어 있다고 하면은 그 컬럼명을 통일하는데 데이터프레임을 통일하는데 그렇게 좋진 않습니다. 그래서 데이트로 되어 있는 컬럼명을 예시로 동일하게 통합을 하도록 하겠습니다. 자 이렇게 컬럼명을 리네임을 시켜주고요 그리고 인덱스를 인덱스 값을 일시로 변경을 하도록 하겠습니다. 그리고 우리가 그 일시로 검색을 해야 될 필터링을 해야 될 때가 있을 수 있기 때문에 데이트 타임을 문자열에서 데이터 타임으로 변경을 하도록 하겠습니다. 자 이렇게 만들어 주시고 csv 파일로 저장을 하도록 하겠습니다. 자 이제는 마지막으로 앞에서 전처리됐던 데이터를 각각의 데이터프레임으로 하나씩 읽고 와서 그것을 3개 csv 파일을 합치는 작업을 진행하도록 하겠습니다. 자 첫 번째가 하향 단파복사 데이터를 csv파일 읽어와서 머지 언더바 DF라고 하는 데이터 프레임을 생성합니다. 그리고 두 번째는 강수량 csv파일 읽어서 데이터프레임을 생성합니다. 그리고 세 번째는 aws나 asos csv파 읽어서 aws df라는 이름으로 데이터프레임을 생성합니다. 각각의 데이터프레임을 읽어온 다음에요 3개를 하나의 데이터프레임을 통합을 할 때 잘 활용할 수 있는 함수가 판다스에서 머지란 함수입니다. 그래서 최종적으로 머즈 언더바 df라는 데이터프레임의 세계의 데이터프레임을 다 합치도록 하겠습니다. 자 그럴 때 자 왼쪽과 오른쪽에 데이터프레임이 두 개가 있습니다. 그래서 기준을 왼쪽 데이터프레임이라고 알려줄 수 있는 부분이 하우 이퀄 left로 되어 있는 요 인수입니다. 최종적으로 왼쪽으로 합쳐진다는 의미 있죠. 그리고 두 개 데이터프레임을 합칠 때 기준이 되는 컬럼이 있습니다. 왼쪽도 오른쪽도 레프트 언더바온 라이트 온 더 보온 이게 두 번째 두 개의 데이터프레임의 기준이 일시가 되는 것입니다. 시간을 기준으로 두 개 데이터프레임을 합쳐 주게 됩니다. 그리고 밑에서는 이렇게 두 개가 합쳐진 머지 언더바 df라는 데이터 프레임을 다시 불러와서 거기다 aws 언더바 df라고 하는 데이터프레임을 합쳐주게 되면은이 뭐지 언더바 df는 3개의 데이터프레임이 합쳐진 그런 형태가 될 것입니다. 옆에 있는 그 오른쪽에 있는 이 그림 보시면은 앞에서 한번 나왔던 데이터죠 그림이죠 하향 단파 복사의 그다음에파일과 강수량 기온풍향 풍속 습도 csv 파일을 한으로 합치는 작업요 작업을 지금요 코드에서 실행하셨다고 보시면 될 것 같습니다. 자 이렇게 csv 파일을 하나로 다 합친 다음에 이것을 뒤에서 활용하도록 하겠습니다. 네 다음 6강에서는 탐색적 데이터 분석 두 번째 편으로 설명드리도록 하겠습니다. 감사합니다.
네 안녕하세요 이번 6강에서는 데이터 상관관계 분석에 대해서 다루도록 하겠습니다. 이번 6강에서는 5강에서 전처리한 데이터를 사용하여 입력 데이터와 태양광 발전량과의 상관관계를 확인해 보려고 합니다. 먼저 히트맵으로 그 태양광 발전량 간의 상관관계를 확인해 보고 시범 패키지의 히트맵 함수를 사용해서 시각화를 하도록 하겠습니다. 히트맵 함수는 각 피처들 간의 상관 개수를 계산해서 보여줍니다. 그리고 두 번째 태양광 발전량과 상관관계 확인해서는 맵플로리 패키지를 사용하여 스캐터 함수로 산점도 그래프를 그려주도록 하겠습니다. 두 가지가 서로 다른 특징을 갖고 있으므로 하나씩 확인해 보도록 하겠습니다. 제주 태양광 총 발전량과 피처 간의 상관관계를 보겠습니다. 하향 단파 복사 값과의 상관관계는 0.88에서 0.92 정도입니다. 그리고 예상외 데이터로는 DSR tqf 값입니다. 이 값은 DSR 데이터의 값이 유형 값을 가질 때는 1 유형 값이 없을 때는 0의 값을지는 피처입니다. 이런 특성 하나만으로도 0.7이라는 높은 값을 갖습니다. 그리고 습도는 -0.44인데 습도가 낮을수록 발전량이 높다는 것을 의미합니다. 그래서 상관관계 개수를 보실 때는 플러스는 정방향으로 같이 비례해서 증가하는 것을 의미하고 만약에 - 값일 경우에는 반비례하다는 것을 의미하는 겁니다. 그리고 풍속은 0.17로 낮은 값을 보입니다. 풍속은 모델의 데이터를 넣어줬을 때 도움이 되는지 한번 확인해 볼 필요가 있을 것 같습니다. 그리고 강수량은 0.094로 상관관계가 매우 낮게 나오며 모델 학습시 가중치를 낮게 설정될 것으로 예상이 되고 있습니다. 상관관계가 높은 순위를 다시 한번 정리해 보면은 dsi를 가장 높습니다. 지금 현재 여기에서 보이는 것대로 보면은 dsr의 0.88 정도가 되고 그다음에 DSR dqf는 0.72 정도의 값을 갖고 있고요. 그래서 두 개 값이 가장 상대적으로 높은 편에 속하죠. 나머지 것들에 비해서 그리고 그 다음으로 높은 것이 0.44 근데 습도는 - 값으로 되어 있고요 그다음은 높은 것이 풍속 데이터입니다. 그리고 기온 강수량 순서대로 되어 있습니다. 하향 단포 복사와 태양광 발전량과의 상관관계를 살펴보도록 하겠습니다. 지금 요 그래프를 보시면은 제가 미리 이렇게 표시해 놓은 부분이 있는데 붉은색 박스와 그다음에 요 파란색 박스로 되어 있는요 두 개 부분들을 위주로 살펴보도록 하겠습니다. 일단 가로축이 DSR 데이터로 되어 있습니다. 하향 단파 복사 데이터가 커지면 커질수록 총 발전량은 같이 증가한다는 것을 우리가 확인할 수 있습니다. 그래서 비례하다 거의 마이니콜 x와 같은 그런 부분이 있고 그 다음에 영역을 좀 많이 벗어나는 요런 부분들이 존재하죠. 자 이런 부분들은 상대적으로 분산이 크다는 것을 의미합니다. 만약에 단파복사 데이터가 분산에 적다고 하면은 이런 데이터들이 요 안쪽으로 들어오게 될 것입니다. 근데 분산의 어느 정도 있는 편이다 보니까 요 데이터들이 퍼져 있는 그런 형태를 보이게 되겠죠. 그래서 상관격에서 높다고 하면은 이런 부분들이 상대적으로 좀 더 분산이 좀 적은 것을 우리가 확인할 수 있습니다. 그리고 이제 문제는 지금 여기에서 보이는 요 붉은색 박스 영역입니다. 우리가 보고 있는 DSR 데이터는 dqf라는 필드가 하나 있었죠. 플래그 비트가 하나 있는데 그 값이 1이 아닐 경우에는 dqf도 값이 존재하지 않고 그리고 DSR 데이터도 존재하지 않습니다. 한마디로 특정한 단 데이터가 아닌 경우에 그거보다 값이 작은 경우에는 값이 존재하지 않음을 확인할 수 있는데 그때에도 태양광 발전량은 존재하기 때문에 두 개의 데이터간에 간극이 발생하게 됩니다. 그래서 총 발전량은 분명히 있는데 DSR 데이터는 0이 되는 요런 특성을 갖습니다. 옆에서 보시는 대로 dqf는 1인 경우가 있는데 비어 있는 요런 필드들이 보이시게 되죠. 이런 부분들이 바로 요 부분에 데이터를 보여주고 있습니다. 그래서 아무리 좋은 모델을 쓴다 하더라도 실제 DSR 데이터에서 요런 노이즈 이런 데이터가 존재하기 때문에 적은 값 총 발전량이 적을 때나 DSR 값이 적을 경우에는 오차가 발생할 수밖에 없는 데이터임을 우리가 확인할 수 있습니다. 그래서 만약에 뒤에서 우리가 시계열 데이터 모델에다가 집어넣는데도 값이 작을 때 오차가 많이 발생하는 것은 지금 요 DSR 값에 오차가 있기 때문이라고 확인하시면 될 것 같습니다. 그리고 두 번째로 우리가 상관관계를 확인해 볼 것은 DSR dqf입니다. 값은 0의 값과 1의 값 두 가지만 존재합니다. 근데 두 가지가 좀 확연하게 보여주고 있죠. dsrtqf가 0일 때는 총 발전량이 대체적으로 50 미만일 때입니다. 그리고 DSR dqf가 1인 경우에는 이렇게 높은 값을 출력하고 있음을 총 발전량이 높은 값을 출력하고 있음을 우리가 확인해 볼 수 있습니다. 그래서 dsrtqf가 0일 때와 dsrtqf가 1일 때는 총 발전량의 범위가 확연하게 차이 나는 것을 우리가 확인할 수 있습니다. 그리고 세 번째는 강수량과 태양광 발전량의 상관관계를 보여주고 있습니다. 제가 여러분들이 좀 보기 쉽게끔 이렇게 붉은색 그래프로 이렇게 그림을 그려 놓았습니다. 곡선을 이렇게 그려놨는데 실제 강수량이 적을 때 강수량이 0일 때는 화창한 날이겠죠. 맑은 날이겠죠. 맑은 날 때는 총 발전량의 범위가 이렇게 높게 나오기도 하고 낮게 나오기도 합니다. 그래서 대체적으로 총 발전량이 최대값이 높은 경우는 강수량이 낮을 때를 의미하는 거고요. 그다음에 강수량이 있을 때는 구름이 있기 때문에 비가 왔겠죠. 그래서 총 발전량이 상대적으로 낮게 출력되는 것을 우리가 확인할 수 있습니다. 그리고 요런 노이즈 값들이 좀 존재하는데 이것은 여러분들이 그 어떻게 해석하셔야 되냐면 지금이 지역에는 강수량으로 비가 오고 있지만 제주도의 다른 지역에는 맑을 수가 있죠. 구름이 존재하지 않을 수가 있죠 그런 그 위치들은 총 발전량이 높게 설정되게끔 조건을 만들어 줄 수가 있습니다. 자 그래서 강수량의 하나의 지역의 정보만 가지고는 총 발전량하고 반드시 비례하게 따라가지 않을 수 있는 그런 조건들 때문에 요런 데이터들이 존재한다는 것을 우리가 생각해 볼 필요가 있을 것 같습니다. 그다음에 이번에는 풍속과 태양광 발전장관의 상관관계를 보여주고 있습니다. 제가 파란색으로 되어 있는 요 박스와 붉은 새로 되어 있는요 박스를 구별했는데 파란색의 박스는 저녁시간대를 의미한다고 해석할 수도 있습니다. 총 발전량이 낮게 나올 경우에는 대부분의 굉장히 좀 높죠. 그래서 풍속이 밤 시간대에는 굉장히 골고루 분포된다는 것을 우리가 확인할 수 있고요. 그리고 이 붉은색 박스는 낮 시간대라고 해석할 수 있습니다. 총 발전량이 높은 시간대요 그때는 상대적으로 풍속이 높게 부는 편임을 확인할 수 있습니다. 그래서 낮 시간에는 풍속이 최소 5 이상 부는 것이 굉장히 작게 일어나는 것을 우리가 확인할 수 있습니다. 그리고 이번에는 풍향과 태양광 발전량관의 상경 관계를 보도록 하겠습니다. 지금 요 붉은색 박스를 보시면은 방위각이 30에서 120 정도 되는 이 범위 안에서 굉장히 좀 밀집되어 있는 그런 것들을 확인할 수 있고요. 그다음에 250에서 330점 되는 그 방위각 안에서 굉장히 높게 설정되는 것을 우리가 확인할 수 있습니다. 물론 가운데에도 상대적으로 높게 설정되는 것을 확인할 수 있는데 지금 요 두 방향으로 크게 데이터가 몰려 있다는 것을 우리가 눈으로 확인할 수 있죠. 그리고 여기에 있는요 값 풍향이 0일 때도 총 발전량은 높게 설정된다는 것을 우리가 확인할 수 있는데 요것은 좀 노이즈에 좀 가까운 값으로 볼 수도 있습니다. 그리고 요 파란색 박스 안에 있는 요 부분은 앞에서와 마찬가지로 밤 시간대에 밤 시간대에 풍향의 방향을 의미한다고도 해석할 수 있습니다. 자 이번에는 습도와 태양광 발전량과의 상관관계를 한번 보도록 하겠습니다. 지금 밀집되어 있는 형태로 직선을 곡선 한번 그어 보시면요 이렇게 되어서 요 부분은 밤 시간대로 그다음에 요 부분은 낮 시간대로 해석할 수도 있을 것 같습니다. 습도라는게 온도가 기온이 올라가면 대기 온도가 올라가게 되면 상대적으로 상대 습도는 떨어지게 돼 있죠. 그리고 만약에 기온이 떨어지게 되면 상대 습도는 올라가게 되기 때문에 밤 시간대로 가면 갈수록 습도는 올라가게끔 설정이 되어 있습니다. 그리고 낮 시간대에는 상대적으로 습도가 떨어지기 때문에 이 곡선대로 이 곡선대로 우리가 습도 데이터가 몰려 있음을 확인할 수 있습니다. 자 이번 강의에서는 그 태양광 발전량 데이터와 각 피처들 간의 상관관계에 대해서 우리가 살펴봤습니다. 다음 7강에서는 태양광 발전량 예측 모델 구현에 대해서 알아보도록 하겠습니다. 감사합니다.
네 안녕하세요 이번 7강에서는 태양광 발전량 예측 모델 구현에 대해서 다루도록 하겠습니다. 이번 7강에서는 딥러닝 시계열 모델에 대해서 살펴보도록 하겠습니다. 시계열의 가장 기본이 되는 rnm과 rnn의 레이어를 추가한 깊은 순환신경망 그리고 한쪽 방향으로만 전달되지 않고 양방향으로 데이터가 전달되는 양방향 순환 신경망 그리고 rnn의 단점을 보완하여 장기 기억이 가능한 lst stm의 개선량을 줄이고 구조를 단순한 gru를 차례대로 설명드리도록 하겠습니다. 아래는 리커런트 뉴럴 네트워크는 입력과 출력을 순차적으로 처리하는 시퀀스 모델입니다. 지금 우리가 처리하는 것처럼 1시간 단위의 날씨 데이터를 순차적으로 입력해주면 이에 대한 예측치를 순차적으로 출력해 줄 수 있는 모델입니다. 이처럼 시계열 데이터를 처리하기 위해 고안된 모델들을 시퀀스 모델이라고 합니다. 그중에서 아래는 시계열에서 가장 기본적인 신경망 모델입니다. 심층신경망의 기본 모델은 제일 아래 입력층 그다음에 가운데 은닉층 그다음 출력층으로 구성되어 있습니다. 지금 여기에서는 은닉층을 하나로만 구성되어 있는데 나중에 깊은 심층 신경망으로 연결된다고 하면은 얘 은닉층이 여러 개의 내열을 가질 수도 있습니다. 자 그래서 보시면은 x1과 x2 X3 X4 xt까지죠 자 이것이 x1과 x2 x3라는요 입력층의 노드의 차이는 시간의 순서에 따라서 입력이 되어지는 것입니다. 첫 번째 입력이 시간 데이터가 들어가게 되면 x1으로 들어가고요 데이터가 전달되어져서 다음 시간에는 H2 쪽으로 넘어가게 되는 거죠. 이런 식으로 시간의 순서에 따라서 데이터가 X1 x2 X3 형태로 입력이 되어지고 은닉층도 동일하게 전달되어지는 그런 방식이 rnn에 시계열 데이터 방식입니다. 자이 셀은 이전의 값을 기억하는 메모리 역할을 수용하게 되는 은닉층이 있습니다. 그 은닉층을 메모리 셀 rnn 셀이라고 부릅니다. 메모리 셀은 현재 시점 ht라고 표기를 합니다. ht에서 바로 이전 시점에 출력값을 자신의 입력으로 사용합니다. 현재 시점 t에서의 메모리 세일을 갖는 값은 과거의 매물셀들의 값에 영향을 받습니다. 자요 앞에서 보셨던 그림을 제가 왼쪽에다 그냥 그대로 그려놨고요. 요 그림을 요약해서 그린다고 하면은 오른쪽에 그린 것 같습니다. 자 근데 여기서 주의하실 것은 자 입력이 x 들어옵니다. 입력이 들어오는데 ht가 메모리 셀이라고 말씀을 드렸죠. 기억해야 될 매몰살이라고 말씀을 드렸는데 입력되는 데이터를이 메모리 셀에 얼마만큼 반영할지를 가중치로 설정을 하게 되는데 그 가중치가 x 입력에 대한 가중치가 wx가 존재합니다. 그리고 이전에 입력됐던 기억했던 그 값을 현재 시간에 얼마만큼 반영할지를 결정하는 설정하는 그 가중치가 wh h라고 돼 있는 것은 히든이라고 우리가 보시면 될 것 같습니다. 그래서 은닉층에서 설정되는 가중채 값을 wh라고 설정을 하고요 그다음에 wx와 wh에 대해서 이전 정보와 현재 정보가 들어왔을 때요 메모리 세계 출력을 얼마만큼의 출력으로 결정할지를 설정하는 가중치 값이 W Y 값이 있습니다. 그래서rn에는 은닉층을 기본으로 은닉세를 기본으로 해서 이전 시간에서 전달되어지는 w값 현재 입력에 전달되어지는 w값 그다음에 출력값에 결정되는 w값 세 가지 형태로 구성이 되도록 되어 있습니다. 본 강의에서는 시계열 모델을 구현할 때 텐서플로의 하이레벨 api인 케라스를 사용하도록 하겠습니다. 케라스는 텐서플로우로 딥러닝을 배울 때 가장 빠르게 익숙해질 수 있는 딥마닝 프레임워크입니다. 케라스로 안에는 고려하면 심플 아래는 함수를 사용하시면 됩니다. 우리가 간단하게 구현해 볼 구조는 rna이며 히든 레이어는 하나를 갖도록 하겠습니다. 심플 rnn의 첫 번째 인수는 은닉층의 노드의 개수입니다. 이 코드에서는 hunits라고 정의를 했죠. 지금 현재 hus는 100으로 설정을 했습니다. 그리고 두 번째 인수는 recont drop 아웃입니다. 0.5로 설정을 했는데요 조건의 의미는 지금 여기에서 보이시는요 글인 것 같이 은닉층에서 출력적으로 출력으로 나갈 때 이것을 다시 피드백을 해서 리커런트 커넥션을 만들어 주는 것을 의미합니다. 그런데요 리커런트 커넥션을 100%를 다시 히든 레이어로 입력하는 것이 아니라 0.5%, 50% 확률로이 셀에 있는 노드를 학습시키는 조건을 가리켜서 리컨트 드롭아웃을 0.5라고 설정한요 조건으로 우리가 이해할 수 있습니다. 그리고 세 번째 커널 이니셜라이저는 허 노말이라고 하는 값으로 사용을 하겠다고 한 것입니다. 한마디로 가중치의 초기화를 어떻게 설정하느냐에 따라 학습 시간이 얼마나 걸릴지 달라질 수 있습니다. 인풋 쉐입은 가장 왼쪽에 그림을 참조하도록 하겠습니다. 여기는요 인풋 쉐입의 x 언더바 트레인 점 쉐입이라고 설정을 해 놨는데요. 값은 이 그림을 참조하시면 됩니다. 입력 노드의 개수가 인풋 언더바 팀으로 되어 있고요 그 다음에 인풋 랭스 타임스탬스로 되어 있죠. 요것이 현재 인풋 언더바 쉐입으로 설정이 되어 있습니다. 요 인풋 쉐입을 입력 노드의 개수와 인풋 랭스를 가리켜서 이것을 인풋 쉐입으로 정리를 해 놨습니다. 그리고 신경망에 데이터를 입력할 때 배치 사이즈를 얼마나 설정하느냐를 하나 더 해주시면 얼마만큼의 데이터가 한꺼번에 신경망을 들어갈지를 결정하게 되게 되는 것이죠 자 그리고 여기 보시면은 댄스라고 되어 있는 것이 있습니다. 출력이 우리가 예측값으로 하나의 값을 우리가 출력을 해야 되기 때문에 출력 노드는 하나로 정의를 합니다. 그리고 케라스에서 컴파일이나 함수는 실제이 모델을 학습을 시킬 때 어떤 기준으로 우리가 평가할 것인지를 설정하는 값입니다. 로스 함수는 mse 메인 스퀘어 에러라고 하는 함수를 로스함수로 사용을 하고 그다음에 평가하는 측조 매출액을 MA 요것은 mean absolute 에러죠 고것으로 우리가 매트릭을 설정할 것이고 그다음에 옵티마이저는 경사강법을 진행하는 방법론 중에 하나죠 그중에 하나를 아담으로 설정을 하도록 하겠습니다. 그리고요 부분도 여러분들이 잘 튜닝이 될 포인트이긴 한데 러닝레이트를 얼마로 설정하느냐에 따라서 학습 시간이나 학습에 대한 진행도가 결정이 되게 됩니다. 그래서 학습률을 지금 현재는 0.006으로 설정한 것이 됩니다. 자 그래서 우리가 레이어를 하나만 쌓는다고 말씀드렸죠. 지금 심플 rn이라고 하는 요 레이어를 하나만 우리가 누적을 시켰습니다. 그렇기 때문에 히든 레이어는 여기 하나만 존재하게 되는 거고요. 그다음에 앞에서 말씀드렸던 h 유니스가 100이라는 의미는요 노드의 개수가 히든 레이어의 노드의 개수가 100개라는 것을 의미하는 거고요. 그다음에 여기 안에서는 이제 보여주지 않게끔 되어 있지만 지금 여기에 있는 요 리턴 시퀀시스라고 하는 인자 값이 있습니다. 리턴 시퀀시스라는 인자 값이 펄스인 경우에는 히든 레이어가 각각이 다 출력을 내보내지 않고 옆에 있는 은닉층의 노드로 전달되게끔만 하고 출력은 내보내지 않게끔 되어 있는 것이 리턴 시퀀시스라는 옵션입니다. 그래서 그 옵션을 폴스라고 설정했기 때문에 최종적으로는 노드가 하나가 출력되게 됩니다. 여기서는 기본값으로 사용하기 때문에 보이지 않는 리턴 시퀀스를 여러분들이 기억하실 필요가 있고요 만약에 그런 부분들이 좀 헷갈리신다고 하면은 여기 옵션에다가 리턴 채권시스를 인수로 표현해 주시는 것도 좋은 방법 중에 하나가 될 것 같습니다. 자 그래서 은닉층의 모든 노드마다 출력을 한 개씩 갚도록 우리가 설정을 했고 지금 이것을 통해서 우리가 예측값을 하나를 출력해 낼 수 있습니다. 자 이번에는 은닉층을 하나만 갖도록 설정하지 말고 은닉층을 두 개를 한번 쌓아 보도록 하겠습니다. 자 앞에서 말씀드렸지만 리턴 시퀀시스라고 하는 옵션을 입력으로 받을 때 그 입력되는 은닉층의 노드 개수만큼 생성을 하고 그 다음에 그것을 다음 은닉층으로 고대로 출력으로 전달된다고 하면은 리턴 시퀀스를 투로 설정하셔야지만이 이렇게요 화살표들이 개수만큼 은닉층의 노드의 개수만큼 생성이 되게 됩니다. 그리고 최종적으로 우리가 값을 하나를 예측을 해야 되기 때문에 출력 노드가 하나가 되려고 하면은 출력 노드 이전에 그 레이어에는 리턴 시퀀시스를 pers라고 두셔야지만이 출력이 화살표가 이렇게 하나씩 생성되지 않고 최종적으로 하나만 생성되는 이런 신경망을 우리가 만들게 됩니다. 자 그래서 만약에 여기다가 안쪽에다가 레이어를 히든 레이어를 4개를 쌓고 싶다라고 하신다고 하면은 리턴 시퀀시스를 true로 되어 있는 것을 3개로 설정하시고 마지막에 그 히든 레이어 은닉층에는 리턴 시퀀스를 펄스라고 설정하시면 됩니다. 요런 방식으로 깊은 순환신경망을 여러 개를 레이어를 쌓을 수가 있습니다. 자 앞에서 설명드렸던 것대로 우리가 이제 코드를 한번 좀 작성을 해봤습니다. 그래서 지금 여기선 두 개의 레이어를 쌓은 거죠. 그래서 첫 번째 레이어에는 리턴 시퀀시스를 투르라고 설정을 하셔야 되고요. 그다음에 두 번째 은닉층에는 리턴 시퀀시스를 설정하지 않았습니다. 근데 디폴트 값을 앞에서 말씀드렸지만 디폴트 값에 리턴 시퀀시스는 펄스로 설정되어 있습니다. 그래서 요렇게 코딩을 하셨을 경우에는 앞에서 있는 페이지에서 보시는 것처럼 하나의 은닉층은 이렇게 연결되어지고 그 다음 리턴 시퀀스를 pers라고 설정하시게 되면 최종적으로 출력되는 노드는 하나만이 생성되게 됩니다. 자 이렇게 해서 우리가 두 개의 레이어를 쌓아서 깊은 순환신경망을 하나 만들어 보도록 하겠습니다. 그리고 컴파일 함수를 앞에서 설명드렸던 것처럼이 신경망의 로스 함수는 민스퀘어 에러를 사용하고 그 다음에 평가 매출액은 ma를 씁니다. 로스나 매트랙에서 사용했던 mse나 ma는 서로 비슷한 개념입니다. 둘 다 로스값을 계산할 때 우리가 활용하는 어떤 그런 함수이긴 한데 msa와 ma가 서로 계산 방법이 살짝 다르기 때문에 서로 상호 보완적인 어떤 측면들을 갖고 있기 때문에 우리는 로스 함수를 mse와 MA 둘 다 사용하도록 하겠습니다. 자 이렇게 신경망을 우리가 구성한 다음에이 신경망이 어떻게 구성되어 있는지를 확인해 보시려고 하면은 모델 점 서머리 써머리라는 함수를 이용을 해서 모델의 신경망이 어떻게 구성했는지를 우리가 다시 한번 확인해 볼 수가 있습니다. 자 이렇게 지금 여기 보시면 난으로 설정되어 있는 부분들이 보이시죠 요 난이라고 설정되어 있는 부분들은 실제 배치 사이즈로 배치 사이즈의 크기가 들어갈 위치라고 보시면 됩니다. 한번에 신경망에 배치 사이즈가 얼마 설정되느냐에 따라서 필드에 배치 사이즈가 들어가게 될 것입니다. 자 이번에는 양방향 순환 신경망에 대해서 설명을 드리도록 하겠습니다. 앞에서 rnn에서는 중간에 히든 레이어의 노드가 각각 하나씩 존재했었죠. 근데 지금 여기 양방향 순환신경망에는 두 개의 노드가 존재하는 것을 확인할 수 있습니다. 방향성으로 봤을 때는 지금 x1에서 X4 이쪽 방향으로 갔을 때 단방향 순환 신경망에서는 이렇게 연결되어지는 노드만 갖고 있었죠. 근데 앞으로만 보는 것이 아니라 다시 뒤쪽으로도 데이터를 들여다 봐야 될 때가 필요하기 때문에 그래서 요 연결이 앞으로도 연결되어지지만 뒤로도 연결될 수 있게끔 이렇게 해서 앞뒤를 참조해서 현재 값을 업데이트 할 수 있게끔 그렇게 만들어 주는 것을 우리는 양방향 순환 신경망이라고 우리가 부릅니다. 자 양방향 순환 신경망을 구성할 때는 앞에서 생성했던 심플 rna에다가 인자 값은 심플 아래는 인자 값이 그냥 그대로 들어가게 되죠. 그리고 그 심플 rnn을 바이 디렉션이라는 함수로 감싸 주시면 됩니다. 자 근데 여기서 주의하실 것은 뭐냐면요 바이디렉셔널 형태로 함수를 구성하실 때 앞의 학원 형태가 좀 다르다는 것을 확인할 수 있죠. 앞에서는 자 앞으로 다시 넘어갈게요. 앞에서는 시퀀셜 모델로 우리가 생성을 했습니다. 케라스에서 혹은 파이토치에서 시퀀서리나 함수를 사용해서 신경망을 쌓을 때는 앞의 레이어의 출력이 다음 레이어에 입력으로 들어가게끔 연속될 때는 레이어에 연결로 우리가 모델을 구성할 때는 시퀀셜 모델로 사용합니다. 그래서 이것을 우리가 식견설 모델이라고 순차적인 모델이라고 얘기하는데 지금 여기서 보시는 요 함수는 펑셔널 함수입니다. 반드시 앞에서 출력했던 그 레이어의 출력이 다음 레이어 입력으로 된다는 것은 아닙니다. 그래서 여기 보시면은 바이 디렉션을 입력으로는 우리가 인풋요 쉐입을 사용해서 입력으로 집어넣었지만 출력은 x로 출력된다는 것을 확인할 수 있습니다. 자 그래서 앞에서 시퀀셜 형태의 모델로 만들었던 것처럼 지금 여기서 펑션월로 만들시려고 하면은요 댄스 레이어의 입력으로 앞에 x의 출력을 입력으로 집어 넣어 주시면 됩니다. 자 그래서 전체를 보면 임프트가 바이 디렉션을 입력으로 들어가게 되고요. 그에 대한 출력이 x로 나오게 되고 그 x를 다시 랜스레이어에 입력으로 집어넣고 출력으로 나오게 됩니다. 지금 여기서 요 inft가요 아래에 있는 요 x라고 보시면 되겠죠. 자요 입력을 바이 디렉션을 rna에다가 이렇게 집어넣게 됩니다. 심플 rnn을 한 개 그 다음에 두 개 이렇게 설정하시게 되는 거죠. 그래서 파라미터도 앞에서 봤던 심플 rnm보다 2배 파라미터가 설정이 되게 됩니다. 생성이 되게 됩니다. 그리고 댄스 레이어에 한 개로 이렇게 연결되는 이 구조 요 구조 여기서의 출력이 바로요 아웃풋이라고 보시면 됩니다. 이렇게 함수형으로 선언하신 다음에 모델을 모델에다가 인풋과 아웃풋을 설정해 주시면요. 입력이 이렇게 들어가게 되고 그 다음 요 출력이 두 번째 인자로 연결되어 주게 됩니다. 그래서 모델을 하나 선언하게 되고요. 그다음에 요 모델의 컴파일 조건 학습 조건을 로스함수는 mse 그다음 매출액은 mae 옵티마이저는 아담으로 설정되게끔 그렇게 했습니다. 자 이번에는 장단기 매물입니다. 롱숏 텀 메모리라고 하는 건데 그래서 앞자만 따서 lstm이라는 그런 신경망이 구조죠 이는 아래는 보다 상대적으로 짧은 시퀀스 데이터에 대해서만 좋은 성능을 보이는 단점이 있었던 rn에 비해서 장기적으로 기억해야 될 것을 장기적으로 기억할 수 있는 구조로 갖고 있는 신경망이 lstm 구조입니다. 타임스텝이 길어질수록 앞에 시점의 정보가 뒤로 전달되고 소실된 현상이 발생했었는데 이에 대한 단점을 보완했습니다. 자 그래서 lstm 구조는 앞에서 사용했던 심플 아레나고 차이점이 없습니다. 앞에서 썼던 심플 rna를 드러내고 그 위치에다가 lstm을 사용하시면 동일하게 사용하실 수 있습니다. 지금 여기서는 히든 레이어를 하나로 쌓으는데 앞에서 심플 rnn을 그 심층 신경망으로 두 개의 레이어 3개 레이어 쌓았던 것처럼 동일하게 lstm도 심층신경망으로 구성을 해줄 수가 있습니다. 자 이번에는 게이트 순환율이 게이티드 리커런트 유닛이라고 되어 있는 gru에 대해서 설명을 드리도록 하겠습니다. 안에서는 안에서는 이런 형태로 구성이 되어 있긴 하지만 실제 사용하실 때는 gru도 lstm 하고 특별하게 차이가 나는 어떤 그런 부분들은 많이 존재하지 않기 때문에 비슷하게 사용할 수가 있습니다. 근데 여기서 여러분들이 기억하실 것은 gru는 성능을 lstm하고 비슷하게 만들려고 노력을 했고 구조는 lstm보다 단순화시켰다 요것이 포인트가 될 것 같습니다. 그러면은 여기서는 lstm하고 비슷하다고 해서 성능은 그렇게 목적으로 하고 설계를 했지만 실제 돌려보면 gru하고 에리스템하고 차이가 나는 경우들이 종종 발생하니까 lsm하고 주의할유는 돌려 보셔서 성능이 어떻게 나오는지 우리 데이터셋에 대해서 성능이 어떻게 나오는지는 꼭 확인하시고 넘어가시는 것이 필요합니다. 네 다음 8강에서는 모델의 학습과 학습 결과에 대해서 살펴보도록 하겠습니다. 감사합니다.
네 안녕하세요. 8강에서는 모델의 학습과 결과 분석에 대해서 다루도록 하겠습니다. 이번 8강에서는 모델 학습을 위한 데이터 준비 단계와 그다음에 케라스로 활용한 시계열 딥러닝 단계로 진행을 하도록 하겠습니다. 자 먼저 모델 학습을 위한 데이터 준비 과정입니다. 학습용 피처와 레이블을 분리하도록 하겠습니다. 앞에서 데이터프레임에다가 그 기온 습도 풍향 풍속 강수량 DSR dsrtqf요 데이터들을 다 집어넣고 추가적으로 총 발전량 데이터까지 추가를 해 놓은 상태입니다. 그래서 드랍이라고 하는 함수를 이용하시면요 지금 제주 태양광 총 발전량만 빼고이 칼럼만 빼고 나머지 데이터는 다 x에다가 어사인을 하게 됩니다. 입력을 하게 되는 거죠 그리고 두 번째는 제주 태양광 총 발전량만 y로 저장을 하게 됩니다. 그래서 x와 y를 합하면은 muggf에 있는 컬럼 데이터가 다 들어가게 되겠지만 x와 y가 서로 분리가 됐죠 그래서 y에는 레이블 그다음에 x에는 우리가 입력으로 집어넣게 될 데이터들 이렇게 두 가지로 분리를 하도록 하겠습니다. 그리고 전체 데이터의 개수는 현재 7186개입니다. 그래서 분리가 된 데이터의 x.chap도 7186개 이렇게 되어 있습니다. 그다음에 이제 훈련 데이터 테스트 데이터를 나누도록 하겠습니다. 전체 데이터가 7186개면은이 7186개 중에 6,500개는 트레인 데이터로 나머지는 우리가 테스트 데이터로 분리를 하도록 하겠습니다. 자 x와 y 데이터를 우리가 전체를 좀 하는 단계에서 정규화를 하려고 합니다. 정규화가 갖고 있는 의미는 뭐냐면요. 각각의 데이터들이 서로 단위가 다릅니다. 앞에서 보셨던 것처럼 기온과 습도는 서로 단위가 다르죠. 풍속과 풍향도 강수량도 dsr도 다 단위가 다릅니다. 그런데 이것을 우리가 정교화를 하게 되면 모든 숫자를 범위를 0에서 1 사이의 값으로 리스케일링을 해주게 됩니다. 리스케일링 해주게 되면은 앞에서는 특정한 값은 높은 값을 형성을 하고 특정한 값은 또 낮은 값으로 형성이 되어지는데 이곳의 분포를 일정하게 만들어줘서 특정한 피처가 특정한 요소가 신경망에 많은 가중치를 설정하게 되는 것을 막아주게 됩니다. 그래서 반드시 데이터를 우리가 신경망이 집어넣기 전에 정교화 작업은 꼭 해 주셔야 됩니다. 자 이렇게 정교화를 하기 위해서 사이클론 안에 민맥스 스케일을 활용하도록 하겠습니다. 이 민맥스 스케일러는 0에서 1 사이의 숫자 값으로 스케일을 변경해 주게 되는 스케일러죠. 자 그래서 요 민맥스 스케일러를 이용해서 노말라이즈 함수를 우리가 구성하게 해주게 되면은 자 x란 값을 우리가 복사해서요 x 점 카피를 했을 때는 요거는 하드카피죠 실제적으로 물리적인 메모리 복사를 해서 x 언더바 놈이라는 변수를 하나 생성하게 됩니다. 그래서 요것을 자 이게 정교화를 거친 다음에 이것을 numpy 형태로 데이터를 바꿔서 x 데이터라는 데이터 타입으로 우리가 저장을 하도록 하겠습니다. 자 이렇게 정교화된 데이터를 우리가 그다음에는 멀티베리에이트 데이트라고 하는 데이터라고 하는 함수를 사용해서 시계열 데이터 타입으로 변환해 주도록 하겠습니다. 12월 데이터 타입으로 변환해준다는 의미는 어떤 의미냐면요. 지금 데이터의 구조가 아까 보셨던 것처럼 인풋 디멘션과 시퀀스 랭스 타임스 탭이죠. 이런 형태로 데이터 타입을 바꿔주고 그다음에 우리가 앞에서 전체 데이터를 트레인과 밸리에이션으로 테스트로 나눠주기도 했었죠. 그래서 데이터 사이즈에 맞게끔 이런 3차원의 텐서 형태로 바꿔주는 것을 우리가 의미한 겁니다. 그래서 멀티베리에이트 데이터라는 함수를 실행하시면 여기에 인자값으로 x 데이터 그다음 y 데이터요 데이터는 정규화를 한 값이죠. x 데이터 y 데이터 레이블이죠. 이것을 집어넣고 지금 첫 번째 요것은 트레인스 플룻을 해서 train 데이터를 우리가 집어넣게 되는 것입니다. 여기에서 요 개수대로 6476개를 잘라 가지고 전체 데이터에서 그만큼 잘라서 xtrain과 y 트레인 데이터를 생성해 주고요. 그다음에 두 번째 멀티베리트 데이터 함수의 trainsplet의 여기다가 난 값을 집어넣게 되시면요. 그다음에는 요게 테스트 데이터가 만들어지게 되는 것입니다. 자 이렇게 해서 train 데이터와 테스트 데이터를 우리가 생성한 다음에 요것을 이용해서 우리가 신경망에 집어넣도록 하겠습니다. 자 데이터 입력 파이프라인이라고 하는 것이 있는데 텐서플로에는 tf.데이터.데이터셋이라고 하는 요 패키지가 있습니다. 자 여기에서 프롬 텐서 슬라이스라는 함수를 사용하시면요. xtrain & 데이터요 extrain이라는 데이터는 기본적으로 우리가 하드디스크 혹은 SSD 같은데 저장될 수 있는데 그 데이터를 읽고 와서 메모리에 로딩을 하게 되고요 그래서 메모리 로딩하게 되는 그 함수가 캐시라고 되는요 함수입니다. 그래서 메모리에다가 일단 캐시 버퍼링을 해 놓고요. 버퍼링 된 데이터를 배치 사이즈대로 잘라 가지고 트레인 언더바 데이터라고 하는 변수에다가 배치 사이즈대로 잘라서 전달해 주게 되는 부분이요 코드 부분이라고 보시면 됩니다. 그리고 테스 데이터는 캐시를 사용하지 않고요. 배치 사이즈로 끊어 가지고 테스트 데이터로 전달해 주게 됩니다. 자 이렇게 그 기본적으로 데이터를 가져와서 배치 사이즈를 끊어 가지고 전달되어지는 요 부분을 데이터 입력 파이프라인이라고 부릅니다. 자 그렇게 해놓고 그다음에 우리가 lstm 모델에다가 요 데이터를 넣는 것으로 한번 가정해 보도록 하겠습니다. 요 코드는요 에레스텐 모델 설정 코드는 앞에서 이미 보셨던 코드죠. 그래서 lstm에다가 그 h 유니츠 요것을 100으로 설정을 하고 recorent drop 아웃 이것은 0.5로 설정을 하고 커널 이니셜 할 때는 설정으로 설정을 해주신 다음에 그다음에 lstm을 히든 레이어를 하나만 쌓고 그다음에 출력에다가 하나만 출력하기로 하고 그 다음 그 사이에다가는 드랍아웃을 0.5 정도로 설정을 해가지고 그 데이터가 적은 상태에서 oo 피팅이 되는 것을 방지하기 위해서 드롭아웃을 추가하도록 하겠습니다. 자 이런 식으로 함수 형태로 모델을 생성한 다음에 요 함수를 불러오는 방법은 모델을 통해서 모델 함수를 통해서 임프트 그 다음 아웃풋츠 이렇게 해주시면 모델이 객체로 하나 생성이 되게 되어주고요. 그 다음에 요 모델을 컴파일 함수에다가 로스 매출액 옵티마이저를 설정을 해 가지고이 모델을 우리가 어떻게 어떤 조건으로 학습할지 그 학습 조건에 대한 부분들을 설정해 주게 됩니다. 그리고 여기 원인이 이렇게 뜨는데요. 요 원인은 여러분들이 그 한번 알아두실 필요는 있습니다. 그 실제적으로 그 CU DNA 코너리라고 하는 요것을 cudna는 그 엔비디아 그래픽 카드를 이용해서 가속을 시키는 라이브러리를 의미합니다. 근데 지금 여기서 recont drava 옷을 사용하지 않을 경우에는 CU 뒤에는 라이브러리를 사용할 수 있습니다. 그래서 CU 뒤에는 라이브를 사용하게 될 경우에는 학습 속도나 그 다음에 추론 속도가 굉장히 좀 빠르게 되는데 현재 리커런트 드랍이라는요 조건을 넣음으로 인해서 상대적으로 CU 뒤에는 라이브를 사용할 수 없다라는 어떤 그런 메시지입니다. 그래서 나중에요 reconse drabout 조건을 한번 좀 빼보시면 학습 속도가 시간이 좀 차이 나는 것을 확인할 수 있습니다. 근데 제가 요것을 왜 넣었을까요 이거는 리커런트 드롭이라는 조건이 들어가야지만이 성능이 그 로스값이 더 낮게 나오기 때문에 제가 그것 때문에 좀 요걸 집어넣습니다. 빠르다가 다 좋은 건 아니고요 예 치유 dnn을 쓰려고 하면은 recons dravat을 사용하면 안 된다는 것을 원인 메시지로 알려주고 있습니다. 자 그래서 이렇게 우리가 신경망을 구성했을 때 리컨트 드롭아웃을 주고요 안에서 보이지 않는 옵션이 있죠. 리턴 시퀀시스라는 옵션이 펄스라고 되어 있습니다. 그래서 지금 은닉층에 있는 요것이 출력으로 이렇게 화살표가 이렇게 나오지 않고 출력층의 개수가 출력의 노드의 개수가 여러 개가 되지 않고 한계가 될 수 있었던 것은 뭐냐면은 여기에 리턴 시퀀스라는 옵션이 펄스로 되어 있기 때문에 이렇게 하나로 수렴하게끔 신경망이 구성됩니다. 그다음에 은닉증을 두 개를 쌓을 때 이렇게 해주시면 된다고 말씀을 드렸죠. 그래서 위에 거 첫 번째 거는 recurent drop 아웃 여기서 좀 하나가 좀 빠지긴 했네요 그 리턴 시퀀시스가 트루로 되어 있는 옵션이 하나 더 추가되어야 되는 거고요. 그리고 밑에는 리턴 시퀀시스가 펄스라고 되어 있습니다. 이렇게 설정해 주시면 이와 같은 형태로 신경망을 구성하실 수가 있습니다. 자 차이는 요 레이어 하나 더 추가된 거고 그다음에 이런 식으로 구성을 하시려고 하면은 이렇게 출력이 나오려고 하면은 리턴 시퀀시스가 하나가 옵션을 더 추가되면 된다는 것을 말씀을 드렸습니다. 자 그 다음에 우리가 그 케라스의 콜백함수를 한번 설명을 드리도록 하겠습니다. 케라스에는 콜백함수라는 기능이 있는데 콜백 함수는 학습 진행 중에 러닝레이트라든가 학습 중단 조건들 그다음 모델 저장 조건 같은 것들을 설정할 수 있습니다. 케라스에는 콜백함수의 종류가 한 7가지 정도가 있는데 가장 많이 쓰는 3가지 조건을 제가 여기서 한번 좀 줘 봤습니다. 그래서 첫 번째가 리듀스 lr on flature라고 하는 요 함수입니다. 요 함수는 러닝 레이트를 감소시키는 역할을 해줍니다. 근데 조건이 있죠 자 모니터 조건인데 밸리데이션 mae 값이 만약에 페이션트 값이죠. 일곱 에폭 동안에 더 이상 감소하지 않는다고 하면은 그 러닝 레이트를 절반 0.5죠 0.절반으로 줄여주는 어떤 그런 콜백함수입니다. 그래서 학습이 계속 진행되어지다가 밸리데이션 MA 값이 감소하지 않으면 일곱의 폭 동안 기다렸다가 러닝 레이트를 0.5 절반으로 줄여주게 되는 콜벳 함수가 리듀스 lr1 플래처라는요 함수입니다. 그리고 두 번째는 얼리 스타핑이라는 함수인데요 만약에 밸리데이션 MA 값이 20에폭 동안 수매폭 동안에 감소하지 않는다고 하면은 얼리스타핑 학습을 중단하게 되는 조건이 얼리스타킹이란 요 콜백 함수입니다. 그리고 세 번째 모델 체크 포인트란 요 함수는 여기서도 모니터링 조건을 밸리데이션 ma를 모니터링 하고 있다가 지금 여기서는 우리 그 패션트 값은 없죠 대신에 이제요 조건이 있습니다. 세이브 베스트 온이라고 되어 있는 것이 투로 설정되어 있죠. 만약에 이전 값보다 밸리데이션 MA 값이 이전값보다 더 낮은 값이 만약에 존재한다고 하면은 그때는 세이브를 합니다. 어떤 파일로요 베스트 점 h5라는 파일로 저장을 하게 됩니다. 그리고 원래 모두의 이게 로우하고 하이로 설정할 수도 있는데요 모드를 오토로 설정해 주실 경우에는요 모니터 조건에 따라서 알아서 동작을 하게 됩니다.이 모니터 조건에는 로스값만 들어올 수 있는 것이 아니라 어퓨식 값도 들어오는 경우도 종종 있습니다. 근데 어큐러시는 높을수록 좋은 거고 그다음에 로스값은 낮을수록 좋은 거기 때문에이 모드 값을 이게 로우냐 하이냐 이렇게 설정을 해 주셔야 되는데 그 값을 우리가 그렇게 설정하지 않고 오토로 설정을 해주시면요. ma나 어크로시나 어떤 조건이 되든간에 그 조건이 가장 베스트 컨디션일 때만 우리가 파일을 저장할 수 있게끔 그런 조건으로 설정해 주게 되는게요. 모드의 오토입니다. 자 이렇게 콜백 함수의 객체를 하나씩 만들어 준 다음에 그것을 리스트에다가 이렇게 담아주시고 그것을 콜백이라는 리스트명으로 우리가 선언한 다음에 그것을 모델 점 P 함수 안에 인자값으로 인수값으로 콜백스라고 되는 인수 값이 있습니다. 거기에다가 콜백을 넣어 주시면 자동적으로 케라스 콜백 함수 설정이 되어지게 됩니다. 그래서 케라스에는 pc라는 함수가 있는데 요것이 앞에서 컴파일 조건 컴파일 조건은 우리가 로스 함수로 ms를 쓰고 매출액으로 ma를 쓰고 옵티마이저는 아담을 쓰고요. 그다음 러닝레이트는 이렇게 설정이 되어 있죠. 이렇게 설정이 돼 있는 그 모델을 학습시킬 때는 p 함수를 불러옵니다. 자 그 모델에다가 훈련 데이터를 트레인 언더바 데이터로 집어넣고 그 다음에 에폭이라고 하는 것은 몇 번을 학습을 시킬 거냐라고 얘기하는 건데 에폭은 아시는 분은 아실 테지만 한번 설명을 드리고 넘어가겠습니다. 요 에폭이라고 하는 것은 우리가 갖고 있는 데이터의 개수가 전체가 몇 개였죠. 전체가 훈련 데이터가 6476개였습니다. 요 6476개를 한 번 다 소진하게 되면은 요것을 1fb라고 정의합니다. 그래서 1 에폭을 6475개 데이터를 다 소진했을 때가 1의 폭인데 그렇게 150번의 데이터를 반복해서 소진하는 그 횟수가 150의 폭이라고 정의하시면 될 것 같습니다. 근데요 배치 사이즈라고 되어 있는 것은 그러면 한번 우리가 데이터를 신경망이 집어넣을 때 몇 개씩 집어넣을 거냐 하는 것이 배치 사이즈입니다. 그래서 배치 사이즈 개수만큼씩 밀어 넣어서 전체 데이터를 다 소진해서 1회복 그렇게 해서 전체 150번을 동작하는 것을 150의 폭이라고 정의할 수 있습니다. 근데 여기서 150이라고 정했지만 만약에 얼리 스타핑 조건에 걸렸어요 밸리데이션 MA 값이 20 에폭 동안에 더 이상 감소하지 않는다고 하면은 중간에 학습이 중단됩니다. 그럼 150번까지 가지 않고 중간에 학습이 끝나는 그런 상황이 발생할 수 있습니다. 자 그래서 이렇게 우리 lstm 모델을 우리가 학습을 시킬 때 하이퍼 파라메타라는 개념이 있습니다. 우리가 가중치값 신경망의 가중치 값을 우리가 업데이트하고 개선하면서 모델을 학습을 시키게 되는 건데 그 파라미터 말고 하이퍼 파라메타라는 개념이 있죠이 하이퍼 파라미터는 파라미터 위에 있는 개념이라는 것이 하이퍼 파라미터입니다. 그래서 파라미터를 튜닝하는데 있어서 영향을 주는 더 크게 큰 스케일로 영향을 주는 어떤 그런 파라미터를 하이퍼 파라미터로 부릅니다. 만약에 h 사이즈 있죠. 히든 노드의 개수를 변경을 했을 때는 파라미터가 변경이 되겠죠. 그다음에 시계열 신경망 레이어의 개수 시퀀스 랭스 퓨처 타겟 이런 것들을 변경을 해주게 되면은 하이퍼 파나메타라고 보시면 될 것 같습니다. 그래서 요런 것들을 어떻게 설정하시느냐에 따라서 최종적으로 나오는 모델의 결과값이 영향을 받도록 되어 있습니다. 자 고런 부분들을 하이퍼 파나메타라고 얘기할 수 있고요. 자 그래서 이제 그 여러가지 모델들 좀 집어넣어서 우리 데이터셋을 학습시켰던 결과를 한번 비교해 보도록 하겠습니다. lstm gru 모델 3개를 비교해 보도록 하겠습니다. 그래서 히든 유닛은 100개로 고정을 하고 모델만 바꿔 가지고 MA 값하고 mse 값을 비교해 보도록 하겠습니다. 그래서 심플 rn에는 실제적으로 잘 사용하지는 않습니다. 그래서 로스 값이 3개 모델 중에 가장 높게 나오는 것을 확인할 수 있죠 자 그리고 lstm하고 gru는 gru가 나오게 된 그 목적 자체가 lstm 보다는 계산량을 줄이고 성능은 비슷하게 유지하기 위해서 만들어진 모델이 gro가 앞에 설명드리긴 했지만 상대적으로 두 개를 비교해 봤더니 lstm이 밸리데이션 MA 값으로 하나 아니면 밸리데이션 msa 값으로 더 낮게 출력되는 것을 확인할 수 있습니다. 그래서 이 모델 3개를 테스팅 해보고 지금 현재 우리 데이터셋에 대해서는 lstm이 가장 좋은 신경망임을 확인하고 lstm으로 고정을 하고 가도록 하겠습니다. 자 그런 다음에 여러가지 하이퍼 파라미터를 튜닝하거나 히든 유닛의 개수를 좀 조정해서 한번 실험을 해봤더니 95 1005개로 히든 유닛을 조정을 해봤더니 100개일 때가 ma나 mse 값이 가장 낮게 출력됨을 확인할 수 있어서 100으로 고정을 하도록 하겠습니다. 자 그다음에 우리가 열심히 준비했던 전처리에서 준비했던 그 데이터를 어떤 데이터를 집어넣을 때 가장 베스트 값이 나오는지 MA 값이나 mse 값이 가장 낮은 값이 나온지를 한번 실험을 해봤습니다. 근데 dsr과 하향 단파 데이터를 집어넣었을 때는 밸리데이션 MA 값은 0.05 그다음 밸리데이션 msd 값은 0.008이 나왔는데 dqf값 dsrtqf도 상관계수가 높았죠 dsr도 높았고 그래서 높은 두 개의 데이터를 넣었을 때 0.04471 값이 나와서 dsr만 집어넣을 때보다 더 좋은 성능이 나오는 것을 확인할 수 있습니다. 그런데 습도 데이터를 넣었더니 오히려 거꾸로 증가하는 현상을 좀 보겠습니다. 근데 여기선 좀 헷갈릴 수 있는 부분이 MA 값은 오히려 올라갔는데 로스값이 증가했는데 msa 값은 감소되는 두 가지의 지표가 서로 반대되는 방향으로 움직였다는 것을 확인할 수 있습니다. 그래서 평가를 할 때 지금 요것을 평가할 때 MA 값을 기준으로 할 것이냐 mse를 기준을 할 것이냐에 따라서 습도 때문에 더 로스값이 떨어졌다고 얘기할 수도 있고 증가됐다고 얘기할 수 있습니다. 네 그다음에 풍속까지 추가를 했을 때 ms의 값은 계속해서 내려감을 알 수 있죠. 그리고 습도를 다시 빼고 풍속망 집어넣었을 때는 다시 증가했습니다. 그래서 습도보다는 풍속이 ms의 값은 낮고 그다음에 밸리데이션 MA 값도 낮다는 것은 확인할 수 있습니다. 자 그다음 피처에다가 DSR dqf 습도 풍속 기온 강수량 데이터를 다 집어넣었을 때 가장 낮은 값을 보임을 확인할 수 있습니다. 이런 식으로 해서 어떤 피쳐가 학습에 얼마만큼 도움이 되는지를 여러가지 실험을 통해서 우리가 확인할 수 있고 그다음에 상대적으로 그 강수량이라든가 그다음에 풍속 같은 그런 데이터는 그 상관계수가 그렇게 높지는 않았지만 그래도 도움이 된다는 것을 우리가 확인할 수 있습니다. 자 테스트 결과를 우리가 한번 이렇게 그 그래프를 한번 좀 그려봤습니다. 상대적으로 밸리데이션 로스값과 그 다음에 밸리 그냥 일반적인 로스 값은 낮게 설정된다는 것을 우리가 확인할 수 있었고요. 그다음에 MA 값은 상대적으로 좀 높은 값으로 설정이 됐죠. 앞에서 보시는 대로요 값이요 값보다는 MA 값보다는 MS 값이 낮게 설정되는 것을 우리가 확인할 수 있었죠. 자 그것을 그래프에서 보여주고 있고요 그다음 테스트 결과값을 보면은 실제 파란색에 있는 요 부분이 정답 값입니다. 요게 레이블 값인데요. 오렌지색으로 되어 있는 주황색으로 되는요 부분이 예측값이라고 보시면 됩니다. 근데 좀 이렇게 낮은 값에 대해서 5차이를 꽤 크게 나오죠 이게 그 이유는 뭐냐면 그 dsr이나 DSR DPF 값이라 하더라도 실제적으로 유효하지 않은 데이터가 존재하기 때문에 분명히 DSR 값은 0 값인데 발전량은 어떤 특정한 밸류를 갖고 있기 때문에 거기에서 오는 오차 값으로 이해하시면 될 것 같습니다. 그래서 이해에 대한 부분들 이에 대한 부분들을 개선하시게 되려고 하면은 실제 DSR 값이 낮았을 때 그것을 어떻게 보정할지에 대한 부분들을 고민해야 되는 어떤 그런 부분인 것 같습니다. 그런 부분들을 다른 데이터로 보완할 수 있다고 하면 가장 좋은데 아직까지는 그 낮은 값에 대한 보완할 수 있는 데이터셋은 우리가 아직 존재하지 않기 때문에 그런 부분들을 좀 찾아서 보완하실 경우에 요런 부분들이 개선되지 않을까고 생각을 한번 해 봅니다. 그래서 이건 겹쳐놓은 어떤 그런 그래프고요. 이것은 총 발전량과 발전 예측량을 각각 따로 이렇게 그려놓았던 그런 그래프로 보시면 될 것 같습니다. 네 지금까지 이렇게 해가지고 우리가 그 태양광 발전량 예측을 했었는데요. 여러분들이 좀 이후에 추가적으로 실험을 해보시고 한번 노력을 해보실만 어떤 그런 부분들을 제가 정리를 해봤습니다. 태양광 발전소의 발전 설비 용량 데이터가 존재했는데 그 데이터를 추가해서 학습해 보기를 추천을 드립니다. 근데 요거는 좀 어려운 것 중에 하나가 그 앞에 있는 설비 용량 데이터를 2000년 아니 2020년 2021년 2022년 이렇게 매해마다 발전량 설비 용량이 계속해서 증가되는데 그 양이 너무 크게 증가가 돼 가지고 앞에서 학습시켰던 그 데이터를 가지고 계속해서 설비 용량을 보완하는 어떤 그런 작업들을 계속했어요 해야 되는 걸로 그렇게 이해를 하시면 될 것 같습니다. 그래서 설비는 굉장히 빠른 속도로 제주도에서 증가되고 있는 그런 상황이라는 거죠. 그래서 설비 용량 데이터를 추가하게 될 경우에는 아마 도움이 되지 않을까 그렇게 좀 생각을 하게 됐고요. 그다음에 앞에서 논문에서 앞선 논문에서 우리가 봤던 것이 일조량과 혹은 1조 시간요 데이터를 추가했을 때 상관계수가 굉장히 높아서 우리가 그 발전 설비 용량뿐만 아니라 우리가 전체 용량 발전량을 예측하는데 도움이 많이 됐다고 그렇게 논문에서 설명을 했던 것을 우리가 확인할 수 있었죠. 그래서 1조 시간 데이터를 추가해 보시는 걸 권장을 드리고요. 그다음에 발전량이 전력 소비량을 상회하는 경우가 좀 발생합니다. 2019년 20년 21년에 제주도에서 계속 그런 상황이 발생한다고 하는데 그러다 보니까 블랙아웃이라는 거 그것이 소비량이 생산량을 넘칠 때 블랙아웃이 발생하기도 하지만 발전 설비의 용량이 너무 넘쳐서 그럴 경우에도 블랙아웃이 발생합니다. 그래서 제주도에 출력제한 조치들이 종종 발생을 발동을 하고 있다고 얘기를 합니다. 자 그랬을 때 출력 제한 조치가 걸렸을 때는 특정한 발전소의 설비를 멈추게 된 어떤 그런 상황이 발생하는데이 출력 제한조치에 대한 데이터가 없을 경우에는 이제 설비 용량하고 그 발전량에 대한 부분들이 선형적으로 매칭되지 않는 어떤 그런 상황이 발생하기 때문에 출력제한 조치가 발동했을 때 이에 대한 부분들을 데이터로 우리가 추가적으로 확보할 수 있다면 정확한 우리가 발전량을 예측할 수 있는데 도움이 될 것 같습니다. 그리고 태양광 발전량과 상관관계 갖는 우리가 아직까지 발견하지 못한 그런 데이터셋이 있다고 하면은 그것으로 보완하시는 것도 꽤 중요한 어떤 이슈가 될 것 같습니다. 네 이상으로 날씨 데이터를 활용한 태양광 발전량 예측 수업을 모두 마치도록 하겠습니다. 감사합니다.
닫기

날씨마루 개인정보 처리방침

위로가기
닫기

도움말

닫기

불편 및 건의사항 접수

닫기

커뮤니티 사용자의 의무와 준수사항

커뮤니티 사용시 아래 각 호에 해당하는 경우에는 이용자의 서비스 이용을 일부 또는 전부 제한할 수 있습니다.
서비스 이용을 일부 또는 전부 제한하는 것에는 이용자의 회원자격 박탈, 서비스 접속 차단, 이용자가 올린 게시물의 삭제 등을 포함합니다.

- 이용자가 제공한 자신의 인적 사항에 관한 정보가 허위(이름,이메일이 실제와 다른 경우 등)인 것으로 판명되거나, 허위라고 의심할만한 합리적인 사유가 발생한 경우
- 이용자가 회원가입신청 시 허위의 내용을 입력하였을 경우
- 이용자가 서비스를 이용하여 불법적인 게시물(허위사실 유포, 명예훼손적 표현, 욕설 내지 비방, 상업광고, 음란 또는 저속한 글이나 사진 또는 동영상 등)을 올리는 등과 같이 서비스의 존립목적에 반하여 사회의 안녕 질서 또는 미풍양속을 저해하는 행위를 하였을 경우 - 이용자가 서비스를 이용하여 부당한 민원을 제기하였을 경우
- 기타 기상청이 서비스의 이용제한이 필요하다고 판단하는 경우(이용자가 특정 후보 또는 정당에 대한 지지의사를 밝히는 게시물을 올리는 등의 행위를 하여 서비스 내에서 의견대립이나 논쟁이 발생하는 경우 등 포함)