지난 12월 7일 토요일, 데잇걸즈 수료생 30여 명이 모인 <2024 데잇걸즈 네트워킹 파티>를 성료했습니다. 4명의 TFT이 여러 후원사의 도움을 받아 진행되었는데, 재밌게 진행했던 만큼 과정을 회고하며 공유하면 좋을 것 같아 노트북 앞에 앉았습니다. 10월부터 12월까지를 쪼개 적어보려 하고, 가볍게 적을거니 가볍게 봐주시면 좋을 것 같습니다.

저희 다같이 나온 사진도 있지만 초상권 문제로 행사장 사진만 올립니다 ㅠㅠ

 


지난 10월, 작년 이맘때 쯤 데잇걸즈 수료생이 모여 네트워킹 파티를 진행했습니다. 이제 쿨타임 찼으니 모일 때가 되었는데, 올해는 안 모이나? 저는 지난 네트워킹을 진행했던 D님에게 연락했습니다. "올해는... 안 모이나요...?" 


데잇걸즈는 지금은 프로그램이 종료되었지만, 데이터 분석가로 취업을 희망하는 여성 인재들에게 교육 기회를 부여하고 IT분야로의 사회 진출을 돕는 프로그램입니다. 1기부터 7기까지 진행되었으며, 저는 2022년 6기를 수료하며 데이터 분석가로 직무 전환에 성공하였습니다. 약 4개월 간 동고동락을 같이 한 동료들이 각자의 분야에서 제 몫을 톡톡히 하고있었고, 끼리끼리는 만나고있었지만 다같이 만나면 또 반갑다고 뽀뽀뽀를 하는(실제로는 하지 않습니다) 사이였기 때문에 그들의 얼굴이 보고싶었습니다.

 

D님에게 연락을 했더니 '안그래도 (작년에 같이 진행한) Y님도 G님한테 연락이 왔다고 했어요'. 아, 당신들은 모두 생각이 있었군요. 그렇게 저(N), D님, Y님, G님이 모여 TFT가 결성되었습니다. TFT 결성 이야기는 정말 이게 다입니다.

 

10월 12일, 저희는 단톡방에 모여 각자가 생각한 네트워킹 파티 포맷을 공유했습니다. 사실 저는 우리 기수끼리 도란도란 연말 파티 분위기를 생각했는데, 팀이 생긴 만큼 굳이 작은 규모로 할 필요는 없을것 같았습니다. 일단 이런저런 의견을 모아 얼개를 짜고 다음날 오전에 회의를 하기로 했습니다.

 

결론은 연말 파티 컨셉의 / 발표를 하는(지난 모임의 피드백) / 전 기수 모임이 되었습니다.


10월 13일 오전, 비대면으로 모여 어제 나온 이야기에 살을 붙여나갔습니다. 한 가지 우려되는 것은 장소 대관 등의 문제로 참가비를 책정해야하는데, 3만원이 넘어가는 순간 약간의 거부감이 생긴다는 점이었습니다. 동시에 3만원은 무언가를 넉넉히 준비하기에 빠듯한 금액이라는 것도요. 이 문제를 타개하기 위해 모임 시간은 식사 시간을 피하기, 개인 후원 받기 등 다양한 의견이 나오던 중 G님이 넌지시 이야기했습니다. 

 

'우리 그냥 후원 받으면 안 돼요?'

 

아, 똑똑하신 G님. 약간의 스포를 하자면 G님은 이후에도 위기의 순간 번뜩이는 재치를 여러 차례 보여주셨습니다.

 

순간 제가 데잇걸즈를 하던 때 외부 데이터를 구하기 위해 무작위로 기업에 제안서를 넣었던 기억이 떠올랐습니다.

'그러면, 저희 지금 후원사를 한 번 물색해보죠. 우리가 어떤 조직인지 소개하고, 이런 모임을 기획하고 있고, 참여 대상은 IT업계 종사 여성으로 타겟이 명확하니 적은 비용이라도 홍보가 가능하다면 후원해줄 기업이 있을 지도 몰라요. 저희 각자 어떤 물건을 상품으로 받고싶을 것인지 카테고리만 정하고 지금 제안서를 씁시다. 10월이라 결재 받고 후원 확정되기까지 시간이 걸릴 수 있어 2주 안에 끝나야할 것 같아요.'

 

그렇게 저희는 1차로 IT도서/강의 할인권을 경품으로, 데잇걸즈 프로그램 주관사/여성 대학의 금액 후원을 목표로 제안서를 작성했습니다. 되면 되고, 안 되면 어쩔 수 없지! 

 

그렇게 각 분야 별로 담당자를 지정하여 제안 메일을 보냈고, 회신을 기다렸습니다. 동시에 가장 발이 넓으신 Y님이 링크드인을 통해 수료생들을 찾아 초대 메시지를 보내고, 전 기수가 모여있는 오픈 채팅방과 6기 오픈 채팅방에도 홍보를 시작했습니다. 예상 가능한 인원에서 +- 하여 오차 범위 내에서 행사를 개최할 수 있도록 일찌감치 수요 조사를 시작했습니다.

아래는 해당 회사에 후원을 요청하는 이유와 모임 개요, 후원 시 기대 이익을 중심으로 작성하였습니다.


그리고 후속 작업을 정리하고, 마음을 비우고, 다음 회의 일정을 잡았습니다.

 

근데 이게 되네.

아무튼 해준다는 내용

 

메일을 보내고 며칠 후 몇몇 기업에서 후원 의사를 밝혀왔습니다. 저희는 벅찬 마음에 빠르게 다음 회의를 잡고 행사 기획서를 작성했습니다. 아무 것도 정해져있지 않으면 신뢰가 떨어질 것 같아 일시, 프로그램  구성을 먼저 짜고 장소 조사를 시작했습니다. 총 15곳의 장소를 후보에 올렸고 예산과 크기, 생김새(중요!)를 고려해 최종 후보지를 선정, 답사를 갔습니다. 

더보기

