본 포스팅은 고려대학교 산업경영공학부 김성범 교수님의 유튜브 강의를 정리한 내용입니다.

유튜브 - 김성범[ 교수 / 산업경영공학부 ]

 

모델 학습의 핵심 아이디어

X(입력 변수)와 Y(출력 변수)의 관계를 찾는 것

수식으로 표현하면 아래와 같음.

 

파라미터(parameter)

w :   파라미터, 모수, 매개변수

X, Y 데이터가 주어졌을 때 파라미터 w를 구하는 것이 머신러닝의 핵심

ε = 0 이 되는 경우가 가상 이상적

 

손실함수(Loss Function)

실제 값과 추정 값의 차이 즉, 오차를 말함.

( i = 1,2 ,...,n )

 

비용 함수(Cost Function)

개별적인 오차를 정의하는 것이 손실함수라면 손실함수를 합이나 평균의 형식으로 나타낸 것이 비용함수(사실상 엄밀하게 구분하여 사용하지는 않음)

비용함수는 단순합으로 나타낼 경우 0이 되어 사라짐.

 

위의 상황을 방지하기 위해 보통 제곱을 취한 형식을 사용

 

 

파라미터 추정

비용함수를 최소로 하는 w를 찾는 것

 

 

모델별 파라미터 추정을 위한 알고리즘

  • 다중선형회귀 모델 → Least Square Estimation Algoritm

  • 로지스틱회귀 모델   Conjugate Gradient Algorithm

  • 뉴럴네트워크 모델   Backpropagation Algorith

 

머신러닝 모델 학습 과정 요약

  • 모델 결정하기 (Y를 표현하기 위한 X들의 조합 방식 결정)
  • 모델을 구성하는 파라미터 찾기(모델의 핵심) → 가지고 있는 데이터를 이용하여 실제 데이터의 값과 최대한 같게 나오도록

본 포스팅은 고려대학교 산업경영공학부 김성범 교수님의 유튜브 강의를 정리한 내용입니다.

유튜브 - 김성범[ 교수 / 산업경영공학부 ]

예측 모델링의 분류

  • 수치 예측 : 종속 변수 Y가 연속형인 경우(Regression, 회귀)
    • 예) 중고차 가격 예측
  • 범주 예측 : 종속 변수 Y가 범주형인 경우(Classification, 분류)
    • 예) 불량 예측, 고객 이탈 예측, 보험 사기 여부 예측, 이메일/스팸 분류

본 포스팅은 고려대학교 산업경영공학부 김성범 교수님의 유튜브 강의를 정리한 내용입니다.

출처 : 유튜브 김성범[교수 / 산업경영공학부]

 

 

머신러닝이란?

인간이 개발한 알고리즘컴퓨터 언어를 통해 기계에게 학습시키는 행위

  • 알고리즘(algoritmn) : 문제를 해결하기 위한 방법들의 체계적인 모임
  • 컴퓨터 언어(computer lanquage) : 인간과 컴퓨터가 소통하기 위한 수단

 

데이터의 구조

X : 독립 변수, 예측 변수, 입력(input) 변수

Y : 종속 변수, 반응 변수, 출력(output)변수

→ 머신러닝이란 X와 Y 사이의 관계를 표현하는 함수식을 찾는 것

 

학습 데이터와 검증 데이터

Training Data(학습 데이터) : 모델 구축시 사용되는 데이터

Test Data(검증 데이터) : 구축된 모델을 검증하는데 사용되는 데이터

커리어무브 대표 & 마이오퍼 IT헤드헌터 👩🏻‍🏫 류채윤

오늘의 강연자 류채윤 대표님은 IT분야에서 수많은 취준생들의 취업과 이직러들의 이직 경험이 있으신만큼 업계 최신 동향과 현실적인 취업 준비를 위해 필요한 것들에 대해 콕 집어주셨다.

현직자나 업계 인사 담당자가 아니면 알 수 없는 비공개 팁들도 많이 알려주셨는데 나름대로 주요 내용을 정리해보았다.

 

