분류 전체보기 45

LDA

LDA(Linear Discriminant Analysis) 선형 판별 분석법으로 불리며, PCA와 매우 유사. LAD는 지도학습의 분류에서 사용하기 쉽도로 개별 클래스를 분별할 수 있는 기준을 최대한 유지하면서 차원을 축소한다. PCA는 분산이 가장 큰 방향으로 축을 찾았으나, LDA는 결정값 클래스를 최대한으로 분리할 수 있는 축을 찾는다. LDA는 같은 클래스의 데이터는 최대한 근접해서, 다른 클래스의 데이터는 최대한 떨어트리는 축 매핑을 한다. - 클래스간 분산은 가장 크게, 클래스 내부 분산은 가장 작게 축소한다. - LDA는 공분산 행렬을 분리하지 않고 클래스간 분산과 클래스 내부 분산 행렬을 생성한뒤, 이 행렬에 기반해 고유벡터를 구한다. -클래스 내부와 클래스 간 분산행렬을 입력데이터의 결..

선형 자료 구조

배열과 리스트 동적할당 .. 링크 참고 void *malloc(size_t size ); void free(void *memblock ); https://dojang.io/mod/page/view.php?id=285 https://m.blog.naver.com/cache798/130033385486 call by value : 함수의 인자로 들어가는 변수의 값을 복사하여 넘겨주기때문에 해당변수의 값이 수정되지 않는다. call by reference : 변수의 주소를 넘겨주기때문에 변수의 값이 수정될 수 있다. linked list 각각의 node(vertex)는 데이터의 값 자체와 다음 next 노드의 포인터를 가지게 된다. 만약 사용 언어가 c라면 구조체, 객체지향 언어라면 겍체에 데이터 필드와 링크..

차원 축소(PCA만)

차원이 커질수록 데이터 포인트들간 거리가 크게 늘어남 데이터가 희소화 됨 수백~수천개 이상의 피처로 구성된 포인트들간 거리에 기반한 ML알고리즘이 무력화됨 피처가 많을경우 개별 피처간에 상관관계가 높아 선형 회귀와 같은 모델에서는 다중 공선성 문제로 모델의 예측 성능이 저하될 가능성이 높다. 그런 피처들을 학습 데이터 크기를 줄여서 학습 시간 절약. 모델 성능 향상에 기여 시각적으로 쉽게 데이터 패턴 인지 어떻게 하면 원본 데이터의 정보를 최대한으로 유지한채 축소할 것인가? 피처선택 : 종속성이 강한 불필요한 피처는 아예 제거, 데이터 특징만 나타내는 주요 피처 선택 피처추출 : 기존 피처를 요약해서 새롭게 피처를 만들어 내는것 -> 차원축소에 적합 단순 압축이 아닌, 피처를 함축적으로 더 잘 설명할수 ..

회귀 트리

사이킷런의 결정트리 및 결정트리 기반의 알고리즘은 분류뿐만 아니라 회귀도 가능하다. 트리가 CART(Classification and Regression Tree)를 기반으로 만들어졌기 때문이다. CART는 분류 뿐만 아니라 회귀도 가능한 트리 분할 알고리즘 이다. CART 회귀 트리는 분류와 유사하게 분할을 하며, 분할 기준은 RSS가 최소가 될 수 있는 기준을 찾아서 분할 된다. 최종 분할이 완료 된 후에 각 분할 영역에 있는 데이터 결정값들의 평균값으로 학습/ 예측 한다. 회귀 트리 역시 복잡한 트리 구조를 가질 경우 오버피팅하기 쉽다. 노드갯수와 트리의 크기를 제한해야한다.

로지스틱 회귀

로지스틱 회귀는 시그모이드 최적곡선을 찾는다. 마법의 확률곡선. 실수값을 확률값으로 변환해주는 활용도가 높은 함수다. 시그모이스 함수의 최적선을 찾고, 이 시그모이드 함수의 ㅂ나환값을 확률로 간주해 확률에 따라 분류를 결정한다. 이름은 회귀지만 분류에 사용된다. 로지스틱 회귀는 주로 이진분류에 사용된다. 반환된 예측값을 예측 확률을 의미한다. 반환된 예측 확률이 0.5 이상이면 1로, 0.5 이하이면 0으로 예측한다. 단순 선형 회귀 : y=w1x + w0 Odds(p) = p/1-p 로그 오즈를 이용한 회귀분석 식 Log(odds(p)) = w1x + w0 p(x) = 1 / 1+e^-(w1x+w0) 로지스틱 회귀는 학습을 통해 시그모이스 함수의 w를 최적화하여 예측한다. 선형회귀는 로지스틱 회귀만큼의..

