Google Colab

Google Colab & Jupyter Notebook에서 dotenv 사용법

개요

환경 변수를 코드 내에 직접 작성하는 것은 보안상 위험할 수 있다. 이를 방지하기 위해 .env 파일을 사용하여 환경 변수를 저장하고, dotenv 라이브러리를 활용해 이를 불러올 수 있다.

이번 글에서는 Google Colab 및 Jupyter Notebook에서 dotenv 사용법을 다룬다.


1. dotenv란?

dotenv.env 파일에 저장된 환경 변수를 쉽게 로드할 수 있도록 도와주는 라이브러리이다. 이를 활용하면 API 키, 데이터베이스 접속 정보 등을 안전하게 관리할 수 있다.

Python에서는 python-dotenv을 사용한다.


2. dotenv 설치하기

  • Jupyter Notebook 또는 Google Colab에서 설치
!pip install python-dotenv

설치가 완료되면 환경 변수를 저장할 .env 파일을 생성한다.

Streamlit on Google Colab

개요

  • 개발환경설정이 어려운 환경에서 Google Colab 상에서 Streamlit 설치 및 실행을 익히고자 한다.
  • 주로 강의 목적으로 사용하기를 바란다.

Streamlit 라이브러리 설치

  • 아래 코드를 활용하여 streamlit 라이브러리 설치
!pip install -q streamlit

Untitled

Streamlit 코드 작성 샘플

%%writefile app.py

import streamlit as st
import plotly.graph_objs as go
from plotly.subplots import make_subplots
import seaborn as sns

@st.cache_data
def load_data():
    df = sns.load_dataset('tips')
    return df

def main():
    st.title("Streamlit with Plotly")   
    tips = load_data()

    # 데이터가공
    m_tips = tips.loc[tips['sex'] == 'Male', :]
    f_tips = tips.loc[tips['sex'] == 'Female', :]

    # 시각화 차트
    fig = make_subplots(rows = 1,
                        cols = 2,
                        subplot_titles=('Male', 'Female'),
                        shared_yaxes=True,
                        shared_xaxes=True,
                        x_title='Total Bill($)'
                        )
    fig.add_trace(go.Scatter(x = m_tips['total_bill'], y = m_tips['tip'], mode='markers'), row=1, col=1)
    fig.add_trace(go.Scatter(x = f_tips['total_bill'], y = f_tips['tip'], mode='markers'), row=1, col=2)
    fig.update_yaxes(title_text="Tip($)", row=1, col=1)
    fig.update_xaxes(range=[0, 60])
    fig.update_layout(showlegend=False)
    
    # 중요포인트
    # fig.show()
    st.plotly_chart(fig, use_container_width=True)

if __name__ == "__main__":
    main()

Untitled

Spark Code 실행 예제

강의소개

개요

  • 현재 러닝 스파크 교재를 배우고 있다.
  • 해당 교재는 주로 00.py에서 실행하는 방법으로 안내하고 있지만, Google Colab에서 어떻게 변환하는지 확인해보고자 한다.

Spark 설정

Untitled

  • Download 버튼을 클릭하면 아래와 같은 화면이 나온다.
    • 주소를 복사한다. https://dlcdn.apache.org/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz

Untitled

Kaggle - Colab API 연동

개요

  • API 토큰을 내려받은 후, 구글 코랩에서 데이터를 다운로드 받도록 한다.

API 토큰 발급

  • Kaggle Profile - Settings - API를 순차적으로 클릭 후, Create New Token 버튼을 클릭한다.

Untitled

  • 아래 화면처럼 다운로드를 받을 수 있다.

Untitled

Google Colab API 코드 업로드

  • 이제 해당 파일을 바탕화면 등 적당한 곳에 위치시킨 후 아래 코드를 실행한다.
# kaggle.json 파일을 업로드하세요.
from google.colab import files
files.upload()

Untitled

Untitled

  • 마지막으로 ~/.kaggle 폴더를 만들고 키 파일을 복사한 후, 보안을 위해 현재 사용자만 이 파일을 읽을 수 있도록 하는 명령어(chmod 600)를 실행한다.
!mkdir ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json

캐글 데이터 다운로드

  • 이제 사용할 데이터를 내려받는다.
!kaggle competitions download -c dogs-vs-cats
  • 만약 403 Forbidden 에러 발생 시, 이는 데이터셋에 연관된 규칙에 미동의한 상태로 동의를 진행해야 한다. https://www.kaggle.com/c/dogs-vs-cats/rules 페이지로 이동 후, I Understand and Accept 버튼을 누른다.

Untitled

Google Colab Plotly Graph 안 보일 때

현상

  • plotly 라이브러리를 활용하여 Google Colab에서 시각화를 할 때 그래프가 보이지 않는 현상이 존재함
  • 여러 방법론이 등장하지만, 공식문서에 따라서 어떻게 활용하는지 확인하도록 함

Google Colab

  • 먼저 구글 코랩에서 간단한 시각화 코드를 작성하고 코드를 실행한다.
import plotly 
plotly.__version__
# 5.13.1
  • 샘플 코드는 아래와 같음
import plotly.graph_objects as go
import pandas as pd 

temp = pd.DataFrame({
  "Fruit": ["Apples", "Oranges", "Bananas", "Apples", "Oranges", "Bananas"],
  "Contestant": ["Alex", "Alex", "Alex", "Jordan", "Jordan", "Jordan"],
  "Number Eaten": [2, 1, 3, 1, 3, 2],
})