블로그에 관련 포스팅을 하셨길래 가져와봤다.
 

나의 커리어 상위 목표를 이해하려면

<나의 커리어 상위 목표를 이해하려면> Sk Planet AI 빅데이터 분석가 과정 수강생 들을 대상으...

blog.naver.com

 

개요

  • 취업을 생각할 때 처음 드는 생각, 마음가짐이 쭉 이어짐
  • 프로젝트가 끝나고 취업활동을 시작하겠다고 생각하지 말고 중간중간 자소서, 경력기술서 등의 서류를 미리 준비할 것
  • 서류를 준비하면서 경험 및 면접 대처 방안을 함께 준비할 것
  • 자신이 배우고 경험한 것을 타인에게 말로 설명할 수 있어야 함

 

IT 및 채용 트렌드 현황 분석

  • 고물가, 불경기, 인력 채용 극감
  • 금융권 디지털 인재 확보 총력
  • 스타트업 연합 채용 증가
  • 개발자 네트워킹 필요성 강화 (커리어리)
  • 현업자와 실제 대화를 나눌 수 있는 플랫폼 인기(커피챗)
  • 인턴, 신입 일자리는 많다
    • 채용공고에 있는 필수조건을 모두 만족하는 신입을 뽑겠다는 회사는 많지 않음.
    • 습득력과 향후 계획을 강조하면 충분히 뚫을 수 있음.
    • 나의 관심사와 경험을 공유할 수 있는 블로그나 플랫폼을 활용하면 좋음.
    • 지원하는 걸 두려워하지 마라.

 

이력서 작성 요령

  • 형식은 무조건 통일
    • 글꼴, 글자크기, 자간, 정렬, 날짜표기 방법 등
    • 명사형 어미로 통일
  • 이력서는 실무자만 보는 것이 아님, 잘 모르는 사람도 이해할 수 있도록 쉽게 작성
  • 단순히 나를 설명하는(설명하기 급급한..) 이력서는 무매력 → 어필(강화, 상승, 이해, 습득)
  • 무조건 구체적으로 작성 → 구체적인 내용이 아니라면 기재하지 말 것
  • 자격증 등급이 있다면 함께 기재, 너무 오래되거나 직무와 맞지 않는 것은 삭제
  • 대내외활동 - 대표적 활동 혹은 프로젝트 (온라인 세미나, 정 없으면 스터디도 ok)
  • S/W 스킬 - 상중하가 중요한 것이 아니라 상세 내용 기재(구현, 가능, 보유)
  • 수상내역 - 어떤상을 탔는지가 중요한 것이 아니라 나의 역할과 활약이 들어가야 함(담당 역할은 팀장 등의 직책을 의미X)
  • 프로젝트 - 성과 및 느낀점이 가장 중요!!!

 

자기소개서 작성 요령

  • NCS 경력기술서 활용(20.정보통신 > 01.정보기술 > 01.정보기술전략·계획 > 05.빅데이터분석)
  • 경험나열X, 질문의 의도가 무엇인지, 면접관이 원하는 정보가 무엇인지를 파악
  • 성장과정은 직무 성장 관점에서 작성 : 해당 직무로 진입하기까지 어떻게 관심을 가지게 되었는지 + 달려온 과정 (시작(진입) 시점은 중요X)
  • 왜? why를 끝없이 질문해라 → 나의 성향과 가치관 확인 가능
  • 업무상강점 : 필요 요소가 아닌 직무 관련 강조하고 싶은 역량을 기재
  • 어디에서 시킨 것이 아닌 내가 직접 찾아서 공부(독학)한 것도 플러스 요인
  • 지원동기와 포부 : 회사의 현재 이슈, 과제에 대한 관심 표현

 

포트폴리오 작성 요령

  • 무조건 참신한 프로젝트 주제가 중요한 것이 아니라 도메인에서 원하는 것! 본인이 한 역할과 배운 점 어필
  • 차별화! 다들 쓰는 내용 말고 강점과 입사 후 포부를 어필
  • 프로필 작성 : 직무성장과정 축약 + 어필하고 싶은 내용 (형식에 구애받지 말 것!)
  • 강점 - 꼭 직무와 관련될 필요는 없지만 직무상 어필이 될 만한 강점이면 좋음.
  • 프로젝트 관련 코드, 사진을 과도하게 넣지 않도록 주의
  • 포폴은 총 10 페이지 이내로 하는 것이 좋음!

 

