출처: https://astrocosmos.tistory.com/202 [ASTROCOSMOS:티스토리] 'AIVLE SCHOOL' 태그의 글 목록 :: 하나둘셋넷
728x90

KT Aivle School 에이블스쿨 기자단] 12.04(월)~ 12.10(일) 빅프로젝트, Aivle Day 2차

 

Aivle Day 2차 일정

 

 2차 Aivle Day의 경우, 오전에는 희망하는 인원에 한해 코딩 테스트를 진행하였고, 오후에는 다함께 취업 컨설팅 강의를 들었다. 가장 기억에 남는 내용은 자기소개서에 "수치화" 요소를 담으라는 조언이었고, 이 부분과 관련하여 채팅창에 질문을 드렸고, 친절한 답변을 얻을 수 있었다. 또한 "3-step 전략"에 대해서도 강조를 하셨고, 실제 합격 자소서와 불합격 자소서의 사례를 들어서 보여주시니 이해하기 쉬웠고, 나 또한 전략적으로 자소서를 구성할 수 있도록 해야겠다고 마음을 다짐했다.

 

Aivle Day 선물 - 치킨

 

 내가 평소에 좋아하는 BBQ 치킨을 쿠폰으로 받아서 만족스러웠고, 돈을 추가로 지불하여 "황금올리브 콤보"로 주문했다. 원래는 금요일 Aivle Day 2차 랜선 회식 때 시켜 먹는거였지만, 목요일에 치킨이 너무 간절하여 밤에 주문해서 먹었다.

 

Aivle Day 선물 - 샴푸, 핸드크림 등

 

 타지 사람이라 빅프 기간 동안에 광주에 고시텔을 잡고, 내려가서 머물게 되었는데 마침 필요했던 샴푸, 로션, 바디워시에 더해 핸드크림까지 받아서 나에게는 더욱 실용적인 선물이었다. 자취를 하게 되면 이러한 물품들을 사는 게 개인적으로 돈이 아깝게 느껴지는데 이를 해결할 수 있었다.

 

Aivle Day 빙고 ( 주제 : 빅프 KSA )

 

 빅프 때 필요한 KSA ( 지식, 기술, 태도 ) 키워드에 대해 조사를 하였고, 이를 주제로 빙고를 하였다. 나는 "냉철함"을 중요한 요소로 골랐고, 나와는 다른 생각을 하는 에이블러들의 생각을 들으니 흥미로웠다. 나는 비록 상품을 받지 못했지만, 재밌는 경험이었다. 각자 생각이 다른 부분이 있어서 빅프로젝트를 진행하는 동안 다툼없이 진행되려면 생각해야 할 부분이 많다고 느껴졌다.

 

미니프로젝트 7차 - 제안전략 수립 및 제안서 작성

 

 저번에 진행했던 6차 프로젝트의 주제를 이어서, 이번 미니 프로젝트에서는 구체적으로 고객사의 요구에 맞는 제안서를 작성해보는 시간을 가졌다. 6차 미니프로젝트와 같은 인원들로 구성되었고, 저번 미프에 이어서 조장 역할을 수행했다. 개인적으로 이번 미니 프로젝트에서는 발표를 굉장히 많이 시켜서 조장으로서 지치는 부분이 있었다. 목요일에는 휴가를 사용하여 하루 편하게 쉬었는데, 이번 미니 프로젝트에서 조장으로서 너무 힘들었기에 휴가가 더욱 만족스럽게 느껴졌다.

728x90
728x90

KT Aivle School 에이블스쿨 기자단] 11.27(월)~ 12.03(일) "제안전략 수립, 제안서 작성"

내용

(1) 7차 미니프로젝트 대면 예약

(2) 제안전략 수립(~수요일)

(3) 제안서 작성(~금요일)

(4) 월간 데이콘 - DACON 데이터 분석 아이디어 경진대회 공모전

 

