출처: https://astrocosmos.tistory.com/202 [ASTROCOSMOS:티스토리] '에이블스쿨' 태그의 글 목록 (2 Page) :: 하나둘셋넷
728x90

KT Aivle School 에이블스쿨 기자단] 10.30(월)~ 11.05(일) 미프, 에이블데이, 기자단 발표

이번주 미프 훈남들

 

저번 미프에서는 현규님이 멋있게 보였고, 이번 미프에서는 민성님, 현빈님이 멋있다고 느껴졌다.
 

안정적인 발표를 보여준 민성님

월요일 발표 직후 반응

 
발표도 발표지만 마지막 저 멘트가 기억에 남았다.
 

높은 응용력을 보여준 현빈님

 
나는 주어진 과제 따라서 지도 정도까지 그리니까 시간이 끝났는데, Naver API 사용해서 지도까지 그린 걸 보고 대단하다고 생각을 했었다. 기회가 된다면 많이 배워보고 싶네요.

기자단 발표

 


처음에 매니저님한테 메세지를 받았을 때는 DX가 모두 있는 Zoom에서 화면 공유하고 발표하는 알았다. 사람들이 많은 곳에서 발표하면서 그릇을 키워볼까 그냥 가만히 있을까 고민을 했는데, 다시 확인을 해보니 우리반에서 진행하는 걸 알게됐고 이정도면 할만하지 생각하고 하겠다고 말씀을 드렸다.

로젠택배 알림이 떠서 최근에 주문한게 없는데 뭘까..? 생각이 들었었다. 읽어보니 발송인이 AIVEL School로 써있었고 선물은 텀블러였다. 소소하게 기분이 좋았고, 나중에 이 텀블러로 커피를 마신다면 인증 사진을 올려야겠다.

728x90
728x90

스트림릿

단계

  • 터미널을 열어 pip install을 통해 streamlit을 설치한다.
  • 필요한 라이브러리를 import 한다.
  • 제목과 subheader를 입력하자
  • 버튼을 통해 원본 주소를 보여준다.
  • 체크박스를 클릭하며 다양한 동작을 수행하자
  • 차트 그리기
  • selectbox를 활용해보자
  • 차트 그리기 mark_line()
  • 차트 그리기 mark_area()
  • 차트 그리기 mark_bar()

터미널을 열어 pip install을 통해 streamlit을 설치한다.

설치화면이다.

터미널을 실행하여

streamlit run streamlit/파일이름.py

을 입력하면, 아래와 같은 창을 실행할 수 있다.

필요한 라이브러리를 import 한다.

import streamlit as st

import altair as alt

import pandas as pd

import plotly.express as px

 

제목과 subheader를 입력하자

st.title('종합실습')

st.header('_2021 서울교통공사 지하철 월별 하차 인원_')

 

버튼을 통해 원본 주소를 보여준다.

if st.button('data copyright link'):
        st.write('https://www.data.go.kr/data/15044247/fileData.do')

 

체크박스를 클릭하며 다양한 동작을 수행하자

# 원본 데이터 확인
if st.checkbox('원본 데이터 보기'):
	subheader('1. 원본 데이터 - df')
	st.dataframe(df)

# 구분 컬럼이 하차인 데이터 선택
# 먼저 구분 컬럼이 하차인 데이터를 선택한다.
df_off = df.loc[df['구분'] =='하차']

# checkbox를 선택하면 데이터프레임이 나오도록 한다.

if st.checkbox('하차 데이터 보기'):
	subheader('2. 하차 데이터 - df_off')
	st.write(df_off)

# 호선, 시간대별 인원수 보기
# 불필요한 컬럼을 삭제한다.

df_line = df_off.drop(['날짜','연번','역번호','역명','구분','합계'], axis=1)

if st.checkbox('호선, 시간대별 인원수 보기'):
	st.subheader('3. 호선, 시간대별 인원수 - df_line')
	st.write(df_line)

