머신러닝

· 머신러닝
독립 변숫값을 변형시켜 가면서 함수의 최솟값을 갖도록 하는 독립변수를 구하는 방법인 경사하강법을 배우다. 1. 경사하강법 정의 MSE를 구하는 2 번째 방법인 경사하강법을 배우겠다. 사용할 모델은 sklearn.linear_model의 SGDRegression모델을 사용할 것이다. 경사하강법은 똑같이 MSE가 최소가 되게 하는 최적의 w(기울기)와 b(절편) 값을 찾는 방법이다. 기계가 스스로 학습한다는 딥러닝의 개념이 있게 하는 핵심 알고리즘이다. 원리는 우리가 시각화했던 그래프를 보면 MSE가 최솟값으로 가야 한다. 그럼 접선의 기울기가 0이 되어야 하기 때문에 기울기가 작아지는 쪽으로 계속 이동하여 값을 최적화하는 방법이다. 기울기가 양수이거나 음수인 건 상관이 없다. 그냥 절댓값이 0에 가까울수록..
· 머신러닝
지도학습의 회귀 모델 중 하나인 선형회귀 모델을 배우다. 1. 선형 회귀 선형 회귀는 통계학적으로 보면 데이터 값이 평균과 같은 일정한 값으로 돌아가려는 경향을 이용한 통계학 기법이다. 예를 들면 사람의 키는 부모, 조부모의 평균 키로 회귀하려는 경향을 가진다 (자연의 법칙). 머신러닝 관점으로 보면, 여러개의 독립변수(문제)와 한 개의 종속변수(정답) 간의 상관관계를 모델링하는 기법으로 사용된다. 시간에 따라 변화하는 데이터나 영향, 가설적 실험, 인과 관계 모델링 등에서 자주 사용된다. 수치적 가치를 추정. 2. 선형 모델 우리는 회귀 모델중 선형 회귀 모델을 배울 것이다. 그렇다면 선형 모델은 무엇일까? 선형 모델은 입력 특성에 대한 선형 함수를 만들어 예측을 수행하고 다양한 선형모델을 사용할 수 ..
· 머신러닝
데이터가 많을 때 사용하는 특성 선택을 배우다. 1. 특성 선택의 정의 특성 선택이란 데이터가 많은 상황에서 사용한다. 데이터가 많은 상황에선 특성이 다양하기 때문에 어떤 특성이 의미있는 데이터인지 구별해서 시간을 단축시켜야할 필요가 있다. 특성 선택을 하지않고 모델을 학습시키면 학습량이 늘어나면서 시간 소요가 늘어나 성능이 저하된다. 모델이 규칙을 찾는데에 도움이 안되는 데이터가 들어가기 때문에 불필요한 데이터가 발생한다. 특성 선택의 목표는 불필요한 데이터를 제거하고 필요한 데이터만 남기는 것이다. 2. 특성 중요도 feature_importances_ 특성 선택 과정에선 사용되는 특성들의 중요도를 확인해서 중요도가 1에 가까울수록 중요한 특성으로 생각하면 된다. 특성 중요도를 반환하는 함수를 사용하..
· 머신러닝
train-test데이터 나누기를 여러번 반복해서 모델의 안정성을 높이고, 과대적합을 감소시키는 통계적 기법 기존의 검증방법에서 결국 test 데이터로 train하게되는 잘못된 결과가 생긴다. 그래서 교차검증으로 최종 평가 데이터를 단 1번만 사용하게끔 해야 한다. 예를들어 학습 : 검증 : 평가 = 5 : 3 : 2로 학습 데이터와 검증 데이터를 반복해서 학습하고 검증하면서 결과가 괜찮다싶으면 평가 데이터는 무조건 1번만 사용해서 결과를 확인한다. 검증 데이터를 하나로 고정하지 않고, 학습 데이터의 모든 부분을 사용한다. # 교차검증 라이브러리 꺼내오기 from sklearn.model_selection import cross_val_score cross_val_score(tree_model, X_on..
· 머신러닝
graphviz를 설치하고 사용하는 방법을 배우다. 1. graphviz 설치하기 http://graphviz.org/download/ Download Graph Visualization Software graphviz.org 해당 페이지에서 graphviz를 사용자의 컴퓨터 환경에 맞게 설치하면된다. current user로 선택해서 다음을 누르고 설치를 진행하면 된다. 시스템 환경 변수 편집을 윈도우 검색창에서 검색 후, 환경 변수 버튼을 눌러서 Path를 더블클릭 후 Graphviz가 환경변수에 존재하는지 확인한 후 있다면 그대로 확인 버튼으로 창을 닫으면 된다. 2. graphviz로 알고리즘 시각화 하기 # 시각화 패키지 설치하기 # graphviz.orgidownload !pip install..
· 머신러닝
결정트리 모델로 버섯 데이터를 식용과 독성으로 구분하다. 1. 문제정의 버섯의 22가지 특징을 활용해서 식용 / 독성을 분류한다. 2. 데이터 수집 import pandas as pd mushroom = pd.read_csv("./data/mushroom.csv") mushroom.head(10) # 행(8124), 열(특성22개, 정답1개) 버섯 데이터를 확인해보면 데이터가 수치형이 아니라 문자형으로 되어있는 것을 알 수 있다. 첫 번째 컬럼인 poisonous는 정답데이터이다. e : 식용, p : 독성이다. 따라서 이후에 데이터를 나눌 때 문제 데이터(X)는 첫 번째 컬럼을 제외한 나머지 컬럼이고, 정답 데이터(y)는 첫 번째 컬럼만 있으면 된다. 3. 데이터 전처리 데이터 전처리 단계에서는 결측치..
· 머신러닝
지도학습의 분류 학습으로 머신러닝 Decision Tree 모델을 배우다. 학습목표 Decision Tree 알고리즘 이해 Label Encoding, One-hot Encoding을 이해 교차 검증 기법을 이해 Encoding이란 범주형 데이터, 즉 문자 데이터를 수치형 데이터로 변환하는 것이다. 반대로 수치형 데이터를 범주형 데이터로 변환하는 것은 Binning이다. 교차 검증 기법은 모든 데이터를 나눠서 학습하고 검증하는 방법이라고 알고 있으면 된다. 1. Decision Tree(결정 트리) 모델 Decision Tree(결정트리) 모델은 위의 예시(그림 1)를 보면 이해하기 쉽다. 첫 번째로 모든 데이터를 잘 분류할 수 있게 질문을 한다. 그 질문에 맞게 데이터를 분류하고 또 질문해서 분류를 하..
· 머신러닝
KNN 모델을 지도학습의 분류로 학습시켜 Iris 붓꽃 품종 분류 실습하다. 전 글에서 다뤘던 지도학습의 7단계 과정으로 Iris 붓꽃 품종 분류를 하고 일반화, 과대적합, 과소적합 개념들과 문제데이터, 정답데이터를 분리하고 각각의 데이터를 훈련데이터, 평가데이터를 비율에 맞춰서 나눠야 하는데 기존에 사용했던 인덱싱의 문제점을 설명하고 새롭게 train_test_split( ) 함수를 사용해서 나누는 방법도 설명하겠다. 1. 문제 정의 머신러닝 모델 학습의 목표를 구상하는 서류작성 단계?로 생각하기 목표 : 붓꽃의 품종을 구분하는 머신러닝 모델 만들기 사용할 학습 방법 : 지도학습 - 분류 2. 데이터 수집 sklearn에서 기본적으로 제공하는 Iris 데이터셋을 사용하기 때문에 딱히 csv파일을 읽는다..
이뮨01
'머신러닝' 카테고리의 글 목록