나의 경우에는 데이터 분야에서 주류 영업 경력을 살릴 수 있을지에 대한 고민을 하고 있었는데 어떤 점을 강조해서 입사지원서를 작성해야 할지 조금 가닥이 잡혔다.

무엇보다 류채윤 대표님은 대기업, 목표했던 기업에 이직하고도 또 다시 이직 욕구를 느끼는 사람들을 보고 나의 기질과 성향을 바탕으로 이직 욕구가 생기는 원인을 파악하고 이직 계획을 세워야 할 것을 강조하였는데 마침 내가 직무 변경 이직을 준비하고 있는 중요한 시기이기도 하고 평소 나의 성향과 자아에 대한 고민을 많이 하고 있던 터라 굉장히 와닿았다.

 

이번 강연으로 인연이 되어 커리어 무브 라이프 리뷰 세션에 참가하여 나의 기질과 무의식에 대해 좀 더 면밀하게 파악하는 시간을 가졌는데 개인적으로는 이직 플랜 뿐만 아니라 앞으로 인생을 살아감에 있어 가져야 할 마음가짐, 타인을 대할 때 취해야 할 태도  등에 대해서도 깨달은 점이 많았다. 라이프 리뷰 세션에 대한 후기는 조만간 자세하게 포스팅 하도록 하겠다.

'ASAC' 카테고리의 다른 글

02. 현직자 특강  (0) 2024.05.07
03. Excel - 240321(목)  (0) 2024.04.02
01. ASAC/SK플래닛/T아카데미/빅데이터 분석가 과정/5기  (0) 2024.04.02
00. 입과과정  (0) 2024.04.02

OT를 마치고 오후에는 현대카드에서 데이터 사이언티스트로 근무중인 현직자분의 특강과 이전 기수와의 대화 시간을 가졌다.
데이터 분야 취업과 이번 과정을 참여하면서 팁이 될만한 사항들을 기록했다.
미래의 나와 혹시 관심이 있는 사람들에게 도움이 되길 바란다


현직자 특강 🧑🏻‍💼 H카드 DS 류성한

  • 데이터 직무 분류
    • Data Scientist - 데이터모델링
      1. 리서치 중심 - 특정 고도화에 초점(석/박 위주 채용)
      2. 서비스 중심 - 머신러닝•딥러닝 모델을 비즈니스에 적용
    • Data Analyst - 데이터 추출&분석&시각화
    • Data Engineer - 데이터인프라 구축
  • 데이터 직무 공통절차
    1. 문제 발견
    2. 분석 질문 정리 및 정의
    3. 현황 파악 및 분석
    4. 해결방안 도출
  • 데이터 직무 필요역량
    • 데이터모델링(분석) : 머신러닝, 딥러닝, EDA, 시각화
    • Software engineering : 알고리즘 코딩테스트, 자료구조
    • 통계지식 : 통계량, 통계검증
    • 기획력 : 인사이트
  • 카카오/네이버 등 IT 기업이나 일부 은행권에 지망하는 경우 코딩 테스트 준비 필수!
  • Kaggle은 수상은 어렵지만 메달 획득을 목표로 매달 1~2회 정도 참여하는 것 추천
  • 기획력, 즉 인사이트 도출을 위해서는 도메인에 대한 관심보다 중요한 것이 없음! 관심있는 도메인을 설정하고 관련 프로젝트 경험을 쌓는 것이 유리
  • DS 직무는 코딩, DA 직무는 SQL 역량이 중요, 면접에서 기술 또는 통계 관련 질문이 있을 수 있으니 대비

 