# Unpivot 데이터 보기
#  melt 함수 사용 unpivot: identifier-'호선', unpivot column-'시간', value column-'인원수' 
# 새로운 데이터프레임에 저장 & checkbox를 선택하면 데이터프레임이 나타남

df_line_melted = pd.melt(df_line, id_vars = ['호선'], var_name = '시간', value_name = '인원수')

if checkbox('Unpivot 데이터 보기'):
	st.subheader('4. 구조 변경 : (Unpivot by melt) 데이터 - df_line_melted')
	st.write(df_line_melted)

 

호선, 시간별 인원수의 합을 확인하자

# '호선','시간' 별 '인원수' 합,  as_index=False 저장 & 확인 
# 새로운 데이터프레임에 저장 & checkbox를 선택하면 데이터프레임이 나타남
df_line_groupby = df_line_melted.groupby( [ '호선', '시간' ], as_index = False)[ '인원수' ].sum()

if st.checkbox('호선, 시간대별 인원 집계 데이터 보기'):
	st.subheader(' 5. 호선, 시간대별 인원 집계 데이터 - df_line_groupby')
	st.write(df_line_groupby)

# Unpivot과 호선','시간' 별 '인원수' 합을 수행하면 아래와 같다.

 

 

차트 그리기 mark_line()

# altair mark_line 차트 그리기
st.subheader('전체 호선 시간대별 하차 인원 (5.df_line_groupby)')

# 데이터프레임- df_line_groupby
# x- '시간', y- '인원수', color- '호선', strokeDash- '호선'

chart = alt.Chart(df_line_groupby).mark_line().encode(
	x = '시간', y = '인원수', color = '호선', stroke = '호선').properties(width = 650, height = 350)

st.altair_chart(chart, use_container_width = True)

 

selectbox를 활용해보자

st.subheader('선택한 호선의 시간대별 하차 인원')

# 데이터프레임- df_line_groupby  ('호선', '시간대별' 인원 집계 )
# ['호선'] 컬럼에 대해 .unique() 매소드를 사용하여 
# selectbox에 호선이 각각 하나만 나타나게 함

option = st.selectbox('호선 선택 (5.df_line_groupby)', df_line_groupby['호선'].unique())

# .loc 함수를 사용하여 선택한 호선 데이터 선별하고
# 새로운 데이터 프레임-에 저장 & 확인 
df_selected_line = df_line_groupby.loc[df_line_groupby['호선'] ==option]
st.write(option, ' 데이터 (df_selected_line)', df_selected_line)

 

차트 그리기 mark_area()

# altair mark_area 차트 그리기
# 데이터프레임- df_selected_line, x- '시간', y- '인원수'

chart = alt.Chart(df_selected_line).mark_area().encode(                           
	x='시간', y='인원수').properties(width = 650, height = 350)st.altair_chart(chart, use_container_width = True)

 

선택한 역의 시간대별 하차 인원 - selectbox

st.subheader('선택한 역의 시간대별 하차 인원')

# selectbox를 사용하여 '하차역' 선택
# ['역명'] 컬럼에 대해  .unique() 매소드를 사용하여 
# selectbox에 역명이 각각 하나만 나타나게 함

option = st.selectbox('하차역 선택 (2.df_off)', df_off['역명'].unique())

# .loc 함수를 사용하여 선택한 역의 데이터를 선별하고
# 새로운 데이터 프레임에 저장
df_sta = df_off.loc[df_off['역명'] == option]
st.write(option, '하차 데이터 (df_sta)', df_sta)

 

 

# 불필요한 컬럼 '연번','호선','역번호','역명','구분','합계' 제외하고 기존 데이터 프레임에 저장
# 참고) df_sta = df_sta[df_sta.columns.difference(['연번', '호선', '역번호', '역명','구분','합계'])]

df_sta_drop = df_sta.drop(['연번', '호선', '역번호', '역명','구분','합계'], axis=1)
st.write('날짜, 시간대별 인원수 (df_sta_drop)', df_sta_drop)

 