선형 회귀 모델을 위한 데이터 변환

선형 회귀와 같은 선형 모델들은 일반적으로 데이터 변환을 어떻게 하냐에따라 예측성능이 많이 달라진다. 선형 모델들은 일반적으로 피쳐와 타겟간에 선형적인 관계가 있다고 가정하고 만들어지기 때문에, 데이터 셋트가 정규분포 되어있다고 가정을 기반으로 만들어진 알고리즘들이 많다. 따라서 우리는 데이터들을 모델에 맞게 변환시켜줄 필요가 있다. - 타깃값을 반드시 정규 분포를 가져야한다. 이를 위해 주로 로그 변환을 한다. - 피쳐값도 주로 로그변환을 한다. standardScaler를 사용, MinMaxscaler를 사용. 스케일링/정규화를 수행항 데이터에 다시 다항특성을 적용한다.( 스케일링 정규화가 효과가 없을시) 그다음에도 안되면 피쳐값에 로그변환을 한다. 다항특성을 하면 피쳐값이 많아져서 과적합이 일어나기..

라쏘 회귀

W의 절대값에 페널티를 부여하는 L1규제를 선형 회귀에 적용한것이 Lasso 회귀이다. L1 규제는 alpha * | |W| | 를 의미하며, 라쏘 회귀 비용함수의 목표는 RSS(W) + alpha * | |W| | 식을 최소화 하는 W를 찾는것이다. L2 규제 (Ridge)가 회귀 계수의 크기를 감소시키는데 반해, L1규제는 불필요한 회귀 계수를 아예 0으로 만들고 제거시킨다. L1 규제는 feature selection 의 성격을 띈다. 엘라스틱넷 회귀는 L2규제와 L1규제를 결합한 회귀이다. Lasso는 상관관계가 높은 피쳐들의 경우에 이들중에서 중요피쳐만들 셀렉션하고 다른 피쳐들은 회귀계수를 0으로 만드는 성향이 강하다. -> alpha값에 따른 회귀계수의 값이 급격힌 변동한다. 이를 완화하기 위..

전자공학에서 머신러닝

okky.kr/article/598750 OKKY | 전자공학과 졸업생이 IT 회사 취업할 때 메리트가 뭐가 있을까요 전자공학과 졸업하긴 했는데 1학년때부터 프로그래밍이 재미있어서 반도체나 아날로그 쪽 공부는 거의 안하고 디지털 약간, 컴공 및 교양 프로그래밍 수업 위주로 공부했고, 결국 전자과에서 okky.kr https://www.itdaa.net/open_mentorings/1664 인공지능(AI) 분야를 희망하는데, 세부 분야를 못 정하겠어요 안녕하세요 멘토님. 서울 소재 대학교 전자공학부 4학년 재학 중인 멘티입니다. 다름이 아니라 인공지능, 빅데이터 분야와 아울러 제가 잘하고 싶은 것이 있는데 어떤 공부를 해야 할지 몰라 질 www.itdaa.net https://gigglehd.com/gg/..

잡담 2021.04.01

회귀

현대 통계학을 이루는 큰 축 현업에서 더 많이쓰이는 알고리즘 여러개의 독립변수와 한개의 종속변수 간의 상관관계를 모델링 하는 기법을 통칭 Y = W1X1 + W2X2 + W3X3 + ... + WnXn Y는 종속 변수 (결정값) X는 독립 변수 (feature값) W는 회귀 계수 (독립변수의 값에 영향을 미침) 머신러닝 회귀 예측의 핵심은 주어진 피처와 결정값 데이터 기반에서 학습을 통해 최적의 회귀계수를 찾아내는 것이다. 회귀는 회귀계수의 선형/비선형 여부, 독립변수의 개수, 종속변수의 개수에 따라 여러가지 유형으로. 회귀계수의 결합방식에 따라 선형회귀와 비선형회귀로 나눠짐. 대부분의 정형 데이터에는 선형회귀가 훨신 예측 성능이 좋다. 분류는 결과값이 카테고리값이 나옴( 0 또는 1) 회귀는 결과값이 ..

feature selection

feature 값 분포, Null 제거, feature간 높은 상관도, 결정값과의 독립성(따로 논다) 모델의 피처 중요도(feature_importance) (지니계수,회귀계수) 기반 #RFE feature_importance 가 낮은 피쳐들을 짤라내면서 성능을 평가 데이터가 많으면 시간이 오래 걸릴뿐더러, 정확한 feature selection을 찾는 목표에 부합하지 않을 수 있음 #selectFromModel feature_importance 를 중앙값보다 아래거나 중앙값 * 0.9 보다 아래인것을 삭제