7차 미니프로젝트 대면 예약

 

 

 그동안 2번만 미니 프로젝트에 대면으로 참석하기도 했고, 이번 프로젝트는 대면을 희망하는 인원들이 꽤 있어서 수요일로 강의실 예약을 신청했다. 수요일에는 회식 또한 진행할 예정이라 좋은 추억을 만들지 않을까 싶다.

 당일로 왕복하려면 새벽에 일찍 일어나야 하지만, 미래의 내가 알아서 잘하겠지란 생각하고 있다.

 

 

제안 전략 수립(~수요일)

 

세분화

 

ㆍ 고객가치를 정의하기 위해서는 "세분화" 과정이 필요함을 배웠고 예시를 들으니 쉽게 이해할 수 있었다.

ex) 어린이가 좋아하는 것은?(X) → 다문화 가정의 어린이가 좋아하는 활동은?

 

포지셔닝

 

ㆍ 포지션이란 고객의 마음 속에 제품이나 기업이 점하는 위치를 말하며, 포지셔닝이란 기업이 고객의 마음 속에 원하는 위치름 점하기 위한 일련의 과정을 말한다.

 

효과적 포지셔닝?

      (1) 3C( 고객, 경쟁사, 자사 ) 고려

      (2) 가능한 비교우위 파악 "솔루션 차별화" -> "상품 차별화", "서비스 차별화", "이미지 차별화", "인적 차별화"

      (3) 포지셔닝의 유형 "속성/효익(Benefit) 포지셔닝", "사용현황 포지셔닝", "제품사용자 포지셔닝", "경쟁자 포지셔닝",

          "제품군 포지셔닝" 

 

ㆍ 포지셔닝을 통한 차별화

      (1) 상품/제품 차별화

      (2) 서비스 차별화

      (3) 이미지 차별화

 

 

마케팅 4P Mix

 

ㆍ "제품", "가격", "유통", "프로모션"

 

(역)가치사슬

 

ㆍ "가치사슬" : 기업에서 경쟁전략을 세우기 위해, 자신의 경쟁적 지위를 파악하고 이를 향상시킬 수 있는 지점 찾기(Reference point)

 

고객의 추구 가치

 

ㆍ"기능", "사용", "정서", "경제"

 

제안서 작성(~금요일)

 

청자 중심의 보고서 작성 PREP

(1) 강조(Point)

(2) 이유(Reason)

(3) 예시(Example)

(4) 강조(Point)

 

4 Box Tool

(1) Summary ( 주제 요약 )

(2) Introduction ( 개요 )

(3) Body ( 본문 )

(4) Review ( 요약 )

 

핵심 차별화 요소

 

(1) 고객의 중요 니즈 

 

(2) 경쟁사 대비 우위점

 

이번 주 수업을 통해 느낀 점

이번 주 수업을 통해 느낀 점은 평소에 뉴스를 꾸준히 보고 정리하며, 자신이 관심 있는 분야를 포함하여 다양한 분야의 지식이 중요함을 배웠다. 실습 보고서를 작성하면서 어려웠던 점은 사실 방법보다는 보고서를 작성하고자 하는 분야에 대한 지식 부족이었기 때문에 이러한 생각을 갖게 되었다. 이런 어려움을 다음에 겪지 않도록 하기 위해 티스토리에 비공개 카테고리를 만들어 두고, 개인적으로 꾸준히 기사를 스크랩하고 이에 대한 생각을 정리해두는 습관을 가져야겠다는 목표를 세웠다.

 

 

월간 데이콘 - DACON 데이터 분석 아이디어 경진대회 공모전

 

 이번에 DACON에서 진행하는 데이터 분석 아이디어 공모전에 참가하기로 결정했다. 같은 분반 에이블러 2명과 함께 팀을 결성하였다. 공모전 조원을 모집할 때마다, 에이블스쿨 에이블러로서의 편리함을 느끼고 있다.

 그동안, 에이블스쿨의 커리큘럼을 정신없게 따라오며 초기에 진행했던 데이터 분석( p-vale 분석 ) 개념이 흐릿해졌었는데 이렇게 공모전을 나가니 복습을 할 수 있어서 좋았다.

 유튜브를 통해 데이터 분석가 로드맵에 대해 검색을 해보며, "프로젝트 기반 학습" 방법을 추천해주었는데, 이번 공모전을 통해 이 학습법의 효과를 체감할 수 있었다.

 

 

 

 

