목록전체 글 (315)
rueki

오차 행렬은 이진 분류에서 성능 지표로 잘 활용되고 있다. 학습된 분류 모델이 예측을 수행하면서, 얼마나 헷갈리고 있는지도 함께 보여주는 지표이다. 즉 어떠한 유형의 예측 오류가 발생하고 있는지를 나타낸다. True / False : 예측값과 실제값이 같은가 /틀린가 Negative / Positive : 예측 결과 값이 부정(0) / 긍정(1) TN : 예측값을 Negative 값 0으로 예측했고 실제 값은 역시 Negative 값 0 FP : 예측값을 Positive 값 1로 예측 했는데 실제 값은 Negative 값 0 FN : 예측값을 Negative 값 0으로 예측했는데, 실제 값은 Positive 값 1 TP : 예측값을 Positive 값 1로 예측했는데 실제 값 역시 Positive 값 1..
머신러닝의 프로세스 1. 데이터 가공 / 변환 2. 모델 학습 / 예측 3. 평가 정확도 : 실제 데이터에서 예측 데이터가 얼마나 같은지를 판단하는 지표 정확도(Accuracy) = 예측 결과가 동일한 데이터 건수 / 전체 예측 데이터 건수 모델예측 성능을 직관적으로 나타내는 평가지표이다. 그러나 데이터의 구성에 따라 ML 모델의 성능을 왜곡 받을 수 있다. 캐글의 타이타닉 예제에서 성별로만 예측을 하면 정확도가 얼마나 나오는지 확인해보자. from sklearn.base import BaseEstimator class MydummyClassifier(BaseEstimator): def fit(self, X, y=None): pass def predict(self, X): pred = np.zeros((..

Feature Scaling : 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업 - 표준화와 정규화가 있다. 표준화 (Standardization) : 데이터의 피처 각각이 평균이 0이고 분산이 1인 가우시안 정규 분포를 가진 값으로 변환하는 것 표준 정규분포 Z는 변수 X에서 평균을 뺀 값에 표준편차로 나누어 주는 것을 말한다. 정규화 (Normalization) : 서로 다른 Feature의 크기를 통일하기 위해 크기를 변환 모두 최소 0 , 최대 1의 값으로 변환하는 것 -> 동일한 크기 단위로 변수 비교하기 위해 기존 변수 X에서 X의 최소값을 뺀 값을 feature X의 최대값과 최소값의 차이로 나눈 값으로 변환된다. StandardScaler : 표준화를 지원하기 위한 클래스, 평균이..
이전 시간에는 파일을 받아와서 그 안의 내용을 읽는 것에 대해 알아보았다. 이번에는 파일위에 쓰는 동작에 대해 알아보도록 하자. 파일 위에 쓰기 전에 파일이 없으면 새로 생성이 되며, 내용이 추가되며 기존에 파일이 있으면 덮어쓰기가 된다. 기본 구조로는 파일변수 = open('생성파일경로','w') 파일변수.write(문자열) 파일변수.close() 이제 파일 쓰기에 대해 한 번 작성해보자. myFoodList = ['라면','김치전','모밀','초밥','샐러드'] line = open('../myFoodList.txt','w',encoding='utf8') line.write('\n음식메뉴\n') for i in myFoodList: data = i + '\n' line.write(data) line...
파이썬을 사용하면서 파일을 읽고 쓰는 경우가 많을 것이다. csv 읽기, text 읽기 등등 많지만 요즘은 많은 라이브러리가 있음에 따라 사용이 편하지만 파이썬에서의 파일 입출력은 꼭 알아두는 것이 이후에도 편할 것이라 생각이 든다. 파일 입출력의 기본 구조를 알아보자 파일 변수 = open(파일경로, 'r'/'w'/'a', encoding='utf8'/'cp949) 파일변수.파일입출력함수(옵션) 1. 파일 읽기 파일 변수 생성 파일 변수 = open(파일경로, 'r') 파일변수.read() =>파일 전체 문자열 구조 => 문자열 파일변수.readline() => 첫 줄만 읽기 => 문자열 파일변수.readlines() => 각 행이 리스트 구조로 변경 => 리스트 예제를 통해서 파일을 읽어보자. 먼저 ..
이전 시간에는 filter 함수에 대해 알아보았으면 이번 시간에는 map 함수에 대해 알아보자. map(정의된 함수나 lambda함수, 데이터(리스트, 튜플)) ->map 오브젝트 생성 list(map(정의된 함수나 lambda함수, 데이터(리스트, 튜플))) 데이터 요소를 정의된 함수의 결과값으로 리턴받는다. 결과값을 리스트 요소로 추가한다. 사용자 정의 함수만을 이용한 구현과 map을 이용한 구현의 차이를 알아보자 예시로는 리스트의 제곱값을 반환받는 예제를 사용했다. 1. 사용자 정의 함수 사용 numlist = [1,2,3,4] def power_fn1(list): result = [] for i in list: result.append(i**2) return result print(power_fn..
이전 시간까지 사용자 정의 함수와 lambda, 내장함수 몇 가지 등을 알아보았다. 이번 시간에는 기타 내장함수에 대해서 알아보자. 복습 개념 함수의 종류 : 사용자 정의함수, 외장함수, 내장함수, 외장 모듈 및 패키지... 1. char(), ord() 아스키 코드와 관련된 함수로는 아래와 같다. char(숫자) -> 아스키 코드값에 해당하는 문자나 숫자 ord(관련 문자나 숫자) -> 아스키코드값 print(chr(65)) #A print(ord('A')) #65 2. all(), any() 리스트 및 튜플 등의 원소값이 True / False인지 나타낸다. all(리스트/튜플/집합) : 값이 모두 True 조건이면 True any(리스트/튜플/집합) : 값중 하나라도 True 조건이면 True Fl..
파이썬에서 가장 강력한 함수가 무엇이냐라고 하면 lambda 함수라고 할 수가 있다. lambda를 이용해서 코드를 한 줄로 간략화 시킬 수 있기 때문이다. 람다함수의 정의에 대해 알아보자. 함수변수 = lambda 인자 : 명령 def printWord(m): return 'Message ->' + m print(printWord('오늘도 좋은하루')) f1 = lambda x : 'Message ->' + x print(f1('좋은 하루 되세요')) 첫 번째 함수는 이전시간에 익힌 def 사용자 정의함수를 통해서 만든 것이고 두 번째 함수는 lambda를 이용해서 만든 함수이다. 간단한 함수라서 길이는 짧지만 무엇이 더 간단해 보이는가? lambda가 훨씬 코드의 길이를 줄일 수가 있다. 그리고 la..