# melt 함수 사용 unpivot: identifier-'날짜', unpivot column-'시간', value column-'인원수' 
# 새로운 데이터 프레임-에 저장 & 확인

df_sta_melted = pd.melt(df_sta_drop, id_vars=['날짜'], var_name='시간', value_name='인원수')
st.write('Unpivot (df_sta_melted)', df_sta_melted)

 

# '시간' 별 '인원수' 집계 , as_index=False
# 새로운 데이터 프레임-에 저장 & 확인
df_sta_groupby = df_sta_melted(['시간'], as_index = False)['인원수'].sum()

st.write(option, ' 집계 데이터 (dfa_sta_groupb)', df_sta_groupby)

 

altair mark_bar  chart + text 그리기 mark_bar()

# 데이터프레임- df_sta_groupby,  x-'시간',  y-'인원수'

chart = alt.Chart(df_sta_groupby).mark_bar().encode(
			x = '시간', y = '인원수').properties(width = 650, height = 350)

text = alt.Chart(df_sta_groupby).mark_text(dx = 0, dy = -10, color = 'black').encode(
			x = '시간', y = '인원수', text = alt.Text('인원수:Q', format = ',.0f') )
# format=',.0f' : 천 단위 구분기호+소수점 이하 0
st.altair_chart(chart+text, use_container_width = True)

728x90
728x90

KT Aivle School 에이블스쿨 기자단] 10.23(월) ~ 10.29(일) streamlit, 상담 메일

내용

  • 에이블스쿨 강사님의 상담 퀄리티
  • Streamlit

에이블스쿨 강사님의 상담 퀄리티

 

자세한 내용은 다루기 어렵지만 데이터 분석, 딥러닝 수업을 해주신 000 강사님께 진로 관련하여 상담 메일을 드렸었다. 주말 11시에 이 정도 길이로 답변이 돌아올 거라고는 예상을 못해서 더욱 큰 감동이었다.

 

Streamlit 다루기

 

시각화 도구로 사용할 Streamlit

 월요일 수업으로는 시각화 도구로 사용할 Streamlit에 대해 배웠다.

 터미널을 통해 코드를 실행하고 다루는 방식이라 아직 터미널 환경에 낯선 에이블러들이 고생하는 모습을 볼 수 있었다.

Jupyter Lab에서 터미널을 통한 Streamlit 조작
수업 직후 올라오른 답안 파일

Jupyter 환경에서의 데이터 전처리, Colab에서의 인공지능 다루기와는 또 다르게 느껴져 연습이 필요할 거라 생각하여 수업이 끝난 직후 올라온 실습답안 파일을 보며 다시 복습을 했다.

 

꾸준한 GitHub 관리

GitHub를 쓰면 쓸수록 편리성을 느끼고 있어, 꾸준히 Commit하고 Push하는 습관을 가지게 되었다.이러한 작업은 꼼꼼하게 정리하는 걸 좋아하는 나의 성향과 잘 맞는다고 느끼고 있다.

 

Shap_value를 통한 상승 요인, 하강 요인 찾기

 

위의 그래프에서 빨간색 부분이 상승 요인, 파란색 부분이 하강 요인에 해당한다.

이진 분류에 대한 실행 결과이며 1에 대한 예측을 목표로 했다. 위의 그래프는 0.96으로 1일 확률이 높고, 아래의 그래프는 0.32로 1이 될 확률이 낮다.

 

변수별 중요도들 barplot으로 그려보자

위의 barplot에서 가장 중요도가 높은 값이 lstat이고 target 값은 medv 이므로 x축에 lstat을 넣고, y축에 medv를 넣어 scatter plot을 그리고 분포에서 벗어난 값을 고른다.

728x90
728x90

KT Aivle School 에이블스쿨 기자단] 10.23(월) ~ 10.29(일) streamlit, 상담 메일