"팀즈"를 이용하니 데이터분석 공모전에 대해 의견을 나누고 파일을 주고 받을 때 편리했다.

지금까지 팀즈를 이용하여 공모전들에 참여했고, 현재는 "백준 문제 풀이 스터디,", "SQL 문제 풀이 스터디"를 리더로서 진행하면서 활용하고 있는데, 게시판을 통해 팀원들에게 공지사항을 알려주고 회의를 시작할 때는 모임 개설 버튼을 통해 간단하게 진행 가능하다는 점이 큰 장점으로 다가왔다.

 

728x90
728x90

KT 에이블스쿨 5기 모집

 

https://aivle.kt.co.kr/home/main/indexMain

 

KT 에이블스쿨

KT가 직접 설계, 교육, 코칭, 채용

aivle.kt.co.kr

 

모집일정

 

 

지원자격

 

 

우대사항에 있는 AICE 자격증이란?

AICE 자격증은 KT 개발하고 한국 경제와 함께 주관하는 인공지능 능력시험입니다.

현재, AICE 자격증 없더라도 AIVLE School에서 교육을 받으신다면, ASSOCIATE 자격 응시 기회를 주고, 불합격 시에는 1회 재시험 기회 또한 부여하고 있습니다.

https://aice.study/info/aice

 

AICE

KT가 개발하여 한국경제신문과 함께 주관하는 인공지능 능력시험입니다.

aice.study

 

 

혜택

 

ㆍ KDT 교육비 최대 31.6만원 지급

: 결석 없이 교육에 성실히 참여하실 경우 최대 31.6만원의 지원금을 받으며 공부하실 수 있습니다.

 교육비가 무료인데 추가로 지원금도 받을 수 있으니 좋은 기회라고 생각했어요.

 

 

현재까지 후기

 

ㆍ AIVLE School에 참여하면서 좋았던 점 중에서 하나는 스터디원들을 구하기 쉽다는 것입니다.

 

 

저는 개인적으로 "백준 문제풀이", "SQL 프로그래머스 문제풀이" 스터디장을 맡아서 매주 스터디를 진행하고 있습니다.

에이블스쿨이라는 기회가 없었다면, 이렇게 좋은 스터디원들을 만나기 힘들었을 거라고 생각하고 있어요.

 

ㆍ 또한, 공모전에 나가고 싶을 때도 사람들을 모집하기 쉽다는 점 또한 있습니다.

 

 

위 사진은 공모전 회의를 할 때 모습입니다. Teams를 통해 자료들을 간편하게 주고 받으니 공모전을 원활하게 할 수 있었어요. 에이블스쿨에서 처음으로 진행했던 공모전이라 기억에 많이 남네요. 이때, 에이블스쿨 수업 중 "데이터 다루기", "데이터 다듬기"에서 배운 내용을 많이 활용하였고 실력을 키울 수 있는 좋은 기회였습니다. 

 

친구 추천 이벤트

 

 

지금 Aivle School 5기 친구 추천 이벤트에 참여하시면 커피 쿠폰도 나눠드리고 있으니 참고해주세요!!

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 에이블스쿨 중간점검] 데이터전처리, 불필요한 부분 제거, 결측치 대체, 중앙값, 최빈값

진행단계

  • 먼저 필요한 라이브러리들을 불러오자 - 데이터 전처리, 시각화
  • 데이터를 불러오고 데이터를 확인하자
  • 불필요한 부분을 제거하자
  • 데이터 결측치를 처리하자 - 최빈값으로 대체하자
  • 데이터 결측치를 처리하자 - 중앙값으로 대체하자

 

먼저 필요한 라이브러리들을 불러오자 - 데이터 전처리, 시각화

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

%matplotlib inline의 역할은 이와 같다.

 

데이터를 불러오고 데이터를 확인하자

