본문 바로가기

SMALL

전체 글

(56)
사이킷런 프레임워크(fit, predict) 와 K-Fold 사이킷런의 개발적인 부분에 대해서 공부를 해보고자 합니다. 사이킷런 기반 프레임워크 - Estimator와 fit(), predict() fit과 predict는 사이킷런의 핵심 메소드입니다. 특히 사이킷런의 지도학습인 경우에 분류와 회귀로 구성이 되어 있는데 이 분류 알고리즘을 구현한 다양한 클래스들이 있습니다. 또한 회귀 알고리즘을 구현한 다양한 클래스들도 여러 있습니다. 사진에서 보듯이 이런 분류,회귀 구현 클래스들을 모두 Estimator라고 부릅니다. 어떻게 보면 최상위 부모 클래스라고 보면 될 것 같습니다. 그리고 분류면 Classifier라는 이름이 주어지고 회귀는 Regressor라고 이름이 주어집니다. 이런 분류든 회귀든 모든 학습은 fit()로, 예측은 predict()로 진행이됩니다...
Scikit-Learn (사이킷런) 우리가 파이썬 기반으로 정형 데이터를 구현한다고하면 대부분 사이킷런 라이브러리 패키지를 씁니다. 사이킷런이 이렇게 가장 인기가 많은이유는 다음과 같습니다. 파이썬 기반의 다른 머신러닝 패키지도 사이킷런 스타일의 API를 지향할 정도로 쉽고 가장 파이썬스러운 API를 제공합니다. 머신러닝을 위한 다양한 알고리즘과 개발을 위한 편리한 프레임워크와 API를 제공합니다. 오랜 기간 실전 환경에서 검증됐으며, 매우 많은 환경에서 사용되는 성숙한 라이브러리입니다. 앞서 본 Numpy와 Scipy 기반 위에서 구축된 라이브러리입니다. 사이킷런을 이용하여 붓꽃(Iris) 데이터 분류(Classification) 머신러닝계의 Hello World같은 붓꽃 데이터 분류를 하겠습니다. 붓꽃 데이터 예측 모델을 만들건데, 붓..
[18808 번] 스티커 붙이기 https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연 www.acmicpc.net 문제 자체가 길어서 조금 읽는데 힘들었지만, 문제에서 말하고자하는 내용은 정확하게 파악할 수 있었습니다. 첫번 째로는 노트북에 스티커를 특정 영역에서 붙일 수 있는지 없는지 확인하는 것이 먼저이고, 그 다음에는 스티커를 회전하는 방법이 있습니다. 우선 노트북의 (x,y)에 모눈종이의 (0, 0)이 올라가게 스티커를 붙이려면 노트북 위의 스티커가 붙은 칸과 모눈종이 위에 스티커가 붙은 칸이 겹지면 안..
[11728 번] 배열 합치기 https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 문제 자체 상황에서는 merge sort를 구현을 할때 많이 사용되는 논리를 가져와서 문제를 풀었스니다. 문제에서 가장 중요한 부분은 2개의 정렬이 되어있는 배열을 합치는 과정에서 조건문인데, 서로 다른 미지수를 사용해서 인덱스를 다르게 증가시켜야하기 때문에 idx1, idx2를 사용했습니다. 그리고 조건문 중에서 가장 중요한 idx1==n , idx == m일..
Pandas (판다스) - Index 판다스를 구성하는 3가지 큰 요소라고 하면 DataFrame, Series, Index입니다. 판다스 Index 개요 판다스의 Index 객체는 RDBMS의 PK(Primary Key)와 유사하게 DataFrame, Series의 레코드를 고유하게 식별하는 객체입니다. (하지만 판다스 Index는 별도의 컬럼값이 아닙니다.) DataFrame/Series 객체는 Index 객체를 포함하긴 하지만, Series 객체에 연산 함수를 적용할 때 Index는 연산에서 제외됩니다. Index는 오직 식별용으로만 사용됩니다. DataFrame, Series에서 Index 객체만 추출하기 위해서는 DataFrame.index 또는 Series.index 속성을 통해 가능합니다. 판다스 Index는 반드시 숫자형 값이..
Pandas(판다스) - DataFrame DataFrame과 리스트, 딕셔너리, 넘파이 ndarray 상호 변환 ndarray하고 DataFrame하고의 가장 큰 차이는 바로 column명이 있는지 없는지입니다. 변환 형태 설명 리스트(list)를 DataFrame으로 변환 df_list1 = pd.DataFrame(list, columns=col_name1) 와 같이 DataFrame생성 인자로 리스트 객체와 매핑되는 컬럼명들을 입력 ndarray를 DataFrame으로 변환 df_array2 = pd.DataFrame(array2, columns = col_name2) 와 같이 DataFrame 생성 인자로 ndarray와 매핑되는 컬럼명들을 입력 딕셔너리(dict)를 DataFrame으로 변환 dict = {'col' : [1:11], '..
[15683 번] 감시 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net BFS문제를 풀었을 때와 비슷하게 2차원을 표시하는 x,y표시를 dx[],dy[]를 이용하여서 0,1,-1을 활용하여 남,동,북,동쪽 방향을 나타내게 만들었습니다. board1은 원본 board2는 cctv가 감시하는 구간을 0에서 7로 변경하면 내부 인덱스값을 바꾸면서 값을 넣는 배열로 만들었습니다. cctv 좌표를 저장할 vector변수를 만들어줍니다. 문제를 풀 때 특정 (x,y)..
Pandas(판다스) - value_counts method value_counts() 동일한 개별 데이터 값이 몇 건 있는지 정보를 제공합니다. 즉, 개별 데이터값의 분포도를 제공합니다. value_counts()는 과거에는 Series객체에서만 호출 될 수 있었지만 현재에는 DataFrame에서도 호출가능합니다. value_counts() 메소드를 사용할 때는 Null 값을 무시하고 결과값을 내놓기 쉽습니다. value_counts()는 Null값을 포함하여 개별 데이터 값의 건수를 계산할지 여부를 dropna 인자로 판단 합니다. dropna는 디폴트로 True값을 가지며 이 경우에는 Null 값을 무시하고 개별 데이터 값의 건수를 계산하게됩니다. titanic_df에서 Pclass에 해당 series안에 value들이 count가 되어 나오게 됩니다. 위와..