분류의 개념 대표적인 모형 : KNN, Logistic Regression 3-1. 머신러닝 분류 모델링 머신러닝 과정이란? (복습) 문제를 해결해야하는 상황이 있고, 해당 문제를 해결한 후 accuracy, error 등을 측정한다. 그리고 그 경험을 통해 축적된 데이터에서 유의미한 패턴을 찾아내는 것. 기계학습 유형 : 문제상황(Task)에 따라 크게 세 가지로 분류된다. 학습을 어떻게 진행하는지, 또 무엇을 학습하는지에 따라서 구분이 달라진다. Supervised Learning : 지도학습 (Classification과 Regression이 있음) Unsupervised Learning : 비지도학습 (데이터에 있는 속성, 특징을 추출해내는 작업, Clustering, 이상치) Reinforcem..
머신러닝을 어떻게 적용하는지 절차적으로 배워본다. 1. 문제 이해 2. 데이터 준비 3. 모형 구축 과정 4. 데이터 검증과정 5. 모형 유지보수 2-1. 머신러닝 프로세스 개요 Data Science Process 1. 비즈니스에 대한 이해 (Prior Knowledge) - 해결하고자 하는 문제에 대한 정확한 이해 - 예측목표 / 정확도 / 성능 / 모형활용에 대한 계획 2. 데이터 준비 : 데이터에 대한 이해 - 데이터가 어떻게 생긴건지? - 어떤 부분을 처리하고 변수로 삼을건지? 3. 모델링 : Training Data - 모형의 구조를 갖추고, 해당 모형으로 학습 - 학습된 함수 도출 4. 모델적용 : Test Data - 도출된 함수 검증 - 매우 중요한 단계 !!! 검증을 통해 최선의 모형을..
1-2. 머신러닝 학습 개념 : 오차 Linear Regression(선형회귀) 기본적인 머신러닝 방법론 기본전제 : input과 output 간의 관계가 선형적임 (선형식이란? input이 입력되는 변수에 특정 상수를 곱하고, 나머지 곱해진 term들에 대해 더하기 형태로 표현하는것.) ?뭔소리지 ● Linear Regression y^ : 추정함수로부터 출력된 값. y : 실제 y값 β : 구해야할 변수 //이들간의 관계를 가정. 손실함수. Mean Squared Error 출력값이 연속적인 변수일 때 가장 대표적으로 활용하는 손실함수 (실제값-추정값)²의 평균. 최적화 단계 Loss function을 최소화해주는 β를 찾는 과정. 위의 과정을 정리한 수식. (2차함수의 최솟값을 찾는 것) => 붉은..
* 집합 자료형이란? set 키워드를 사용해 만들 수 있음. set()의 괄호 안에 리스트를 입력하여 만들거나 문자열을 입력하여 만들 수 있음. 예시 결과 s1 = set([1, 2, 3]) s1 = {1, 2, 3} s2 = set("Hello") s2 = {'e', 'H', 'l', 'o'} * 여기서 알 수 있는 특징 : 중복을 허용하지 않음, 순서가 없음. => set을 자료형의 중복을 제거하기 위한 필터로 종종 사용하기도 함. => 인뎅싱으로 값에 접근하려면 리스트나 튜플로 전환한 후 접근하면 됨. [1] set 자료형에 인덱싱 하는 방법 set 자료형 list 변환 인덱싱 s1 = set([1, 2, 3]) l1 = list(s1) l1[0] = 1 [2] set 자료형의 교집합, 합집합, 차..
* 딕셔너리란? 대응 관계를 나타낼 수 있는 자료형 순차적으로 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻을 수 있음. [0] 딕셔너리의 예시 dic = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'} Key Value name pey phone 010-9999-1234 birth 1118 * Value 값에 리스트도 넣을 수 있음. * Key에는 넣을 수 없음 : Key에는 변하지 않는 값만 넣을 수 있는데 list는 변할 수 있는 값이기 때문 ! * 딕셔너리에서 Key는 고유한 값이므로, 중복될 경우 하나를 제외한 나머지 것들이 모두 무시됨. (후에 생성된 것만 남음) [1] 딕셔너리 쌍 추가, 삭제하기 ex) a = {1 : 'a'}..
* 튜플은 몇 가지를 제외하고는 리스트와 거의 비슷하다. [0] 튜플이 갖는 리스트와의 차이점 리스트는 []로 둘러싸지만 튜플은 ()로 둘러싼다. 리스트는 요소 값의 생성, 삭제, 수정이 가능하지만 튜플은 요소 값을 바꿀 수 없다. 단지 1개의 요소만을 가질 때에는 요소 뒤에 콤마(,)를 반드시 붙여야 한다. ex) t1 = (1,) 괄호()를 생략해도 된다. ex) t2 = 1, 2, 3, 4 => 프로그램이 실행되는 동안 요소값이 변하지 않길 바란다면 튜플을 사용. 실제 프로그램에서는 값이 변경되는 형태의 변수가 훨씬 많기 때문에 평균적으로 리스트를 더 많이 사용함. [1] 튜플 다루기 ex) t1 = 1, 2, 3, 'a', 'b' t2 = 4, 5 인덱싱하기 t1[0] = 1 슬라이싱하기 t1[1..
* 리스트 생성 방법 : a = [ ] 혹은 a = list() [1] 리스트 인덱싱 a = [1, 2, 3, ['a', 'b', 'c']] 인덱싱 결과 a[0] 1 a[-1] ['a', 'b', 'c'] a[3] ['a', 'b', 'c'] a[-1][0] 'a' a[2][2] 'c' * 리스트를 다중으로 중첩해서 사용하는 것은 혼란스럽기 때문에 자주 사용하지는 않음. [2] 리스트 슬라이싱 a = [1, 2, 3, 4, 5] b = "12345" 인덱싱 결과 a[0:2] [1,2] b[0:2] '12' *콜론 뒤에 적힌 인덱싱 번호의 직전까지만 출력됨. [3] 리스트 관련 함수 리스트 관련 함수 예시 비고 리스트에 요소 추가 (append) a = [1, 2, 3] a.append(4) >>> a =..
이미 알고 있는 내용은 제외, 잊어버렸거나 헷갈리는 부분, 새롭게 알게되는 부분으로 작성. * 자료형이란? 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것. [1] 숫자형 : int, float [2] 문자열 백슬래시(\)를 사용해서 작은따옴표(')와 큰따옴표(")를 문자열에 포함시킬 수 있다. ex) 'jane\'s coffee' 문자열에도 연산자를 사용할 수 있다. ( + , * ) 줄을 바꿀 때에는 이스케이프 코드 \n을 삽입한다. ex) 'i\nmy\nme\nmine' * 이스케이프 코드란? 프로그래밍을 할 때 사용할 수 있도록 미리 정의해 둔 '문자 조합' 주로 출력물을 보기 좋게 정렬하는 용도로 사용. 코드 설명 \n 문자열 안에서 줄을 바꿀 때 사용 \t 문자열 사..