df = pd.read_csv('voc_data.csv')   # csv 파일을 읽어오자                         
df.head()  # 앞부분 5줄을 출력하자                                                                  
df.tail()  # 뒷부분 5줄을 출력하자                                                                      
df.info()  # 데이터의 정보를 종합적으로 확인하자
df.info()     
df.index() # 데이터프레임의 인덱스 확인

df.columns # 데이터프레임 컬럼을 확인                                                               
df.values  # 데이터프레임 값을 확인

df['voc_trt_perd_itg_cd'].value_counts()  # voc_trt_perd_itg_cd 컬럼 데이터별 건수를 나열         
df['voc_trt_perd_itg_cd'].value_counts(normalize = True)

#  voc_trt_perd_itg_cd 컬럼 데이터별 건수 비율 보기

 

불필요한 부분을 제거하자

df1 = df.drop(columns=['voc_trt_perd_itg_cd', 'voc_trt_reslt_itg_cd', 'oos_cause_type_itg_cd', 'engt_cperd_type_itg_cd',
                                      'engt_tgt_div_itg_cd', 'fclt_oos_yn'], axis=1)

# 불필요한 컬럼 삭제
# DataFrame drop() 함수 사용
# 컬럼 삭제한 결과를 "df1" 데이터프레임에 저장한다.
# 다중 컬럼 삭제

df1.drop(columns = ['voc_mis_pbls_yn'], inplace = True) # 단일 컬럼 삭제

df.drop(columns = ['new_date','opn_nfl_chg_date', 'cont_fns_pam_date'], inplace =True)

# 다중 컬럼 삭제

 

데이터 결측치를 처리하자 - 최빈값으로 대체하자

df1.replace('_', np.nan, inplace = True) # 모든 컬럼에 대하여 '_' 값을 null로 변경한다.
df1.isnull().sum() # 변경이 잘 되었는지 확인한다.

최빈값이 L로 확인된다.

df1['cust_class_itg_cd'].value_counts()  # 최빈값을 찾자
df1['cust_class_itg_cd'].fillna('L', inplace = True)  # 최빈값 'L'로 결측치를 대체하자
df1['cust_class_itg_cd'].isnull().sum()  # 잘 대체되었는지 Null 값을 확인하자
df1.info()

 

데이터 결측치를 처리하자 - 중앙값으로 대체하자

df1['age_itg_cd'].median() # 중앙값을 확인하자

df1['age_itg_cd'].replace(np.nan, 위에서 계산한 중앙값, inplace = True)

# 위에서 나온 중앙값으로 Null 값을 대체하자.

df1['age_itg_cd'].dtypes # 데이터 타입을 확인하자

df1['age_itg_cd'] = df1['age_itg_cd'].astype(int) # 값을 정수형으로 변환하자

df1['age_itg_cd'].isnull().sum() # Null 값 개수를 확인하자

df1.info() # age_itg_cd가 "int32" 타입인지 확인하자
728x90
728x90

내용

  • 먼저 필요 라이브러리들을 불러오자
  • 디렉토리에 학습할 파일이 잘 위치하고 있는지 확인하자
  • 데이터를 필요한 형태로 가공하자
  • 데이터의 정보를 파악하자
  • 타겟 데이터에 대해 파악하자
  • 데이터를 시각화하여 분석하자
  • Random Forest 알고리즘을 사용하여 모델링을 실시하자
  • 먼저, 데이터를 학습용과 평가용으로 나누자
  • 모델을 선언, 학습, 예측을 수행하자
  • 성능을 평가하자

먼저 필요 라이브러리들을 불러오자

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
 
from sklearn.ensemble import RandomForestClassifier # Random Forest 불러오기
from skelarn.model_selection import train_test_split # 데이터를 나누기 위해 불러온다
from sklearn.metrics import * # 모델 성능 평가를 위해 불러온다.

 

디렉토리에 학습할 파일이 잘 위치하고 있는지 확인하자

import os
os.getcwd() # 현재 디렉토리 위치 확인
os.listdir() # 현재 디렉토리의 폴더와 파일 출력
os.listdir('./data') # 특정 폴더 열어보기

 

데이터를 읽고, 필요한 형태로 가공하자

