본문 바로가기

분류 전체보기95

'하이퍼 파라미터(Hyper Parameter)' 간단한 설명. 하이퍼 파라미터(Hyper Parameter) 개요) 머신러닝에서 하이퍼파라미터는 최적의 훈련 모델을 구현하기 위해 모델에 설정하는 변수로 학습률(Learning Rate), 에포크 수(훈련 반복 횟수), 가중치 초기화 등을 결정할 수 있다. 또한 하이퍼파라미터 튜닝 기법을 적용하여 훈련 모델의 최적값들을 찾을 수 있다. 특징) 모델의 매개 변수를 추정하는 데 도움이 되는 프로세스에서 사용한다. 개발자가 임의로 설정할 수 있다. 학습 알고리즘 샘플의 일반화를 위해 조절한다. 2021. 8. 9.
html 태그 정리 https://www.advancedwebranking.com/html/ The average web page from top twenty Google results Apparently, an average web page uses twenty-eight different element types: The twenty-eight elements used on most pages, ordered by appearance frequency: www.advancedwebranking.com egoing님이 WEB1강의에서 소개해주신 사이트입니다. 웹페이지에서 많이 사용되는 태그들의 평균을 낸 사이트인데, 태그 말고도 여러 가지 정보들이 있어 참고하기 좋습니다. 자주 사용되는 HTML tag 통계 이 사이트를 .. 2021. 8. 9.
Numpy와 Pandas의 차이 머신러닝과 딥러닝을 할때, 구분해서 사용하면 좋음. Numpy (핵심 기능: 다차원(n-차원) 배열인 ndarray 클래스, 배열의 모든 원소는 동일한 데이터 타입이여야 함) 1. 다차원 배열 객체 2. 유니버설 함수 3. 배열을 사용한 데이터 처리 4. 배열의 파일 입력, 출력 5. 선형대수 6. 난수 생성 7. 브로드캐스팅 8. 객체 생성이기 때문에 객체 주소지만 참조함 Pandas 1. 테이블을 수정하고 조작하는 다양한 기능 제공 2. SQL처럼 테이블에 쿼리나 조인을 수행할 수 있음 3. 각 열의 타입이 달라도 됨 4. SQL, 엑셀파일, CSV 파일과 데이터베이스의 데이터를 읽어들임. 정리 Numpy: 같은 데이터타입의 다차원 배열, 난수생성 가능, 연산가능 Pandas: 다른 데이터타입을 담을.. 2021. 8. 9.
피쳐 스케일링(Feature scaling)이란 데이터가 가지는 각각의 속성값을 비슷한 수준으로 맞춰주는 것. 이 때 적용하는 스케일링 방법이 표준화(standardization) 와 정규화(normalization)다. 2021. 8. 9.
jupyter notebook 꿀팁 1. jupyter notebook 꿀팁 셀 삽입, 삭제, 복구 등의 단축키를 사용하고 싶을 때는 셀의 바깥쪽(In좌측에 여백)을 눌러 가장 좌측바 색깔이 파란색이 되게 한다. 셀 안 내용에 대해 수정, 복구, 변경 등을 하고 싶으면 셀 안쪽을 눌러 가장 좌측바 색깔이 초록색이 되게 한다. 1 - 1. jupyter notebook 단축키 셀 바깥쪽(파란색)을 선택한 후 Y : 코드형태로 변경 M : 마크다운 형태로 변경 A : 현재 셀 위쪽에 셀 삽입 B : 현재 셀 아래쪽에 셀 삽입 X : 현재 셀 삭제 Z : 삭제한 셀 복구 L : Line number표시(셀 안에 코드들이 몇 번째 줄인지) shift + L : 모든 Line number표시 셀 안쪽(초록색)을 선택한 후 ctrl + D: 해당 커.. 2021. 8. 9.
코드에 메모하는 법 - 주석(Comment) 주석은 코드 내에 작성하는 메모라고 생각하면 된다. 주석 처리된 부분은 프로그램이 해석하지 않는다. 사용자와 프로그램에겐 노출되지 않는 부분, 즉, 개발자들을 위한 장치인 것이다. 프로그램이 클 수록 코드를 알아보기가 어려워진다. 특히 협업하는 경우, 주석으로 다른 개발자들을 도와줄 수 있다. 다른 개발자뿐만 아니라, 자신에게도 마찬가지다. 예를 들어, 테스트 코드나 임시로 작성된 코드가 있을 때, 이걸 주석으로 알려주면 좀 더 빠르게 코드를 이해할 수 있을 것이다. 프로그래밍 언어마다 주석 처리하는 방법이 조금씩 다르다. 아래로 HTML, CSS, JavaScript, Java의 주석 처리 방법에 대해 정리하였다. 1. HTML HTML은 다음과 같이 주석을 처리한다. 로 닫는다. 이 사이에 들어가는 .. 2021. 8. 8.
정규화(normalization)와 표준화(standardization) 비교 오늘은 꽤 중요한 이야기를 하고자 합니다. 기본적이기 때문에 중요합니다. 이것을 간과하면 성능에 치명적인 영향을 끼치기 때문에 중요합니다. 바로 정규화(normalization)와 표준화(standardization)에 대한 이야기입니다. 정규화와 표준화는 모두 머신러닝 알고리즘을 훈련시키는데 있어서 사용되는 특성(feature)들이 모두 비슷한 영향력을 행사하도록 값을 변환해주는 기술입니다. 이것이 무슨 말인지는 좀 더 읽어보시면 이해가 되실 것입니다. 정규화 또는 표준화는 왜 필요한가? 머신러닝 알고리즘은 기본적으로 데이터를 가지고 무언가를 해내는 친구들입니다. 많은 양의 데이터를 가지고 머신(기계)를 학습시키는 것이 머신러닝, 한국어로는 기계학습이기 때문입니다. 보통 예측하고자 하는 것과 연관이 있.. 2021. 8. 8.
백엔드back-end 이해하기 (feat. 프론트엔드) 웹 애플리케이션, 웹사이트의 back-end 이해하기! 아래 내용은 코드카데미, 생활 코딩의 강의를 기본으로 하며, 공부 목적으로 번역 및 정리했다 ✍🏻 1. Front-end 많이 단순화하자면, 프론트엔드는 유저가 직접 보고 상호작용할 수 있는 부분이다. 웹사이트나 애플리케이션 프론트엔드의 코어는 html, css, javascript 그리고 image, video 등과 같은 static assets으로 이루어져 있다. (이 외에도 다양한 도구나 프레임워크를 사용하긴 하지만) 우리가 웹 사이트를 돌아다닐 때, 위에서 말한 asset들은 클라이언트와 서버의 응답 요청을 통해 보여지게 되는 것이다. 이미지 출처: opentutorials의 서버와 클라이언트 강의 1.1 클라이언트 정보/서비스의 소비자. 클.. 2021. 8. 7.
로지스틱회귀(Logistic Regression) 쉽게 이해하기 본 포스팅에서는 머신러닝에서 2진 분류(Binary Classification) 모델로 사용되는 로지스틱 회귀 알고리즘에 대한 개념을 최대한 쉽게 소개한다. (이전에 선형회귀에 대한 개념을 알고 있다면 금방 이해할 수 있는 수준으로 작성했다.) 목차는 아래와 같다. 로지스틱 회귀란 무엇인가 Log-Odds Sigmoid Function Log Loss(로그 손실) Classification Thresholding (임계값) 로지스틱 회귀란 무엇인가 로지스틱 회귀(Logistic Regression)는 회귀를 사용하여 데이터가 어떤 범주에 속할 확률을 0에서 1 사이의 값으로 예측하고 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류해주는 지도 학습 알고리즘이다. 스팸 메일 분류기 같은 예시를 .. 2021. 8. 7.
0806 이해하기 Supervised Learning : 지도 학습 - Regression 회귀 -> Recursion(재귀)와는 다르다. - Classification 분류 -> 어떤 경향성(답)을 찾는 것 Unsupervised Learning : 비지도 학습 - Clustering 군집화 -> 기준을 세워서 그에 맞는 애들끼리 묶는 것 즉, 위에서 예를 들었던 음악 장르 예측은 ‘분류’ 과제가 된다. 분류는 특히 이미지 처리 분야에서 정말 활발하게 활용된다. 의사결정 나무(Decision Tree) 쉽게 이해하기 -지니 불순도 (Gini Impurity) -정보 획득량 (Information Gain) -재귀적(Recursive) 재귀(recursive) 알고리즘: 기준에 따라 나누기 반복적으로 적용->최적의 트리 .. 2021. 8. 6.
선형회귀(Linear Regression) 쉽게 이해하기 본 포스팅에서는 머신러닝에서 사용할 선형 회귀 분석에 대한 개념 설명을 누구나 이해할 수 있을 정도의 수준으로 가볍게 소개한다. (머리 나쁜 나도 이해한 수준까지만 설명할 거니까 대부분의 사람들은 다 이해할 수 있을 거다.) 목차는 아래와 같다. 선형 회귀란 무엇인가 선형 회귀에서 발생하는 오차, 손실 (Loss) 손실을 최소화 하기 위한 방법, 경사하강법(Gradient Descent) 수렴 (Convergence) 학습률 (Learning Rate) 선형 회귀란 무엇인가 머신 러닝의 가장 큰 목적은 실제 데이터를 바탕으로 모델을 생성해서 만약 다른 입력 값을 넣었을 때 발생할 아웃풋을 예측하는 데에 있다. 이때 우리가 찾아낼 수 있는 가장 직관적이고 간단한 모델은 선(line)이다. 그래서 데이터를 .. 2021. 8. 6.
정규화(Normalization) 쉽게 이해하기 왜 정규화를 해야 하는가 머신러닝 알고리즘은 데이터가 가진 feature(특성)들을 비교하여 데이터의 패턴을 찾는다. 그런데 여기서 주의해야 할 점이 있다. 데이터가 가진 feature의 스케일이 심하게 차이가 나는 경우 문제가 되기 때문이다. 예를 들어 ‘주택’에 관한 정보가 담긴 데이터를 생각해보자. 그 안에 feature로 방의 개수(개), 얼마나 오래 전에 지어졌는지(년) 같은 것들이 포함될 수 있을 거다. 그리고 여기서 머신러닝 알고리즘을 통해 어느 집이 가장 적합한지 예측을 시도한다고 해보자. 그러면 각 데이터 포인트를 비교할 때 더 큰 스케일을 가진 feature, 즉 얼마나 오래 전에 지어졌는지(년)에 따라 그 데이터가 완전히 좌지우지 되는 꼴이다. 아래 그림을 보면 이해가 쉬울 것 같다... 2021. 8. 6.
머신러닝에서 학습세트, 평가세트를 나누는 이유와 방법 우리는 머신러닝을 통해서 예측이나 분류를 할 수 있다. 그런데 이 예측이나 분류가 얼마나 정확한지 자문하는 것이 중요하다. 분류 모델을 만들어놨는데, 그 예측이 얼마나 맞고 틀릴지 모르니까. 지도학습(supervised learning)에서는 다행히도 이미 레이블링 된(정답이 있는) 데이터가 있기 때문에 그걸 활용해서 알고리즘의 정확도를 테스트 할 수 있다. 머신러닝 모델의 효과성을 검증하기 위해 데이터를 나눌 때 보통 아래와 같이 세 개의 개념을 이해하면 된다. Training Set (학습 세트) Validation Set (검증 세트) Test Set (평가 세트) 이 중 검증 세트와 평가 세트는 사실 유사한 개념이다. 학습 세트(Training Set)와 검증 세트(Validation Set) 학.. 2021. 8. 6.
랜덤 포레스트(Random Forest) 쉽게 이해하기 이전 포스팅에서 분류에 널리 사용되는 머신러닝 알고리즘 의사결정 나무(Decision Tree)에 대해 알아보았다. 의사결정 나무는 매우 훌륭한 모델이지만, 학습 데이터에 오버피팅 하는 경향이 있다. 가지치기(pruning) 같은 방법을 통해 그런 부작용을 최소하하는 전략이 있긴 하나 역시나 좀 부족하다. 그래서 본 포스팅에서는 의사결정 트리의 오버피팅 한계를 극복하기 위한 전략으로 랜덤 포레스트(Random Forest)라는 방법을 아주 쉽고 간단하게 소개하고자 한다. 내용이 짧으니 후딱 살펴보자. 랜덤 포레스트란 (“무작위 숲”이라는 이름처럼) 랜덤 포레스트는 훈련을 통해 구성해놓은 다수의 나무들로부터 분류 결과를 취합해서 결론을 얻는, 일종의 인기 투표(?) 같은 거다. 아래 그림처럼. 물론 몇몇의.. 2021. 8. 6.
머신러닝 Scikit-Learn 사용법 요약 Scikit-learn은 머신러닝에 사용되는 지도/비지도 학습 알고리즘을 제공하는 파이썬 라이브러리다. 내부 구조를 살펴보면 NumPy, pandas, Matplotlib과 같이 이미 널리 쓰이는 기술을 기반으로 한다고 한다. 최근에 sklearn 관련 자료를 구글링하면서 치트 시트를 보았는데, 나도 안 쓰면 잊어버릴 수 있으니 한 군데에 기록해놓고자 블로그에 남겨놓는다. 일단 학습 알고리즘은 라이브러리 import 및 모델 생성하고, 피팅, 이후 예측하는 과정으로 정리되어 있다. Linear Regression Import and create the model from sklearn.linear_model import LinearRegression your_model = LinearRegression(.. 2021. 8. 6.