내용

  • 미프 시작, 언어 지능 2일 & 시각 지능 3일 <- 아쉽게도 예비군으로 언어 지능 2일은 통째로 불참
  • 목요일 미프 내려가는 날
  • 현규님 첫 발표

미프 시작

 저번 주에 배운 언어 지능 수업과 시각 지능 수업을 토대로 일주일 동안 미니 프로젝트가 진행된다.
 미니 예비군으로 인해 2일 동안 진행하는 언어 지능 미니 프로젝트는 통째로 참가하지 못하는 것이 아쉽다.
 

꾸준히 쌓여가는 미프 자료들

 위의 파일들을 제외하고 1~3차 프로젝트들도 저렇게 깔끔하게 정리해두었다. 이렇게 정리해둔 것이 빅프로젝트 때 아이디어에 대한 영감을 얻을 때 도움이 될 거라 기대한다. 개인적으로 공부할게 있어서 내가 참여하지 못한 언어지능 프로젝트에 대해 복습을 하지 못했기에 주말을 이용하여 정리할 예정이다.


목요일 미프 내려가는 날

서울에서 광주까지 당일치기를 하기 위해 하루를 4시 20분에 시작했다. KTX 안에서 갈 때 2시간, 올 때 2시간이면 이론상 4시간 수면 확보 가능!


오랜만에 온 교육장

저번에도 왔었지만 다시 오니 감회가 새롭다.
 

현규님 첫 발표

 미프 초창기를 제외하고 우리 권역에서 한동안 발표가 없었는데 목~금으로 현규님이 발표를 해주었고, 높은 수준으로 다른 분반 사람들에게 칭찬을 들었다. 평소 스터디를 진행하시며 꾸준히 노력하셔서 이런 성과를 내신 거라 생각했고 나도 스터디에 참여하겠다는 의사를 전달했다. 다음 미프 때는 내가 발표할 수 있도록 좀 더 노력해야겠다는 자극을 받을 수 있었다.

YOLOv5 학습 모델

 이번 미프 때 배운 YOLO 학습 모델로 우측으로 갈수록 학습률이 좋으나 구조가 복잡해져 용량이 크고 학습 속도가 느리다는 단점을 갖는다. 현재 가지고 있는 데이터셋을 보고 알맞은 모델을 사용한다면 정확도와 용량, 속도 면에서 모두 좋은 결과가 있을 것이다.

금요일에 진행한 CCTV 영상 속 차량 인식 프로젝트 사진이다. 목요일에 만든 130장의 사진과 추가로 구한 사진을 사용하였고, 처음에 할 때는 잘 진행되지 않았는데 200번의 학습을 돌리니 123번에서 얼리 스탑핑이 되고 인식이 잘 되었다.

728x90
728x90

KT Aivle School 에이블스쿨 기자단] 10.02(월) ~ 10.8(일) 코랩 결제, AICE, 듀얼 모니터

 

내용

  • 구글 코랩 결제
  • AICE ASSOCIATE 무료 응시 기회!!
  • 집에 있던 모니터와 듀얼 모니터 연결

미프를 위한 구글 코랩 결제

구글 코랩 결제

 원활한 미프 진행을 위해 KT에서 구글 Colaboratoy Pro 버전 비용을 지원해주었다

 인공지능 학습을 위해서는 GPU의 성능이 중요했기 때문이고, 앞으로는 T4 GPU 기능을 원활하게 사용할 예정

 

 

AICE 자격증

AICE 자격증

 KT AIVLE School에서는 특별히 에이블러들을 위해 AICE 자격증 ASSOCIATE 등급 시험 비용을 지원해주고 있다.

 AI 역량 개발을 위하여 KT가 만든 자격증으로 이 자격증을 공부하고 취득한다면 AI 역량을 키워감에 있어 큰 도움이 될 거라 생각한다.

 수업 때 공부한 인공지능 이론을 다시 복습하며 자격증에 도전하려고 한다.

 