data = pd.read_csv('./data/train_data.csv') # data 변수에 train_data.csv 파일을 불러와서 할당한다.
data.drop('subject', axis =1, inplace = True ) # 불필요한 열을 제거하자

 

데이터의 정보를 파악하자

data.shape() # data 데이터프레임의 행, 열 개수
data.head(5) # 상위 5개 행을 확인
data.tail(3) # 하위 3개 행을 확인
data.columns # 데이터프레임의 컬럼명 확인
data.info() # 데이터프레임의 기초 정보(컬럼명, 데이터 개수, 데이터 타입) 확인
data.info(verbose = True, null_couns = True)
# verbose = True로 하면 모든 열에 대한 정보를 출력, null_counts = True를 하면 각 열에서 null 값의 수를 출력
data.describe() # 데이터프레임의 수치형 데이터 기초통계 정보 확인

 

타겟 데이터에 대해 파악하자

data['Activity].values # 고유값(범주) 확인
data['Activity].value_counts() # 고유값 별 개수 확인
data['Activity'].value_counts() / data['Activity'].value_counts().sum() # 고유값 비율 = 개별 범주의 수 / 전체 범주의 수
 
sns.countplot( data=data, x = 'Activity') # seaborn의 countplot을 통해 타겟 데이터를 시각화하여 분석하자
plt.xticks(rotation=90)
plt.grid()
plt.show()

countplot을 통해 범주별 개수를 시각화하였다.

먼저, 데이터를 학습용과 평가용으로 나누자

y = data['Activity']
x = data.drop('Activity', axis = 1) # target으로 사용할 Activity 컬럼을 제거하자
x_train, x_val, y_train, y_val = train_test_split(x, y, test_size = 0.3, random_state = 2023)


 

모델을 선언, 학습, 예측을 수행하자

rf_model = RandomForestClassifier(random_state=2023) # 모델을 선언한다.
rf_model.fit(x_train, y_train) # 모델을 학습한다.
rf_pred = rf_model.predict(x_val) # 예측을 수행한다.

 

성능을 평가하자

print('accuracy_score', accuracy_score(y_val, rf_pred))
print('\nconfusion_matrix: \n', confusion_matrix(y_val, rf_pred))
print('\nclassification_report: \n', classification_report(y_val, rf_pred))

세 가지 예측을 수행하면 이러한 결과를 확인할 수 있다.

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.09(월) ~ 10.15(일) YOLO, Github

 

내용

  • 시각지능
  • - YOLO
  • - ROBOFLOW
  • GitHub 버전 관리 시작
  • 다음주 목요일 미프 교육장 예약

시각지능

 

시각지능 미니프로젝트에서 유용하게 사용될 예정인 YOLO 모델

실습 교안 중에서 SlowStart 파일로 자세한 설명을 들었다.

 YOLO 모델을 사용함에 있어 사이트를 직접 들어가서 파라미터에 대해 스스로 알아보는 것이 필요함을 배웠다.
 

RoboFlow

 

Donwload Dataset을 눌러 코드를 복사한 이후 붙여 넣기를 하여 다음의 코드를 실행한다.

 

 

Github 버전 관리 시작

 

부스트 코스 강의를 통해 Git Hud를 다루는 법을 배웠다.
처음에는 Github를 쓰는 이유가 뭘지 알지 못해서 그렇게 필요한지 몰랐었다.
하지만 강의를 듣고 이제 commit, push, pull을 제대로 활용할줄 알게 되니 따로 파일을 정리해둘 때보다 편리함을 느꼈고 앞으로는 꾸준히 이곳에 업로드를 할 생각이다.

 

어떤 분이 나를 팔로잉 해주었다



미프 교육장 예약

 

 

 목요일에는 미니 프로젝트 진행을 위해 교육장을 예약했다.
 월~화는 예비군이 잡혀 있기 때문에 선택권이 없고, 남은 요일 중에서는 목요일에 사람들이 많이 몰려서 이 날짜를 선택했다. 왕복 기차표도 예매 완료!

프로젝트 당일날 내려가버리는 빡센 스케줄

 

728x90

+ Recent posts