이전기수 교육생 Tip

  • 과정 전반부 : EDA 익숙해지기, 기초지식 쌓기 / 채용공고 탐색, 자격증•코테 준비
  • 과정 후반부 : 프로젝트 경험 쌓기(모델링, EDA, 협업 등을 통한 성공경험/유사경험) → 프로젝트 과정 중 역할, 어려운 점, 극복 사례 등을 기록해두고 포트폴리오와 자소서에 활용 / 취업박람회•취업 연계 활동 적극 참여 권장
  • 과정동안 가져갈 목표를 분명하게 설정하고 목표 달성에 필요한 부분을 전략적으로 취사선택 할 것
  • 직무 이해와 도메인 설정, 코딩테스트 준비는 빠르면 빠를수록 좋음!
  • 대기업은 코딩테스트, 중견 및 스타트업은 포트폴리오 필수적으로 준비
  • 각 기업의 테크블로그•유튜브를 활용하여 실무에서 사용하는 기술들에 대한 정보를 얻을 수 있음, 유튜브 ‘데이터야 놀자‘도 추천
  • 부족한 역량 강화를 위해 각종 스터디 활용(자격증, 코테 등)
  • 되도록 다양한 주제(확고한 도메인 미설정시)로, 최신 기술을 이용하여 프로젝트 진행
  • 블로그, 노션, 깃허브 등 어떠한 방법을 이용해서든 꾸준히 기록할 것
  • 긴 과정동안 건강 및 체력관리 필수


현직자 특강에서는 실제 취업에 필요한 부분과 실무에서 데이터 분석가가 하는 역할 등에 대한 정보를 얻을 수 있었고  이전 기수와의 대화에서는 과정을 하면서 미리 준비하면 좋을 사안들과 태도에 대한 조언을 얻을 수 있었다.
 
현직자 인터뷰나 취업 특강을 경험하고 느끼는 바인데 동일한 분야에 종사하고 있을지라도 사람마다 의견들이 조금씩 다르다. 따라서, 나의 성향과 상황에 맞게 필요한 부분을 취사선택하려고 한다

'ASAC' 카테고리의 다른 글

04. 2024 하반기 취업전략  (1) 2024.05.12
03. Excel - 240321(목)  (0) 2024.04.02
01. ASAC/SK플래닛/T아카데미/빅데이터 분석가 과정/5기  (0) 2024.04.02
00. 입과과정  (0) 2024.04.02

 

Numpy란

  • 과학 컴퓨팅을 위한 기본 패키지
  • 다차원 배열 객체, 이로부터 유도한 마스크된 배열 및 행렬 등과 같은 객체, 논리, 배열 형태 조작, 정렬, 선택, I/O를 비롯한 배열에 대한 빠른 작업을 위한 다양한 루틴을 제공
  • 이산 푸리에 변환, 기본 선형 대수학, 기본 통계 연산, 무작위 시뮬레이션 등등 다양한 기능 제공

 

ndarray 자료형의 개념과 생성

  • 벡터 연산과 브로드캐스팅을 지원
  • list, tuple 같은 시퀀스 자료형으로부터 생성
  • list, tuple 등의 시퀀스 자료형과는 다르게 같은 데이터 타입 만을 요소로 가질 수 있고, 크기도 고정되어 있음.
import numpy as np
a_list = [1, 2, 3, 4]
a_array = np.array(a_list)
a_array
>>> array([1, 2, 3, 4])

 

ndarray의 중요 속성

  • shape : 배열의 형태
  • dtype : 요소의 데이터 타입
  • ndim : 차원수. len(x.shape) 와 동일
  • size : 요소의 개수. shape의 모든 값의 곱
  • itemsize : 요소 데이터 타입의 크기(byte 단위)
  • data : 실제 데이터. 직접 사용자가 접근할 필요는 없음
import numpy as np
b_list = [[1, 2, 3],[4, 5, 6], [7, 8, 9]]
b_array = np.array(b_list)
print(b_array)
>>> [[1 2 3]
	[4 5 6]
	[7 8 9]]
b_array.shape
>>> (3, 3)
b_array.dtype
>>> dtype('int32')
b_array.ndim
>>> 2
len(b_array.shape)
>>> 2
b_array.size
>>> 9
b_array.itemsize
>>> 4

 