집에 있던 모니터와 듀얼 모니터 연결

그동안은 Twomon SE 어플을 통해 아이패드를 듀얼 모니터로 사용하고 있었으나 코드가 점점 길어지고 내용이 복잡해지며 한계를 느꼈다. 물론 실력이 더 좋았다면 문제가 없었겠지만...

아이패드 듀얼모니터 어플
집에 있던 모니터와 듀얼 모니터 설정

 HDMI 케이블을 찾기가 귀찮아서 그동안 집 모니터와의 연결을 피했지만, 이제는 연결을 해야겠다는 생각으로 세팅을 완료했다. 확실히 아이패드가 아니라 큰 데스크탑 모니터를 연결하니 다르다고 느꼈고 진작하지 않은 것에 아쉬움을 느꼈다. 앞으로는 이 세팅을 통해 능률을 Up! 할 예정

728x90
728x90

KT Aivle School 에이블스쿨 기자단] 9.25(월) ~ 10.1(일) 미프, 딥러닝, 코딩 테스트

내용

  • 미프 4일차 기억에 남는 부분 : 수치형 데이터를 만들기 위한 노가다...
  • 딥러닝 1일차 종합실습_carseat
  • 코딩 테스트 메일 도착

미프 4일차 기억에 남는 부분 : 수치형 데이터를 만들기 위한 반복 작업...

원본 데이터

 위의 데이터를 보면 수치형 데이터로 나타나지 않은 부분들이 있기 때문에 데이터 분석을 위하여 모두 수치형 데이터로 바꿀 필요가 있었고,

 "범주형 데이터"  ⇒ "수치형 데이터" 과정은 손가락 아픈 반복 작업이 필요했다

완성
완성을 위해 필요했던 코드

 미프가 다 끝나고 완성한 부분을 간추려 보니, 별거 아니라고 느껴지긴 하지만

 미프를 진행하는 동안에는 같은 작업을 여러 번 계속 하다보니 손가락이 아프게 느껴져 기억에 남는 부분 중 하나가 되었다.

 

딥러닝 1일차 종합실습_carseat

딥러닝 회귀 모델을 사용하여 carseat 종합실습을 진행하였다

데이터 설명
데이터 형태
코드 모습

 

* model을 생성하기 전에 필수는 아니지만 clear_session()을 하는 것이 권장된다.

코드는

from keras.backend import clear_session

clear_session()

 

* 모델을 생성할 때는 Sequential 모델을 사용하고, Dense 레이어를 이용

히든 레이어에는 relu를 activation으로 사용

 

from keras.models import Sequential

from keras.layers import Dense

 

model = Sequential([Dense(18 ,input_shape = (nfeatures,) , activation = 'relu' ),

                    Dense(4, activation='relu') ,

                    Dense(1) ] )

 

 

코딩 테스트 메일 도착

 

아직 코딩 실력이 부족하다고 느끼지만, 어차피 실전을 겪고 깨져봐야 실력이 늘거라 생각해서 시험을 신청했다

728x90
728x90

KT Aivle School 에이블스쿨 기자단] 9.18(월) ~ 9.24(일) 미니 프로젝트 3차

이번주 스케줄

  • 월~화 비지도 학습
  • 화 공모전 회의, 해커톤 제출
  • 수목금 미니프로젝트
  • 금 회식
  • 일 공모전 회의 데이터 88만
  • 일 프로그래머스
  • 기차표 예매 완료 9.21(목) ~ 9.22(금)
  • 처음 이용하는 광주 지하철
  • KTX 안에서 SQLD 공부

 

이번 주 금요일 회식 - 전남대

나는 현재 타지에서 수업을 듣느라 팀원들을 대면으로 보는 거는 이번이 처음이다

노트북을 받을 때 갔던 건물에서 다시 간다는 것 또한 설레는 부분