장소선정 비하인드 (❁´◡`❁)

1. 아일랜드이너프는 원래 역삼점을 가려했으나, 홈페이지에 표시되지 않은 다른 예약으로 인해 예약 실패

2. 이에 카페 놀다와 아일랜드이너프 중 하나로 장소를 고려했는데 놀랍게도 (다른 모임때문에) 카페 놀다에 가본적이 있던 나... 양재/강남역 사이인데 암튼 도보로 꽤나 걸었던 기억이 있어 아일랜드이너프를 강력 추천하였다... 어느 정도였냐면 걸어도 걸어도 안 나오길래 내가 제대로 가고 있는 게 맞나 의심했음.

 

답사를 간 나

 

장소는 꽤 괜찮았고, 이곳으로 하자고 강력 추진을 하였습니다. 사실 다른 분들은 다른 후보지를 더 선호하였으나 답사를 다녀온 뒤 네트워킹 구조에 알맞음, 시설이 예쁨 등을 이유 삼아 밀어붙이긴 했습니다. 이 지면을 빌어 아따아따 단비처럼 우긴 저를 수용해준 TFT에게 감사를 표합니다.

 

 


 

그런 중에도 여기저기서 후원 의사가 들어왔습니다. 이때쯤 생각했던 것 같습니다. '타겟이 확실한 모임에 기업은 홍보를 위한 약간의 투자를 하기도 한다.'

후원 가이드 라인 및 후원 물품 정리를 위해 특히 양방으로 소통에 힘써주신 Y님, D님 이 자리를 빌어 감사를 드립니다. 수시로 연락 받느라 힘드셨을거예요... 특히 Y님은 마지막의 마지막까지...

 

 

물론 어느 정도 운이 따랐다고도 생각합니다. 흔쾌히 후원 의사를 표해주신데 감사함은 이루 말할 수 없었고 준비하는 내내 후원사에게 어떻게 도움이 될 수 있을까, 어떻게 그들이 후원한 것이 헛되지 않았음을 증명할 수 있을까 고민했던 것 같습니다. 최종적으로 후원사 분들께 현장에서 가능한 홍보 수단을 최대한 받고 행사 초대를 드리는 방식으로 갈음하였습니다.

 

 

추가로 조금 더 퀄리티 있는 행사를 제공하기 위해 2차로 몇몇 기업에 제안을 더 돌렸고 이번에는 확정된 장소가 기재된 진짜 행사 계획서를 함께 첨부하였습니다.

 

이게 10월까지의 이야기로, 행사를 준비하며 수시 회의, 진행 공유 등 가장 타이트하게 모였던 기간이었습니다. 이 때쯤은 개인 업무와 수시로 이뤄지는 업무, 행사 준비를 위한 물품 제작 기획, 업체와의 소통 등으로 다들 지쳐있던 상태라 10월까지만 달리고 11월은 조금 쉬엄쉬엄 하기로 했습니다.

 

 

그렇게 10월은 여러 업체와 컨택하며 예산을 늘리고 행사의 뼈대를 구축하며 보내고, 11월을 맞이하게 되었습니다.

 

To Be Continued...

 

2024년 데잇걸즈 연말 모임을 기획하면서 여러 업체에 후원을 요청했습니다. 참여 대상이 아무래도 IT분야에 종사 중인 여성들이다보니 후원을 받더라도 필요한 것을 받았으면 좋겠다는 마음이 있었고, 이에 실제로 내돈내산한 IT 서적 전문 회사에 연락을 하게 되었습니다. IT 도서는 가격이 만만치 않은 편이거든요.

운이 좋게도 도서출판 길벗에서 후원 의사를 밝혔고, 좋은 기회로 책을 받게 되어 머신러닝에 대한 책 중 가장 최근에 출간된 <머신러닝 교과서: 파이토치 편>을 요청드리게 되었습니다. 업무상 필요해서 옆에 두고 계속 보고싶었거든요. 이 책은 다음과 같은 분들께 추천 드립니다.

  • 전통적인 ML 모델 및 비교적 검증된 최신 모델에 대한 학습이 필요하신 분
  • 사이킷런과 파이토치를 모두 사용하고 비교하고자 하는 분
  • 좋은 모델링을 위한 전처리 방법을 고민하는 분
  • 정형 데이터 뿐만 아니라 비정형 데이터까지 폭넓게 공부하고 싶은 분

 

저는 '교과서'라는 이름이 붙은 책들을 꽤 좋아합니다. 교과서라 칭할 만큼 다양한 범주의 내용을 다루고 있고, 그래서 한 번 읽고 이해하려 하기보다는 옆에 두고 필요할 때마다 찾아보는 것을 권합니다. 실제로 분량도 800여 페이지에 달해 이 모든 내용을 한 번에 기억하기는 어려울 것입니다. 달리 말하면, 널리 쓰여지는 모델에 대해서는 대부분을 다루고 있다고 봐도 무방합니다. 실제로 제가 보조 강사로 일하면서 ML 수업에서 다뤘던 기초 모델은 물론 SVM, 프로젝트를 하면서 사용했던 앙상블, GAN까지 굉장히 폭넓은 주제 영역을 다루고 있습니다.

무엇보다 이 책을 추천드리는 이유는 예제 코드를 따라 치면서 모델링을 구현해볼 수 있다는 점이고, 빠르게 변하는 ML 세상에서는 지면에 인쇄된 코드만을 믿을 수는 없기 때문에 디스코드, 카카오톡 등 다양한 채널을 출판사에서 직접 운영하며 독자가 실습 환경을 가져갈 수 있도록 배려하고 있습니다.


 

책에서 감명깊었던 부분은 이론에 대한 설명이 굉장히 탄탄하다는 점이었는데요, 쉬운 내용부터 실제 모델링에 적용되는 수학적 지식을 함께 설명하고 있습니다. ADsP 준비하던 시절이 생각나는군요... ADsP에서 A모델을 사용할 때 **을 하기 위해 사용하는 것은 무엇인가? 라는 질문을 주로 던졌다면, 이 책은 A모델이 무엇을 하는거고 **을 어떻게 구하는 지 알려주는 식입니다. 

 

PyTorch는 광범위한 모델링 영역을 다루고 그 성능도 꽤 좋기 때문에 각광받는 라이브러리입니다. 전통적으로는 사이킷런을 사용했지만, 딥러닝의 영역이 점점 커지고 이에따라 메모리를 효율적으로 쓰기 위해 PyTorch로 많이 옮겨가고 있습니다. (Keras나 Tesorflow도 사랑받는 라이브러리이지만 개인적으로 PyTorch가 더 팬시하다고 느끼긴 했습니다)

다만 PyTorch의 꾸준한 단점으로 유스케이스 부족이 언급되는데요, <머신러닝 교과서: 파이토치 편>은 이 부분을 속 시원히 해결해줄 수 있는 책이라고 생각합니다.


목차 

더보기

1장. 컴퓨터는 데이터에서 배운다
1.1 데이터를 지식으로 바꾸는 지능적인 시스템 구축
1.2 머신 러닝의 세 가지 종류
__1.2.1 지도 학습으로 미래 예측
__1.2.2 강화 학습으로 반응형 문제 해결
__1.2.3 비지도 학습으로 숨겨진 구조 발견
1.3 기본 용어와 표기법 소개
__1.3.1 이 책에서 사용하는 표기법과 규칙
__1.3.2 머신 러닝 용어
1.4 머신 러닝 시스템 구축 로드맵
__1.4.1 전처리: 데이터 형태 갖추기
__1.4.2 예측 모델 훈련과 선택
__1.4.3 모델을 평가하고 본 적 없는 샘플로 예측
1.5 머신 러닝을 위한 파이썬
__1.5.1 파이썬과 PIP에서 패키지 설치
__1.5.2 아나콘다 파이썬 배포판과 패키지 관리자 사용
__1.5.3 과학 컴퓨팅, 데이터 과학, 머신 러닝을 위한 패키지
1.6 요약

2장. 간단한 분류 알고리즘 훈련
2.1 인공 뉴런: 초기 머신 러닝의 간단한 역사
__2.1.1 인공 뉴런의 수학적 정의
__2.1.2 퍼셉트론 학습 규칙
2.2 파이썬으로 퍼셉트론 학습 알고리즘 구현
__2.2.1 객체 지향 퍼셉트론 API
__2.2.2 붓꽃 데이터셋에서 퍼셉트론 훈련
2.3 적응형 선형 뉴런과 학습의 수렴
__2.3.1 경사 하강법으로 손실 함수 최소화
__2.3.2 파이썬으로 아달린 구현
__2.3.3 특성 스케일을 조정하여 경사 하강법 결과 향상
__2.3.4 대규모 머신 러닝과 확률적 경사 하강법
2.4 요약

3장. 사이킷런을 타고 떠나는 머신 러닝 분류 모델 투어
3.1 분류 알고리즘 선택
3.2 사이킷런 첫걸음: 퍼셉트론 훈련
3.3 로지스틱 회귀를 사용한 클래스 확률 모델링
__3.3.1 로지스틱 회귀의 이해와 조건부 확률
__3.3.2 로지스틱 손실 함수의 가중치 학습
__3.3.3 아달린 구현을 로지스틱 회귀 알고리즘으로 변경
__3.3.4 사이킷런을 사용하여 로지스틱 회귀 모델 훈련
__3.3.5 규제를 사용하여 과대적합 피하기
3.4 서포트 벡터 머신을 사용한 최대 마진 분류
__3.4.1 최대 마진
__3.4.2 슬랙 변수를 사용하여 비선형 분류 문제 다루기
__3.4.3 사이킷런의 다른 구현
3.5 커널 SVM을 사용하여 비선형 문제 풀기
__3.5.1 선형적으로 구분되지 않는 데이터를 위한 커널 방법
__3.5.2 커널 기법을 사용하여 고차원 공간에서 분할 초평면 찾기
3.6 결정 트리 학습
__3.6.1 정보 이득 최대화: 자원을 최대로 활용
__3.6.2 결정 트리 만들기
__3.6.3 랜덤 포레스트로 여러 개의 결정 트리 연결
3.7 k-최근접 이웃: 게으른 학습 알고리즘
3.8 요약

4장. 좋은 훈련 데이터셋 만들기: 데이터 전처리
4.1 누락된 데이터 다루기
__4.1.1 테이블 형태 데이터에서 누락된 값 식별
__4.1.2 누락된 값이 있는 훈련 샘플이나 특성 제외
__4.1.3 누락된 값 대체
__4.1.4 사이킷런 추정기 API 익히기
4.2 범주형 데이터 다루기
__4.2.1 판다스를 사용한 범주형 데이터 인코딩
__4.2.2 순서가 있는 특성 매핑
__4.2.3 클래스 레이블 인코딩
__4.2.4 순서가 없는 특성에 원-핫 인코딩 적용
4.3 데이터셋을 훈련 데이터셋과 테스트 데이터셋으로 나누기
4.4 특성 스케일 맞추기
4.5 유용한 특성 선택
__4.5.1 모델 복잡도 제한을 위한 L1 규제와 L2 규제
__4.5.2 L2 규제의 기하학적 해석
__4.5.3 L1 규제를 사용한 희소성
__4.5.4 순차 특성 선택 알고리즘
4.6 랜덤 포레스트의 특성 중요도 사용
4.7 요약

5장. 차원 축소를 사용한 데이터 압축
5.1 주성분 분석을 통한 비지도 차원 축소
__5.1.1 주성분 분석의 주요 단계
__5.1.2 주성분 추출 단계
__5.1.3 총 분산과 설명된 분산
__5.1.4 특성 변환
__5.1.5 사이킷런의 주성분 분석
5.2 선형 판별 분석을 통한 지도 방식의 데이터 압축
__5.2.1 주성분 분석 vs 선형 판별 분석
__5.2.2 선형 판별 분석의 내부 동작 방식
__5.2.3 산포 행렬 계산
__5.2.4 새로운 특성 부분 공간을 위해 선형 판별 벡터 선택
__5.2.5 새로운 특성 공간으로 샘플 투영
__5.2.6 사이킷런의 LDA
5.3 비선형 차원 축소와 시각화
__5.3.1 비선형 차원 축소를 고려하는 이유는 무엇인가요?
__5.3.2 t-SNE를 사용한 데이터 시각화
5.4 요약

6장. 모델 평가와 하이퍼파라미터 튜닝의 모범 사례
6.1 파이프라인을 사용한 효율적인 워크플로
__6.1.1 위스콘신 유방암 데이터셋
__6.1.2 파이프라인으로 변환기와 추정기 연결
6.2 k-겹 교차 검증을 사용한 모델 성능 평가
__6.2.1 홀드아웃 방법
__6.2.2 k-겹 교차 검증
6.3 학습 곡선과 검증 곡선을 사용한 알고리즘 디버깅
__6.3.1 학습 곡선으로 편향과 분산 문제 분석
__6.3.2 검증 곡선으로 과대적합과 과소적합 조사
6.4 그리드 서치를 사용한 머신 러닝 모델 세부 튜닝
__6.4.1 그리드 서치를 사용한 하이퍼파라미터 튜닝
__6.4.2 랜덤 서치로 하이퍼파라미터 설정을 더 넓게 탐색하기
__6.4.3 SH 방식을 사용한 자원 효율적인 하이퍼파라미터 탐색
__6.4.4 중첩 교차 검증을 사용한 알고리즘 선택
6.5 여러 가지 성능 평가 지표
__6.5.1 오차 행렬
__6.5.2 분류 모델의 정밀도와 재현율 최적화
__6.5.3 ROC 곡선 그리기
__6.5.4 다중 분류의 성능 지표
__6.5.5 불균형한 클래스 다루기
6.6 요약

7장. 다양한 모델을 결합한 앙상블 학습
7.1 앙상블 학습
7.2 다수결 투표를 사용한 분류 앙상블
__7.2.1 간단한 다수결 투표 분류기 구현
__7.2.2 다수결 투표 방식을 사용하여 예측 만들기
__7.2.3 앙상블 분류기의 평가와 튜닝
7.3 배깅: 부트스트랩 샘플링을 통한 분류 앙상블
__7.3.1 배깅 알고리즘의 작동 방식
__7.3.2 배깅으로 Wine 데이터셋의 샘플 분류
7.4 약한 학습기를 이용한 에이다부스트
__7.4.1 부스팅 작동 원리
__7.4.2 사이킷런에서 에이다부스트 사용
7.5 그레이디언트 부스팅: 손실 그레이디언트 기반의 앙상블 훈련
__7.5.1 에이다부스트와 그레이디언트 부스팅 비교
__7.5.2 그레이디언트 부스팅 알고리즘 소개
__7.5.3 분류를 위한 그레이디언트 부스팅 알고리즘
__7.5.4 그레이디언트 부스팅 분류 예제
__7.5.5 XGBoost 사용하기
7.6 요약

8장. 감성 분석에 머신 러닝 적용
8.1 텍스트 처리용 IMDb 영화 리뷰 데이터 준비
__8.1.1 영화 리뷰 데이터셋 구하기
__8.1.2 영화 리뷰 데이터셋을 더 간편한 형태로 전처리
8.2 BoW 모델 소개
__8.2.1 단어를 특성 벡터로 변환
__8.2.2 tf-idf를 사용하여 단어 적합성 평가
__8.2.3 텍스트 데이터 정제
__8.2.4 문서를 토큰으로 나누기
8.3 문서 분류를 위한 로지스틱 회귀 모델 훈련
8.4 대용량 데이터 처리: 온라인 알고리즘과 외부 메모리 학습
8.5 잠재 디리클레 할당을 사용한 토픽 모델링
__8.5.1 LDA를 사용한 텍스트 문서 분해
__8.5.2 사이킷런의 LDA
8.6 요약

9장. 회귀 분석으로 연속적 타깃 변수 예측
9.1 선형 회귀
__9.1.1 단순 선형 회귀
__9.1.2 다중 선형 회귀
9.2 에임스 주택 데이터셋 탐색
__9.2.1 데이터프레임으로 에임스 주택 데이터셋 읽기
__9.2.2 데이터셋의 중요 특징 시각화
__9.2.3 상관관계 행렬을 사용한 분석
9.3 최소 제곱 선형 회귀 모델 구현
__9.3.1 경사 하강법으로 회귀 모델의 파라미터 구하기
__9.3.2 사이킷런으로 회귀 모델의 가중치 추정
9.4 RANSAC을 사용하여 안정된 회귀 모델 훈련
9.5 선형 회귀 모델의 성능 평가
9.6 회귀에 규제 적용
9.7 선형 회귀 모델을 다항 회귀로 변환
__9.7.1 사이킷런을 사용하여 다항식 항 추가
__9.7.2 에임스 주택 데이터셋을 사용한 비선형 관계 모델링
9.8 랜덤 포레스트를 사용하여 비선형 관계 다루기
__9.8.1 결정 트리 회귀
__9.8.2 랜덤 포레스트 회귀
9.9 요약

10장. 레이블되지 않은 데이터 다루기: 군집 분석
10.1 k-평균 알고리즘을 사용하여 유사한 객체 그룹핑
__10.1.1 사이킷런을 사용한 k-평균 군집
__10.1.2 k-평균++로 초기 클러스터 센트로이드를 똑똑하게 할당
__10.1.3 직접 군집 vs 간접 군집
__10.1.4 엘보우 방법을 사용하여 최적의 클러스터 개수 찾기
__10.1.5 실루엣 그래프로 군집 품질을 정량화
10.2 계층적인 트리로 클러스터 조직화
__10.2.1 상향식으로 클러스터 묶기
__10.2.2 거리 행렬에서 계층 군집 수행
__10.2.3 히트맵에 덴드로그램 연결
__10.2.4 사이킷런에서 병합 군집 적용
10.3 DBSCAN을 사용하여 밀집도가 높은 지역 찾기
10.4 요약

11장. 다층 인공 신경망을 밑바닥부터 구현
11.1 인공 신경망으로 복잡한 함수 모델링
__11.1.1 단일층 신경망 요약
__11.1.2 다층 신경망 구조
__11.1.3 정방향 계산으로 신경망 활성화 출력 계산
11.2 손글씨 숫자 분류
__11.2.1 MNIST 데이터셋 구하기
__11.2.2 다층 퍼셉트론 구현
__11.2.3 신경망 훈련 루프 코딩
__11.2.4 신경망 모델의 성능 평가
11.3 인공 신경망 훈련
__11.3.1 손실 함수 계산
__11.3.2 역전파 알고리즘 이해
__11.3.3 역전파 알고리즘으로 신경망 훈련
11.4 신경망의 수렴
11.5 신경망 구현에 관한 몇 가지 첨언
11.6 요약

12장. 파이토치를 사용한 신경망 훈련
12.1 파이토치와 훈련 성능
__12.1.1 성능 문제
__12.1.2 파이토치란?
__12.1.3 파이토치 학습 방법
12.2 파이토치 처음 시작하기
__12.2.1 파이토치 설치
__12.2.2 파이토치에서 텐서 만들기
__12.2.3 텐서의 데이터 타입과 크기 조작
__12.2.4 텐서에 수학 연산 적용
__12.2.5 chunk( ), stack( ), cat( ) 함수
12.3 파이토치 입력 파이프라인 구축
__12.3.1 텐서에서 파이토치 DataLoader 만들기
__12.3.2 두 개의 텐서를 하나의 데이터셋으로 연결
__12.3.3 셔플, 배치, 반복
__12.3.4 로컬 디스크에 있는 파일에서 데이터셋 만들기
__12.3.5 torchvision.datasets 라이브러리에서 데이터셋 로드
12.4 파이토치로 신경망 모델 만들기
__12.4.1 파이토치 신경망 모듈(torch.nn)
__12.4.2 선형 회귀 모델 만들기
__12.4.3 torch.nn과 torch.optim 모듈로 모델 훈련하기
__12.4.4 붓꽃 데이터셋을 분류하는 다층 퍼셉트론 만들기
__12.4.5 테스트 데이터셋에서 모델 평가하기
__12.4.6 훈련된 모델 저장하고 로드하기
12.5 다층 신경망의 활성화 함수 선택
__12.5.1 로지스틱 함수 요약
__12.5.2 소프트맥스 함수를 사용한 다중 클래스 확률 예측
__12.5.3 하이퍼볼릭 탄젠트로 출력 범위 넓히기
__12.5.4 렐루 활성화 함수
12.6 요약

13장. 파이토치 구조 자세히 알아보기
13.1 파이토치의 주요 특징
13.2 파이토치의 계산 그래프
__13.2.1 계산 그래프 이해
__13.2.2 파이토치로 그래프 만들기
13.3 모델 파라미터를 저장하고 업데이트하기 위한 파이토치 텐서 객체
13.4 자동 미분으로 그레이디언트 계산
__13.4.1 훈련 가능한 변수에 대한 손실의 그레이디언트 계산
__13.4.2 자동 미분 이해하기
__13.4.3 적대 샘플
13.5 torch.nn 모듈을 사용하여 일반적인 아키텍처 구현하기
__13.5.1 nn.Sequential 기반의 모델 구현하기
__13.5.2 손실 함수 선택하기
__13.5.3 XOR 분류 문제 풀어 보기
__13.5.4 nn.Module로 유연성이 높은 모델 만들기
__13.5.5 파이토치에서 사용자 정의 층 만들기
13.6 프로젝트 1: 자동차 연비 예측하기
__13.6.1 특성 열 사용
__13.6.2 DNN 회귀 모델 훈련하기
13.7 프로젝트 2: MNIST 손글씨 숫자 분류하기
13.8 고수준 파이토치 API: 파이토치 라이트닝 소개
__13.8.1 파이토치 라이트닝 모델 준비하기
__13.8.2 라이트닝을 위한 데이터 로더 준비하기
__13.8.3 라이트닝 Trainer 클래스를 사용하여 모델 훈련하기
__13.8.4 텐서보드로 모델 평가하기
13.9 요약

14장. 심층 합성곱 신경망으로 이미지 분류
14.1 합성곱 신경망의 구성 요소
__14.1.1 CNN과 특성 계층 학습
__14.1.2 이산 합성곱 수행
__14.1.3 서브샘플링
14.2 기본 구성 요소를 사용하여 심층 합성곱 신경망 구성
__14.2.1 여러 개의 입력 또는 컬러 채널 다루기
__14.2.2 L2 규제와 드롭아웃으로 신경망 규제
__14.2.3 분류를 위한 손실 함수
14.3 파이토치를 사용하여 심층 합성곱 신경망 구현
__14.3.1 다층 CNN 구조
__14.3.2 데이터 적재와 전처리
__14.3.3 torch.nn 모듈을 사용하여 CNN 구현
14.4 합성곱 신경망을 사용하여 웃는 얼굴 분류
__14.4.1 CelebA 데이터셋 로드
__14.4.2 이미지 변환과 데이터 증식
__14.4.3 CNN 웃는 얼굴 분류기 훈련
14.5 요약

15장. 순환 신경망으로 순차 데이터 모델링
15.1 순차 데이터 소개
__15.1.1 순차 데이터 모델링: 순서를 고려한다
__15.1.2 순차 데이터 vs 시계열 데이터
__15.1.3 시퀀스 표현
__15.1.4 시퀀스 모델링의 종류
15.2 시퀀스 모델링을 위한 RNN
__15.2.1 RNN 반복 구조 이해
__15.2.2 RNN의 활성화 출력 계산
__15.2.3 은닉 순환과 출력 순환
__15.2.4 긴 시퀀스 학습의 어려움
__15.2.5 LSTM 셀
15.3 파이토치로 시퀀스 모델링을 위한 RNN 구현
__15.3.1 첫 번째 프로젝트: IMDb 영화 리뷰의 감성 분석
__15.3.2 두 번째 프로젝트: 텐서플로로 글자 단위 언어 모델 구현
15.4 요약

16장. 트랜스포머: 어텐션 메커니즘을 통한 자연어 처리 성능 향상
16.1 어텐션 메커니즘이 추가된 RNN
__16.1.1 RNN의 정보 검색을 돕는 어텐션
__16.1.2 RNN을 위한 원본 어텐션 메커니즘
__16.1.3 양방향 RNN으로 입력 처리하기
__16.1.4 문맥 벡터에서 출력 생성하기
__16.1.5 어텐션 가중치 계산하기
16.2 셀프 어텐션 메커니즘 소개
__16.2.1 기본적인 형태의 셀프 어텐션
__16.2.2 훈련 가능한 셀프 어텐션 메커니즘: 스케일드 점곱 어텐션
16.3 어텐션이 필요한 전부다: 원본 트랜스포머 아키텍처
__16.3.1 멀티 헤드 어텐션으로 문맥 임베딩 인코딩하기
__16.3.2 언어 모델 학습: 디코더와 마스크드 멀티 헤드 어텐션
__16.3.3 구현 세부 사항: 위치 인코딩 및 층 정규화
16.4 레이블이 없는 데이터를 활용하여 대규모 언어 모델 구축
__16.4.1 트랜스포머 모델 사전 훈련 및 미세 튜닝
__16.4.2 GPT로 레이블이 없는 데이터 활용하기
__16.4.3 GPT-2를 사용하여 새로운 텍스트 생성
__16.4.4 BERT를 통한 양방향 사전 훈련
__16.4.5 두 장점을 합친 BART
16.5 파이토치에서 BERT 모델 미세 튜닝하기
__16.5.1 IMDb 영화 리뷰 데이터셋 로드
__16.5.2 데이터셋 토큰화 715
__16.5.3 사전 훈련된 BERT 모델 로드 및 미세 튜닝하기
__16.5.4 트레이너 API를 사용하여 트랜스포머를 간편하게 미세 튜닝하기
16.6 요약

17장. 새로운 데이터 합성을 위한 생성적 적대 신경망
17.1 생성적 적대 신경망 소개
__17.1.1 오토인코더
__17.1.2 새로운 데이터 합성을 위한 생성 모델
__17.1.3 GAN으로 새로운 샘플 생성
__17.1.4 GAN의 생성자와 판별자 손실 함수 이해
17.2 밑바닥부터 GAN 모델 구현
__17.2.1 구글 코랩에서 GAN 모델 훈련
__17.2.2 생성자와 판별자 신경망 구현
__17.2.3 훈련 데이터셋 정의
__17.2.4 GAN 모델 훈련하기
17.3 합성곱 GAN과 바서슈타인 GAN으로 합성 이미지 품질 높이기
__17.3.1 전치 합성곱
__17.3.2 배치 정규화
__17.3.3 생성자와 판별자 구현
__17.3.4 두 분포 사이의 거리 측정
__17.3.5 GAN에 EM 거리 사용
__17.3.6 그레이디언트 페널티
__17.3.7 WGAN-GP로 DCGAN 모델 훈련
__17.3.8 모드 붕괴
17.4 다른 GAN 애플리케이션
17.5 요약

18장. 그래프 구조 데이터의 의존성 감지를 위한 그래프 신경망
18.1 그래프 데이터 소개
__18.1.1 비유향 그래프
__18.1.2 유향 그래프
__18.1.3 레이블 그래프
__18.1.4 분자를 그래프로 표현하기
18.2 그래프 합성곱의 이해
__18.2.1 그래프 합성곱의 사용 동기
__18.2.2 기본 그래프 합성곱 구현
18.3 파이토치에서 GNN을 밑바닥부터 구현하기
__18.3.1 NodeNetwork 모델 정의하기
__18.3.2 NodeNetwork의 그래프 합성곱 층 만들기
__18.3.3 다양한 그래프 크기를 처리하기 위해 전역 풀링 층 추가하기
__18.3.4 데이터 로더 준비
__18.3.5 노드 네트워크를 사용하여 예측하기
18.4 파이토치 지오메트릭 라이브러리를 사용하여 GNN 구현하기
18.5 기타 GNN 층 및 최근 개발 사항
__18.5.1 스펙트럼 그래프 합성곱
__18.5.2 풀링
__18.5.3 정규화
__18.5.4 그 외 고급 그래프 신경망
18.6 요약

19장. 강화 학습으로 복잡한 환경에서 의사 결정
19.1 경험에서 배운다
__19.1.1 강화 학습 이해
__19.1.2 강화 학습 시스템의 에이전트-환경 인터페이스 정의
19.2 강화 학습의 기초 이론
__19.2.1 마르코프 결정 과정
__19.2.2 마르코프 결정 과정의 수학 공식
__19.2.3 강화 학습 용어: 대가, 정책, 가치 함수
__19.2.4 벨먼 방정식을 사용한 동적 계획법
19.3 강화 학습 알고리즘
__19.3.1 동적 계획법
__19.3.2 몬테카를로를 사용한 강화 학습
__19.3.3 시간 차 학습
19.4 첫 번째 강화 학습 알고리즘 구현
__19.4.1 OpenAI 짐 툴킷 소개
__19.4.2 Q-러닝으로 그리드 월드 문제 풀기
19.5 심층 Q-러닝
__19.5.1 Q-러닝 알고리즘에 따라 DQN 모델 훈련
__19.5.2 심층 Q-러닝 알고리즘 구현
19.6 전체 요약

 

머신 러닝 교과서: 파이토치 편 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

▲▲가격비교 보러가기 ▲▲

1. PL/SQL?

Oracle DBMS에서 SQL 언어를 확장하여 사용할 수 있도록 하는 프로그램 언어

프로그램으로서의 SQL 언어라고 할 수 있다.

일반적으로 사용하는 SELECT, FROM, ORDER BY 등의 구문이 주로 데이터 조회를 위해 사용된다면, PL/SQL은 IF 같은 조건문, FOR이나 WHILE 같은 반복문 등을 사용하여 특정 조건에 맞게 자료를 저장하거나 함수, 프로시저, 패키지(프로시저의 모음), 트리거 등을 생성할 때 사용한다.

2. 기본 구조

PL/SQL 블록

DECLARE
	-- 변수 선언, 서브 프로그램
BEGIN
	-- 실행 구문
EXCEPTION when others then
	-- 예외처리 (필수는 아님)
	null;
END;
  • DECLARE: 변수, 서브 프로그램들을 정의 
  • BEGIN: 실질적으로 수행하고자 하는 질의, 제어문을 입력
  • EXCEPTION:  예외처리를 수행할 때 사용(필수X)
  • END: 블록 종료

- DECLARE은 익명 블록으로, 아래의 내용을 수행하는 블록이며 수행한 결과를 바탕으로 함수, 프로시저, 패키지 및 트리거 등을 만들 수 있다. 만든 함수, 프로시저, 패키지 및 트리거는 스키마에 물리적으로 저장된다.

- DECLARE은 중첩으로 사용할 수 있으며, 가장 바깥쪽에 선언된 변수는 global 변수로, 그 하위 블록에서는 local 변수로 사용할 수 있다.

3. 자주 사용하는 Oracle 명령어

dbms_output.put_line('문자열'): print 기능. 로그 등을 찍을 때도 사용.

 

 

되게 별 것 처럼 타이틀 달기!

거의 1년 만에 블로그를 쓰는 사람으로서 새로 배울 것들에 대한 기록이 필요하다 싶어 다시 키보드 앞에 섰.. 아니 앉았습니다.

 

1. 그 간 무엇을 하셨는지?

- 퇴사. 이직. (제일 큰 것)

2024년은 정-말 일신상 변화가 드라마틱한 한 해였습니다.

자꾸 바뀌는 계획과 특기를 살릴 수 없는 업무, 그 외 여타의 이유로 퇴직을 결심하고 6월을 기점으로 1년 반 정도 있던 광고 회사를 나왔습니다. 길지 않은 기간이었지만, 개인적으로 광고, 마케팅이라는 도메인과 굉장히 잘 맞는다는 생각은 잘 못했고 오히려 데이터를 잘 쓸 수 있도록 그 기초를 다지는 일에 더 관심이 가게 되었습니다. 아마도 이제는 AutoML이 나보다 더 파라미터를 잘 찾아주고 많은 엮여있는 이해의 상충 속에 최선이라 생각되는 방식을 택할 수 없는(마케팅이 지출과 연관되어있고 정답이 없는 일이기에 더 어려웠던 것도 같습니다) 사실이 조금은 재미없었던 것일지도 모릅니다. 아무튼- 여러 경험을 해본 바 업무 효율화를 위한 기반 작업 가령 예쁜(!) 데이터 마트를 만들다든가, 배치 등을 신경쓴다든가, 택소노미를 설계한다든가... 하는 요즘 많이들 채용하는 Analytics Engineering 쪽이 조금 더 적성에 맞겠다는 생각을 하게 되었습니다.

6월이 퇴사였고 채용 시장이 워낙에 안 좋은 것을 알았기에 미친듯이 이력서를 뿌렸고 사실은 내년까지 그 기간을 바라보고있었는데 어떻게 운이 잘 트였는지 금세 다른 회사에 더 나은 조건으로 갈 수 있게 되었습니다. 그것도 분석과 엔지니어링을 같이 배울 수 있는 자리로요. 9월부터 일을 시작했으니 이제 막 두 달 차가 되었는데, 지금은 굉장히 만족중입니다. 

사실 행운이 많이 따랐다고 생각합니다.

 

2. 7월의 여행에서 느낀 점

7월 초 필리핀 보홀을 다녀왔습니다. 단순히 재밌었다를 넘어 개인적으로 느낀 점이 많았던 여행이기에 그 이야기를 잠시 해보려합니다.

저는 물놀이를 즐기지 않습니다. 캐리비안베이는 딱 한 번. 오션월드는 가본적 없을지도요? 수영도 못하고 몇 번 배워보려했지만 금세 포기했던 기억이 납니다. 그러니까 2016년 그르노블의 기숙사에 있던 수영장에서 친구들이 '몸이 뜨려면 목에 힘을 빼' 라고 하는데 도저히 어떻게 목에 힘을 빼야할 지 모르겠는 것입니다. 아- 모르겠다. 그렇게 거의 10년이 지났습니다.

이번 여행에서도 물놀이의 기대는 하지 않았지만, 섬에 놀러가면서 하나쯤은 하고와야겠다고 생각한 바 나팔링 투어라는 것을 신청하게 되었습니다. 한마디로 스노클링 하면서 바닷속을 구경하는건데 웬걸 너무 재밌는겁니다. 그 때 난생 처음 제가 물놀이를 좋아하는 것을 알았습니다. 

그러고나니 수영을 못한다는 사실이 너무 속상했습니다. 그래서 머리를 물에 담근것을 기념하며 숙소의 수영장에서 다시 수영같은 것을 시도했습니다. 처음에는 암튜브를 끼고 둥둥 떠다녔는데, 어라 귀가 물에 빠질 때 그 꼬르륵 소리의 두려움을 한 번 이겨냈더니 다리가 떠오르며 몸이 일자로 뉘어지는 것을 느꼈습니다. 이건가? 싶어 조금 있다가는 암튜브를 빼고 머리를 모두 물에 담가 팔을 허우적대봤습니다. 다리가 떠오르고 장구를 치는 만큼 앞으로 나아갔습니다. 음-파를 할줄 몰라 얼마 못 나가긴 했지만 난생 처음으로 수영에 성공한 순간이었습니다. 

문득 그런 생각이 들었습니다. 와, 지금의 내가 10년 전의 나보다 발전했네.

이 순간이 너무 마음에 들었고, 올해 하반기 자존감 상승 BEST 사건으로 꼽았습니다. 아직도 많은 부분에서 성장하고 발전해나갈 수 있는 가능성을 발견했고, 미래의 제가 더 기대되기 시작했습니다.

 

3. 앞으로 배우고 싶은 것

사실 너무 많아 나열할 수 조차 없지만 프로그래밍으로서의  SQL을 배우고자 합니다. 강의... 당장 쓸 일이 없는 PL/SQL이다보니 지난번에 듣고 거의 한 달만에 다시 켜서 앞의 내용을 잊어버렸지만... 모르면 또 들으면 되고 사실 빨리 익힐 수 있는 방법은 아무래도 실제로 사용하고 적용해야할 때 이다보니 ㅎ.. 좋은 게으름의 핑계이다.

시스템의 상호작용에 대한 것도 익히고싶어용. 너무 포괄적인 말이지만 요컨대 디버깅 프로세스라든가 필요한 소스코드가 인터페이스 상에서 어떻게 작용하는가 그런것들이요. Slightly shifting to an egineer ... :)

 

4. Upcoming Posts

제가 수료한 데잇걸즈 프로그램의 연말 모임을 기획하고 있습니다. '만나고 싶어'라고 생각한 네 명이 모여 TFT가 되었고 팀으로 움직이는 만큼 규모가 (많이)커져서 재밌는 일들이 많이 생겼습니다. 이 과정을 하나씩 풀어볼 생각이에요. 재밌겠다아...👾

이만 끝!

00. 서론

오... 랜만에 영화 리뷰.

2020인가부터 매 해를 시작할 때, 콘텐츠를 몇 편 볼 것인가 정하고 있다. 올해는 작년보다 영화를 많이 보고싶어서 책 30권 영화 50편으로 잡았는데, 영화 수에서 처참한 결과를 맞이하는 중... 오늘부터라도 매일매일 보면 될까요 😹 (대신 뮤지컬을 열 편 이상 봤다)

읽은 책, 본 영화는 대개 인스타를 통해 짤막한 감상과 함께 올리곤 하는데, 올해는 기록을 좀 게을리 한 면이 있다.

그 결과는 아래와 같음

적을 당시 기억나는 것만 리스트 했는데 아마 더 있을듯. <도리언 그레이 (2009)>랑 <홀리데이(2005)>도 있겠다. 참고로 저 리스트에 n회 본 영화는 제외, 예를 들면 시네마 천국이나 박하사탕 이라든지.

그래서 오늘은 여러 생각을 했음에도 아직도 정리하지 않았던(^^...) <천국보다 아름다운(1998)>을 리뷰해보려 한다.


01. 본론

감독: 빈센트 워드

주연: 로빈 윌리엄스, 애나벨라 쇼라

천국과 지옥을 정의하기를...

이 영화를 처음 알게된 계기가 독특한데, 좋아하는 타투이스트의 이벤트 도안으로 이 영화의 한 장면을 받게되었고,영문도 모른채 최애 영화인 양(안 봄) 몸에 새기게 되었다. "사랑"에 대한 주제로 만든 아트웍인데, 타투이스트는 자신이 정말 좋아하는 영화라며 꼭 보기를 당부했다. 그렇게 몇 년의 시간이 지나고... 

HOURS는 아니고 YEARS였다.

영화 고르기가 어려워지던 즈음 갑자기 생각나서 찾아보게 되었다.

개인적으로 넘 웃겼던 게

영화: 야! 울어!

나: 응! (글썽)

(~500번 반복~)

주로 퇴근길에 영화를 봤는데 덕분에 전철에서 난데없이 눈물을 글썽이는 여성이 되었음. 

보고나서 "이거 근데 왜 안유명?"이라고 생각했는데, 가만보니 나도 이 영화를 미뤄온데 이유가 있었다. 일단 포스터에서 오는 진입장벽이 크긴 하다. 당신들이 영화에서 보여준 시각 효과의 반의 반만 했어도 이거보다 오백배 예쁜 포스터 뽑아낼 수 있었을 것이다.

세기말 감성 담뿍 담겼음

일단 시각 효과가 너무 좋다. 남자 주인공(로빈 윌리엄스)이 그림 속으로 들어가는 장면이 있는데, 그림을 실사화 해서 보여주는 게 아니라 그림 그 자체 -- 물감 위에서 뛰어노는 그 질감을 보여준다. 중간중간 마블의 금빛 아스가르드가 생각났다. 그림 속 세계는 생각하는 대로 구현할 수 있다. 나의 마음이 나의 세상이 된다. 굉장한 불교적 메시지이다.

영화를 보다보면 스토리가 아름답거나 비주얼이 아름다운 영화 메시지가 강렬한 영화 등등 나뉘는데 스토리와 비주얼이 아름다운 영화라고 생각한다.

서로가 서로의 세상이었기 때문에 현실의 애니는 그림을 한참 동안 완성하지 못했지만, 자신의 큰 부분을 차지하는 남편이 그림 속에서 그 모양을 완성해가는 모습을 통해 상보할 수 있다는 점. 주례사에서 익히 듣는 서로 부족한 것은 채워주고 나눠주며 지혜로운- 은 역시 동서고금을 불문하고 부부의 진리처럼 보여지기도 한다.

다양한 매체에서 천국과 지옥을 보여준다. 삶과 죽음은 많은 종교와 철학에서 다루는 메인 주제인 만큼 인간사와 함께 발전했다고 해도 무방한데, 역시 이 영화에서 보여주는 천국과 지옥은 어떤 모습인지 비교하면서 보면 더 재밌을 것 같다.

여러분이 정의하는 천국과 지옥은 어떤 모습인가요?

 

줄거리 (건너뛰어도 됨. 양심상 넣음.)

출처: 네이버 영화

소아과 의사 크리스(Chris Nielsen: 로빈 윌리암스 분)는 큐레이터인 사랑하는 아내 애니(Annie Nielsen: 아나벨라 시오라 분)와 아들 얀 딸 마리(Marie Nielsen: 제시카 브룩스 그랜트 분)와 행복하고 평온한 삶을 살고 있다. 그러나 크리스와 애니는 얀과 마리를 교통사고로 잃게 되고, 애니는 아이들을 잃어버린 슬픔에 정신적으로 고통 받던 중 자책감에 크리스에게 이혼을 요구하기에 이른다. 크리스는 애니를 사랑하지만 애니에게 조금이라도 고통을 덜어주기 위해 이혼에 합의한다. 4년이 지나고 크리스마저도 교통사고로 죽게 되자, 더욱더 깊은 실음에 잠긴 애니를 안타까워 하며 크리스는 이승에서 애니의 주위를 맴돌게 된다. 크리스는 아내가 그린 훌륭한 풍경화 작품 중에 그려진 파라다이스 그림을 보고, 천상의 세계로 들어가게 된다. 사랑하는 아내가 그린 아름다운 천국은 크리스에게 어느 정도의 위안은 되지만 아내가 없는 천국도 공허하긴 마찬가지다. 현실의 세상에 남아 있는 애니는 크리스가 없는 슬픔 삶을 견딜 수가 없어 크리스를 만나는 방법으로 자살을 선택하게 되고 현실에서의 크리스에 대한 사랑도 이별을 고한다. 크리스는 애니의 죽음을 통보 받지만, 자살자는 지옥으로 가게 된다는 사실 때문에 두 사람은 서로 다시 만날 희망은 사라지고 만다. 하지만 아내에 대한 사랑을 포기할 수 없는 크리스는 알버트(Albert: 쿠바 쿠딩 주니어 분)의 도움으로 애니를 지옥에서 천국으로 데려오기 위해 천국과 지옥을 통과하는 위험하고 어려운 방랑의 모험 길을 떠나게 되는데.

 

여담

로빈 윌리엄스를 처음 봤던 영화는 <굿 윌 헌팅>이었다. 은근 쎈캐이긴한데 이 분이 죽시사의 오 캡틴 마이 캡틴인지 (죽은 시인의 사회 안 봄) 나중에 알고 본 터라 이렇게 세 개의 영화를 통해 로빈 윌리엄스는 뭔가 '희망 전도사'같은 이미지가 되었다. 실제로 나 말고도 그렇게 느낀 사람도 많은 것 같지만... 삶을 통해 행복을 영위하라는 그가 영화에서 던지는 메시지와 상반되게 그의 삶을 톺아보면 안타까움이 있다.

 

끝.

DDL(Data Definition Language) 데이터 정의어

데이터베이스를 정의하는 언어, 데이터를 생성하고 수정, 삭제하는 등 데이터의 전체적인 모양을 결정

대표 질의: CREATE, ALTER, DROP, TRUNCATE

직접 DB 및 테이블을 만들면서 진짜 많이 썼다!

 

 

1. 데이터 베이스 생성하기

문법: CREATE schema 데이터베이스명; 또는 CREATE database 데이터베이스명;

-- test라는 이름의 데이터베이스 생성
CREATE schema test; 
-- 또는
CREATE database test;

 

2. 테이블 생성하기

문법: CREATE TABLE 테이블명;

-- test_table1 테이블 생성
CREATE TABLE test_table1;

 

위와 같이 쉽게 생성할 수 있다.

 

3. 테이블의 결과로 새로운 테이블 생성하기

문법: CREATE TABLE 데이터베이스명.테이블명 쿼리;

-- test_table1 테이블의 일부 조건을 건 결과를 test 스키마의  test_table2라는 테이블로 저장

CREATE TABLE test.test_table2
    SELECT id, name, age
    FROM test
    WHERE joined_at > '2023-09-01'

 

 

스토리지 버킷이란?

- 버킷: 데이터를 담는 기본 컨테이너

일반적인 사람들이 생각하는 '클라우드'에 엑셀 파일,  csv파일 등을 업로드 할 수 있도록 업로드 할 수 있는 저장 공간을 말한다. 

굳이 google storage에 넣어야하는가? 에 대해 묻는다면 아래와 같은 대표적인 장점이 있다.

- csv 또는 엑셀로 이뤄진 로컬 파일 데이터를 BigQuery 등으로 전송할 수 있다.

- 구글 클라우드에서 제공하는 프로덕트와 유연한 연계가 가능

1. 스토리지 버킷 만들기 클릭

 

Google Console에서 프로젝트를 선택한 뒤 메인 화면 -> 스토리지 버킷 만들기 선택

(메인 화면을 못찾았다면, 좌상단의 햄버거 버튼 클릭 -> Storage)

2. 버킷 이름 설정

버킷 이름 지정 및 기타 다른 설정을 선택할 수 있다. 이름을 짓는데는 여러 가지 룰 및 권장 사항이 있는데, 이는 아래의 공식 문서를 참고하자.

나의 경우 mydata-sample로 설정하였다.

https://cloud.google.com/storage/docs/buckets?hl=ko 

 

Cloud Storage 버킷 정보  |  Google Cloud

의견 보내기 Cloud Storage 버킷 정보 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에서는 Cloud Storage의 리소스인 버킷을 설명합니다. Cloud Storage 작

cloud.google.com

 

3. 공개 액세스 설정

버킷 기본 설정으로 공개 액세스가 차단되어 있으므로, 호스팅 등의 이슈가 없다면 설정하는 것이 좋다.

확인 클릭

4. 생성한 버킷 확인

확인까지 누르고 나면 위와 같은 버킷이 생성된다. 중간의 파일 업로드, 폴더 업로드, 폴더 만들기를 이용하여 구글 드라이브처럼 사용할 수 있다. 나는 파일 업로드를 통해 테스트용 csv 파일을 하나 업로드했다.

 

5. 파일 업로드

파일 업로드 버튼을 클릭해 원하는 파일을 생성할 수 있다. 

 

버킷 생성 및 파일 업로드는 굉장히 간단하고 UI로 작성 가능하다. 사실 업로드가 중요한 것 보다는 이를 통해 확장시킬 수 있는 다른 프로덕트를 어떻게 유연하게 사용할 것인지가 더 중요하고, 버킷에서 가져온 나의 로컬 데이터 뿐만 아니라 로컬 MySQL 워크벤치로 작업할 수 있는 Cloud SQL 서버, 이를 대시보드(루커스튜디오)에 연결하는 방법, BigQuery의 사용까지.. 삽질을 하면서 얻은 GCP의 다양한 기능들을 살펴볼 예정이다.

많관부

* 1일 1통계 시리즈는 프리렉 출판사의 '통계101x데이터 분석' 을 참고하여 작성하였습니다.

내가 마지막으로 통계를 배운 것은 대학 1학년 1학기 '경영 통계학'이었다. 수학을 짝사랑 했던 나는 여전히 외면당했고(내가 열심히 안했겠지만) 그 이후로 통계랑은 담을 쌓고 지냈는데... 데이터 분석가가 될 줄은 몰랐지.

그 중 가장 기본적인 '기술 통계' 역시 낯선 개념이었다.

 

기술 통계 vs. 추론 통계

기술 통계는 '수집한 데이터를 정리하고 요약하는 방법' 이라고 본문에서 소개하고 있다. technical의 기술이 아닌, descriptive 즉 확보한 데이터를 묘사하는 것에 초점을 두고 있다. 평균, 분산 등의 계산을 포함하여 데이터 자체에서 얻는 통계를 뜻한다.

반면, 추론 통계는 '수집한 데이터로부터 데이터의 발생원을 추정하는 방법' 이라고 소개되어있다. 대상을 이해하기 위해 대상이 측정된 방식, 알고자 하는 대상에 대해 추정하는 것이다.

이를 추정하기 위해 '확률 모형' 이라는 것을 사용하게 된다.

데이터는 관찰한 값이지만, 이 대상의 성질은 관찰한 값 만으로는 알기 어렵다.

우리는 정육면체 주사위의 여섯 면이 동일하다는 가정 하에 각 면이 1/6의 확률로 나타나는 확률 모형으로 표현한다.

 

통계적 추론과 가설 검정

- 통계적 추론: 데이터에서 가정한 확률 모형의 성질을 추정하는 방법

e.g. 서로 다른 크기의 면을 가진 주사위라면, 각 눈의 확률이 1/6이 아닐 수 있다. 이런 경우 통계적 추론을 이용하여, 얻은 데이터로부터 각 눈이 어떤 확률로 나오는 주사위인가를 추정할 수 있다.

- 가설 점정: 세운 가설과 얻은 데이터가 얼마나 들어맞는지를 평가하여, 가설을 채택할 것인가를 판단하는 방법

 

+ Recent posts