초기화 관련 함수

  • zeros() :  모든 성분을 0으로 생성
  • ones() : 모든 성분을 1로 생성
  • empty() : 값을 초기화하지 않고(메모리 상태에 따라 다른 값이 들어감) 생성
  • dtype은 디폴트가 float64이고, 변경을 원하면 지정해야 함.
np.zeros((3, 3))
>>> array([[0., 0., 0.],
	   [0., 0., 0.],
     	   [0., 0., 0.]])
np.ones((3, 3))
>>> array([[1., 1., 1.],
    	   [1., 1., 1.],
      	   [1., 1., 1.]])
  • arange(from, to, step) : 시작점부터 끝점(미포함)까지 step만큼의 간격으로 나열 
  • linspace(from, to, npoints) : 시작점부터 끝점(포함)까지 n개로 분할
  • eye(n) : n by n 의 단위행렬 생성
np.arange(1, 2, 0.1)
>>> array([1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9])
np.linspace(0, 1, 9)
>>> array([0.   , 0.125, 0.25 , 0.375, 0.5  , 0.625, 0.75 , 0.875, 1.   ])
np.eye(3)
>>> array([[1., 0., 0.],
    	   [0., 1., 0.],
           [0., 0., 1.]])

 

shape과 dtype 변경

  • reshape() : 함수 또는 메서드 형태로 제공, 고정된 크기를 유지하면서 shap
X = np.arange(0, 9, 1.)
X
>>> array([0., 1., 2., 3., 4., 5., 6., 7., 8.])

np.reshape(X, (3,3))
>>> array([[0., 1., 2.],
    	   [3., 4., 5.],
    	   [6., 7., 8.]])
       
X.reshape(3,3)
>>> array([[0., 1., 2.],
   	   [3., 4., 5.],
   	   [6., 7., 8.]])
  • astype() : 배열에서 dtype을 변경
a = np.arange(3)
a
>>> array([0, 1, 2])
a.dtype
>>> dtype('int32')
a = a.astype(float)
a.dtype
>>> dtype('float64')

함수의 개념

  • 입력값을 가지고 어떤 일을 수행한 후 출력하는 기능을 하는 것
  • 반복적으로 사용하는 기능이 있을 경우 함수로 작성해 놓으면  유용함

 

파이썬 함수의 구조

일반적인 함수

  • 함수의 생성
def 함수명(매개변수):
    수행할 문장
    ...
    return 반환할 값
  • 함수의 사용
리턴값을 받을 변수 = 함수명(입력 인수1, 입력 인수2, ...)
def multiple(a, b):
	return a+b, a-b, a*b, a/b
		
multiple(3, 2)
>>> (5, 1, 6, 1.5)

 

입력값이 없는 함수

  • 함수의 생성
def 함수명():
    수행할 문장
    ...
    return 반환할 값
  • 함수의 사용
리턴값을 받을 변수 = 함수명()
def smile():
	return '^-^'

a = smile()
print(a)
>>> 
^-^

 

리턴값이 없는 함수

  • 함수의 생성
def 함수명(매개변수):
    수행할 문장
    ...
  • 함수의 사용
함수명(입력 인수1, 입력 인수2, ...)
def introduce(grade, class_no, name):
    print(f'저는 {grade}학년 {class_no}반 {name}입니다.')
    
introduce(3, 1, '짱구')
>>> 
저는 3학년 1반 짱구입니다.


입력값도, 리턴값도 없는 함수

  • 함수의 생성
def 함수명():
    수행할 문장
    ...
  • 함수의 사용
함수명()
def bark():
	print('멍멍')

bark()
>>> 멍멍

 

함수에서 다양한 형태로 입력값 받기 

여러개의 입력값을 받는 함수 

  • 함수의 생성
def 함수명(*매개변수):
    수행할 문장
    ...
  • 함수의 사용
함수명(입력 인수1, 입력 인수2, ...)
def add_num(*arg):
    result = ''
    for a in arg:
        result += str(a)
    return int(result)
    