다만, 아쉬운 거는 이번에 생각보다 회식 참여 인원이 적다는 것이다ㅠ 아쉽긴 하지만 그래도 온 에이블러들과는 즐거운 시간을 보내야지

처음 이용해보는 광주 지하철
회식 장소

KTX 타고 광주 KT로 가는 길
평소 자격증 공부 시간이 없어서 이때라도 시간을 내서 SQLD를 공부했다..
의외로 책상에서 보다 집중이 잘 되는 느낌??

KTX 타고 가는 길에 SQLD 짬짬이 공

 

첫 대면 프로젝트

처음 방문한 교육장

 나는 대면으로 에이블러들을 보는 게 처음이지만 화면으로 거의 매일 봐서 그런지 내적 친밀감은 느꼈다.

 매니저님이나 다른 에이블러들이 반갑게 맞이 해주어서 하루를 기분 좋게 시작!!

 

수업내용

블로그에 간략하게 정리해보았다

성능평가 데이터 해석

 

비지도 학습 K-Means
elbow method로 그래프에서 적절한 k값 : 팔꿈치 부분 찾기

 

 

728x90
728x90

KT Aivle School 에이블스쿨 기자단] 2023.08.21 ~ 2023.08.28 미니프로젝트, 서울 공모전, 스터디 진행

이번 주의 스케줄

  • 미니프로젝트 수행
  • 서울교육공모전 마무리
  • 일요일 : 프로그래머스 스터디 진행, 서울교육공모전 회의 진행

 

이번주 후기 

 이번주는 평일부터 주말까지 힘든 하루ㅠ

 

 평일에는 Aivle School에서 기존 수업에 더해 미니프로젝트 1, 2차를 수행하고

 

 주말에는 프로그래머즈 스터디, SQL 스터디, 서울 공공데이터 활용 공모전을 진행한 스케줄..

 

 

 힘든 스케줄을 소화했지만, 반장님의 글 중에서 이 부분을 보고 힘도 나고 자존감이 올랐다

 

자존감을 채워준 소중한 반장님

 

미니 프로젝트 후기

 

 그동안의 Aivle School  수업과 미니프로젝트 1차까지는 어렵지 않다고 느껴져서 "나 좀 재능이 있을지도..??"라는 생각을 했지만 미니 프로젝트 2차를 수행한 뒤 많이 겸손해졌다

 

 

현재 약하다고 느껴졌던 부분

 

 코드 중에서 날짜 타입으로 데이터 타입을 변형하는 부분이 아직 손에 덜 익은 느낌...

 

 형광펜에  표시한 부분처럼 연습용 파일을 만들고, 빈 칸부터 다시 직접 쳐보면서 복습하는 습관 갖기!!

 

 

서울 공모전

Aivle 스쿨에서의 스킬은 다 갈아넣은 데이터 분석

 

조원을 도와주고 이런 말을 들으니 자존감이 한 번 더 올랐다!!!

 

이번주의 자존감 Up ver 2

 

 

  Aivle School을 시작하자마 "프로그래머스 문제풀이 스터디", "서울 공공데이터 활용 공모전 팀"을 만들어 현재  조장으로 이끌고 있고, "SQL 스터디"에 회원으로 가입해 이 스터디 모임들을 감당하느라 월요일부터 ~ 일요일까지 그저 컴퓨터만 바라본 한 주...

 

 

스터디

 

 반장님이 이 부부분에 관심을 갖고 우리 분반에도 스터디를 만들고 싶어하던데

 

 부디 좋은 결과 있기를... 저는 적극적인 팔로워가 될게요!~~~

 

일요일 20~21시까지 진행한 프로그래머즈 스터디

 

일요일에 21~23시까지 진행한 서울 공공데이터 활용 공모전 준비

 

 2개 스터디를 조장으로서 이끌며, 좋다고 느끼는 점은 강제로 공부하게 되는 효과가 있다는 것이다

 

 이 모임 아니었으면 주말에 그냥 쉬었을 듯

 

728x90

+ Recent posts