fig = go.Figure()
fig.add_trace(go.Bar(name = "Alex", x = temp['Fruit'], y = temp[temp['Contestant'] == 'Alex']['Number Eaten'].values))
fig.add_trace(go.Bar(name = "Jordan", x = temp['Fruit'], y = temp[temp['Contestant'] == 'Jordan']['Number Eaten'].values))
fig.update_layout(barmode='group')
print(type(fig))
fig.show()

시각화가 나타나지 않을 경우

  • 만약 시각화가 나타나지 않는다면 설정이 제대로 되어 있지 않았을 가능성이 있다.
  • 공식문서를 참조하면 다음과 같다.
  • 공식 문서에서의 설명을 보면 다음과 같다.

Untitled

데이콘 대회 참여 - 10 데이터 시각화

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

사전작업

  • 한글 시각화를 위해 나눔고딕 폰트를 불러온다.
!pip install psankey #  sankey diagram
%config InlineBackend.figure_format = 'retina'
!apt -qq -y install fonts-nanum
Requirement already satisfied: psankey in /usr/local/lib/python3.6/dist-packages (1.0.1)
fonts-nanum is already the newest version (20170925-1).
The following package was automatically installed and is no longer required:
  libnvidia-common-440
Use 'apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 33 not upgraded.
import matplotlib.font_manager as fm
import matplotlib as mpl
import matplotlib.pyplot as plt

fontpath = '/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf'
font = fm.FontProperties(fname=fontpath, size=9)
plt.rc('font', family='NanumBarunGothic')
mpl.font_manager._rebuild()
mpl.pyplot.rc('font', family='NanumGothic')
fm._rebuild()
  • 위 코드 정렬이 끝난 이후에는 런타임-다시시작을 진행한다.
  • 위 셀만 실행한다.

I. 빅쿼리 연동

  • 지난 시간에 데이콘에서 내려받은 데이터를 빅쿼리에 넣는 작업을 진행하였다.
  • 빅쿼리에 저장된 데이터를 구글 코랩으로 불러오려면 다음과 같이 진행한다.

(1) 사용자 계정 인증

구글 코랩을 사용해서 인증 절차를 밟도록 한다. 아래 소스코드는 변경시키지 않는다. 아래 절차대로 진행하면 된다. Gmail 인증 절차와 비슷하다.

데이콘 대회 참여 - 09 스태킹 알고리즘

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

사전작업

!pip install https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
Collecting https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
.
.
.
Successfully installed confuse-1.3.0 htmlmin-0.1.12 imagehash-4.1.0 pandas-profiling-2.8.0 phik-0.10.0 tangled-up-in-unicode-0.0.6 tqdm-4.47.0 visions-0.4.4

I. GBM, XGBoost, Lightgbm의 개요 및 실습

  • 부스팅 알고리즘은 여러 개의 약한 학습기(Weak Learner)를 순차적으로 학습-예측하면서 잘못 예측한 데이터에 가중치 부여를 통해 오류 개선하며 학습하는 방식.

Github Project 포트폴리오

개요

  • 본 포스트는 깃허브 프로젝트 관리에 관한 것이다.

I. 프로필 작성하기

  • 이력서에 준하는 프로필 또는 유니크한 것을 살리는 것이 좋다.
  • 깔끔한 정장을 입고, 이쁘게 화장을 하고, 면접을 보러가듯이 인사담당자가 보는 이로 하여금 좋은 인상을 심어줘야 한다.
  • 성명, 이메일, 전화번호 등은 가급적 자세하게 기록해두는 것이 좋다.
  • 프로젝트는 현재 진행중인 Pinned Repositories 상위 3~4개 정도 올려 놓는 것이 좋다.

  • 만약에 현재 기여하는 오픈 소스 리퍼지토리가 있다면 반드시 메인 화면에 고정시킨다.

II. 깃허브 설치 및 연동

  • 잔디밭은 일종의 열정과 성실함을 보여준다.
  • 데이터 싸이언티스트(=개발자)는 매일마다 새로운 것을 배우고 성장해야 한다. 이 업종을 떠나기 전까지는 우리는 매일 조금씩이라도 코딩하고 꾸준히 커밋하는 습관을 길러야 한다.
  • 그런데, 깃허브가 처음이라면 어떻게 해야할까요?

(1) 깃허브 가입하기

(2) 저장소 추가하기

  • 저장소 추가하는 방법은 왼쪽 상단 [create repository]를 선택한다.

데이콘 대회 참여 - 08 세개의 모델

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

사전작업

!pip install https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
Collecting https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
  Using cached https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
.
.
.
Successfully built pandas-profiling

I. 빅쿼리 연동

  • 지난 시간에 데이콘에서 내려받은 데이터를 빅쿼리에 넣는 작업을 진행하였다.
  • 빅쿼리에 저장된 데이터를 구글 코랩으로 불러오려면 다음과 같이 진행한다.

(1) 사용자 계정 인증

구글 코랩을 사용해서 인증 절차를 밟도록 한다. 아래 소스코드는 변경시키지 않는다. 아래 절차대로 진행하면 된다. Gmail 인증 절차와 비슷하다.

데이콘 대회 참여 - 07 두개의 모델

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

사전작업

!pip install https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
Collecting https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
  Using cached https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
.
.
.
Successfully built pandas-profiling

I. 빅쿼리 연동

  • 지난 시간에 데이콘에서 내려받은 데이터를 빅쿼리에 넣는 작업을 진행하였다.
  • 빅쿼리에 저장된 데이터를 구글 코랩으로 불러오려면 다음과 같이 진행한다.

(1) 사용자 계정 인증

구글 코랩을 사용해서 인증 절차를 밟도록 한다. 아래 소스코드는 변경시키지 않는다. 아래 절차대로 진행하면 된다. Gmail 인증 절차와 비슷하다.