add_num(1, 2, 3, 4)
>>> 1234
  • 매개변수 이름 앞에 *을 붙이면 여러개의 입력값을 원소로 가지는 튜플을 입력값으로 받음.
  • 함수의 매개변수로 *args 하나만 사용할 수 있는 것은 아님.

 

키워드 매개변수

def test(**kwargs):
    for k, v in kwargs.items():
        print(f'{k}는 {v}')

test(개 = '멍멍', 고양이 = '야옹')
>>> 개는 멍멍
    고양이는 야옹
  • 키워드 매개변수를 사용할 때는 매개변수 앞에 별 2개(**)를 붙임.
  • 매개변수 kwargs는 딕셔너리가 되고 모든 Key=Value 형태의 입력값이 그 딕셔너리에 저장됨. 

lambda 예약어

  • lambda는 함수를 생성할 때 사용하는 예약어로, 함수를 한줄로 간결하게 만들때 사용
  • lambda로 만든 함수는 return 명령어가 없어도 표현식의 결과값을 리턴함.
함수명 = lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식
test = lambda a, b : a ** 2 + b
test(2, 3)
>>> 7

'Python > 개념' 카테고리의 다른 글

10. [Python] 제어문 - for문  (2) 2024.04.22
08. [Python] 제어문 - if문  (1) 2024.04.18
07. [Python] 자료형 - 불  (0) 2024.04.17
06. [Python] 자료형 - 집합  (0) 2024.04.16
03. [Python] 자료형 - 리스트  (0) 2024.04.15

for문의 기본 구조

for 변수 in 리스트/튜플/문자열:
수행할 문장
...
sample_list = ['a', 'b', 'c', 'd']
for i in sample_list:
	print(i)
>>> a
    b
    c
    d

 

for 문과 continue

for 문 안의 문장을 수행하는 동안 continue 문을 만나면 for 문의 처음으로 돌아가게 됨

a = [3, 4, 5, 6, 7, 8, 9]
for i in a:
	if i % 5 == 0:
    	print(f'{i}은/는 5의 배수입니다.')
    	continue
    print(f'{i}은/는 5의 배수가 아닙니다.')
>>> 3은/는 5의 배수가 아닙니다.
    4은/는 5의 배수가 아닙니다.
    5은/는 5의 배수입니다.
    6은/는 5의 배수가 아닙니다.
    7은/는 5의 배수가 아닙니다.
    8은/는 5의 배수가 아닙니다.
    9은/는 5의 배수가 아닙니다.

 

for 문과 range 함수

range(시작 숫자, 끝 숫자, 간격)
for i in range(5):
	print(i)
>>> 0
    1
    2
    3
    4

for i in range(2, 6):
	print(i)
>>> 2
    3
    4
    5
    
for i in range(1, 5, 2):
	print(i)
>>> 1
    3
  • range 함수의 끝 숫자는 포함되지 않음.
  • range 함수의 시작 숫자는 생략하면 0부터 반환됨.
  • 간격은 설정하지 않으면 기본값인 1 간격으로 반환됨.

 

리스트 컴프리헨션(list comprehension)

[표현식 for 항목 in 반복가능한 객체 if 조건문]
b = ['홀', '짝', '홀수', '짝수']
[str(i+1) + v for i, v in enumerate(b) if i % 2 == 1]
>>> ['2짝', '4짝수']
  • for문을 이용해 조건에 맞는 값들을 리스트에 모을 경우 리스트 컴프리헨션을 통해 간단하게 나타낼 수 있음.
  • 이중 for 문도 리스트 컴프리핸션으로 구현 가능

'Python > 개념' 카테고리의 다른 글

11. [Python] 함수  (0) 2024.04.24
08. [Python] 제어문 - if문  (1) 2024.04.18
07. [Python] 자료형 - 불  (0) 2024.04.17
06. [Python] 자료형 - 집합  (0) 2024.04.16
03. [Python] 자료형 - 리스트  (0) 2024.04.15

+ Recent posts