데이터 전처리란 무엇인가? 데이터 전처리는 머신러닝 알고리즘에 비해 알려져 있는 정도가 작지만, 중요도는 ML 알고리즘에 맞먹는 중요도를 가지고 있다. 왜냐하면 머신러닝을 통해서 예측을 한다는 것은 데이터 기반이기 때문에, 어떤 데이터를 입력으로 가지는가가 성능에 매우 중요하다. 그럼 어떤 데이터 처리가 필요할까? 1. "결손값", "NaN", "Null"값을 채워 넣는것이다. 머신러닝에 데이터를 입력으로 넣기 전에 해당 값들을 고정된 다른 변환 값으로 바꾸어야 한다. 다른 변환 값이라는 것은 또 무엇을 의미하는가? 이 값은 머신러닝을 제작하는 사람이 직접 고려해야 하는 부분이다. 예를 들어, 피처의 값이 얼마되지 않는 경우에는 피처의 평균값으로 결손값을 대체하는 경우가 있고, 결손값이 일정 수준의 비율..
머신러닝 검색 결과
※ HyperParameter(하이퍼 파라미터)란? 머신러닝 알고리즘을 공부를 하다보면 배운지 많이 듣는 용어 중에 하나이다. 1. 파라미터 VS 하이퍼 파라미터 일단, 파라미터는 일반 함수에서 결과값을 얻기 위해 넣어야 하는 요소들을 의미하는 용어로 사용되는 경우가 많다. 둘의 차이점을 머신러닝, 딥러닝 알고리즘의 범위로 제한한다면, 파라미터들은 측정되거나 데이터로부터 학습되어지는 요소들을 의미하고, 파라미터는 수작업으로 이루어지지 않는다. 즉, 사용자가 직접 입력하지 않는다는 의미이다. 데이터를 얻어 그 데이터의 평균이나, 표준편차 등이 파라미터에 속한다고 볼 수 있다. 하이퍼 파라미터는 머신러닝, 딥러닝 알고리즘에서 쓰이는 용어이다. 이것들은 대부분 해당 알고리즘이 어떻게 학습을 해야하는지에 대한 ..
머신러닝에서 학습한 데이터들을 가지고 학습한 모델의 성능을 학습 데이터로 사용한다면 당연히 성능은 100% 정확하게 나올 수 있다. 하지만, 실제로는 이미 학습한 데이터를 가지고 하는 것이 아니라, 처음 접한 데이터를 예측을 해야 하기 때문에, 그 성능을 측정하기 위해서는 학습 당시에 사용하지 않은 데이터를 가지고 성능 테스트를 해야 한다. 하지만, 가지고 있는 데이터는 한정적이기 때문에, 가지고 있는 데이터 안에서 학습에 이용할 데이터와 성능 테스트에 이용할 데이터를 분리해야 한다. 이 과정을 수행하는 것이 sklearn.model_selection의 train_test_split이다. 실제로 거의 모든 머신러닝 과정에서 위 함수를 사용하게 된다. train_test_split() 함수에서는 2가지 파..
Scikit-learn 가장 많이 쓰이는 파이썬 머신러닝 라이브러리 특징 쉽고 파이썬스러운 API 제공 다양한 알고리즘과 편리한 프레임워크 API 오랜시간에 걸쳐 여러 사용자들에게 검증 다향한 환경에서 사용가능하다. ※ Anaconda를 설치하면 기본으로 설치되어 있다. 사이킷 런의 버전을 확인하는 방법은 import sklearn print(sklearn.__verison__) 이다. 데이터 다루기 처음 머신러닝을 배울 때에는 데이터를 어디서 가져와야 할지 조차 모를수도 있다. 또한, 데이터를 외부 사이트에서 가져오더라도 정제되지 않은 것들이 많아 입문자가 바로 머신러닝 실습을 하기에는 어려움이 있다. 이런 이유에서 scikit-learn 패키지는 몇 가지의 데이터셋을 내장하고 있다. 여기에서는 붓꽃(..
Pandas : 데이터 처리를 위한 라이브러리 / 많은 부분이 numpy로 작성되어 있다. / 고수준 API 제공 / csv 파일 등 외부 데이터도 DataFrame으로 변경하는 것이 용이하다. import pandas as pd pandas를 불러오는 코드. numpy를 코드에서 np로 적는 것 처럼 pandas에서도 마찬가지로 pd라고 사용하는 경우가 대부분이다. 판다스의 기본적인 함수들 pd.read_csv() : csv 파일을 dataframe으로 만드는 함수(csv파일은 이해하기 쉽게 엑셀 파일과 거의 동일한 형태라고 보면 된다. ) pd.head / tail() : DataFrame의 첫/마지막 데이터들을 제공한다. 샘플을 보여주는 기능을 하는 함수라고 생각하면 된다. 괄호 안에 숫자를 집어넣..
※머신러닝의 목적 무엇(X)으로 무엇(Y)를 예측하고 싶다! 이때, 데이터는 주로 행렬, 배열 등의 형태로 되어있다. 머신러닝의 목적을 간단하게 수식으로 표현을 한다면 Y = F(X) 이다. X : 우리가 가지고 있는 데이터를 의미하며, 입력변수 / 독립변수 / Feature이라고 부른다. Y : 우리가 예측하고 싶은 데이터를 의미하며, 출력변수 / 종속변수 / 반응변수라고 부른다. F : X를 통해서 Y를 예측할 수 있도록 입력변수와 출력변수간 관계를 의미한다. 머신러닝은 주어진 데이터를 통해 입력변수와 출력변수 간 관계를 만드는 함수 F를 만드는 것이라고 볼 수 있다. ※머신러닝이 필요한 이유 데이터의 양이 기하급수적으로 늘어나고 있는 상황에서 모든 분야의 모집단을 전수조사한다는 것은 거의 불가능하고..
데이터 변환기, Pipeline 만들기 계층적 샘플링 (Stratified Sampling) 데이터 셋이 충분히 크다면 일반 훈련 데이터 셋을 무작위로 샘플링 하여도 큰 문제가 발생하지 않는다. 하지만 그렇지 않으면 데이터 편향이 생길 가능성이 크다. 예를들어 여론 설문조사 기관 dsbook.tistory.com 계층적 샘플링에서 다루었던 housing 데이터들을 가지고 예를 들어보자. 현재 이 데이터들은 StratifiedShuffleSplit 객체에 의해 훈련 세트와 테스트 세트로 나뉘어진 상태이며, 훈련 세트는 다시 housing으로 초기화하였고, 훈련 세트의 레이블은 housing_label로 초기화하였다. 이 데이터들을 전처리하기 위한 파이프라인을 만들어보자. housing = strat_tra..
데이터 셋이 충분히 크다면 일반 훈련 데이터 셋을 무작위로 샘플링 하여도 큰 문제가 발생하지 않는다. 하지만 그렇지 않으면 데이터 편향이 생길 가능성이 크다. 예를들어 여론 설문조사 기관에서 무작위로 1,000명을 선정해 조사를 한다고 가정하자. 무작위로 선정한 1,000명이, 물론 그럴 가능성은 거의 없겠지만 한 성별로만 이루어져 있거나 특정 연령대에 집중되어 있는 경우, 그 데이터 셋에 충분히 신뢰가 가진 않을 것이다. 이를 위해 전체 인구를 계층이라는 동질의 그룹으로 나누고, 테스트 세트가 전체 인구를 대표하도록 각 계층에서 올바른 수의 샘플을 추출한다. 인구 계층을 성별에 따라 남성와 여성으로 나눈다고 가정하자. 2020년 우리나라 남녀 성비는 남자가 50.1%, 여자가 49.9%이다. 여기서 전..
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition Through a series of recent breakthroughs, deep learning has boosted the entire field of machine learning. Now, even programmers who know close to nothing about this technology can use simple, … - Selection from Hands-On Machine Learning with Scikit-Learn www.oreilly.com Machine Learning (의미와 종류) Hands-On Machine Lear..
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition Through a series of recent breakthroughs, deep learning has boosted the entire field of machine learning. Now, even programmers who know close to nothing about this technology can use simple, … - Selection from Hands-On Machine Learning with Scikit-Learn www.oreilly.com 1. 머신러닝 일반적으로 명시적인 프로그래밍 없이 컴퓨터 스스로 학습하는 능력을 갖추..
최근댓글