본문 바로가기

머신러닝

머신러닝에서의 컴퓨터 공학 키워드: Math, Algorithm, Hardware/Software, Computer Engineering, Computer Science, Pattern Recognition, (Big) Data, Machine Learning 머신러닝은 실생활의 문제를 해결하기위해 발전되고 있는 compound 개념 컴퓨터 공학적인 머신러닝 전문가 만들어진 소스코드를 통해 데이터를 바라본다 통계학적인 머신러닝 전문가 수학을 통해 데이터를 바라본다 데이터 마이닝? '사람에게 인사이트를 제공'하는것 머신러닝은? 개발자가 만든 프로그램을 활용하여 '데이터부터 시작하여 패턴(또는 모델)을 학습하고 알고리즘을 활용하여 데이터에 대해 특정 작업을 수행하는 과정' 머신러닝에서 데이터는 어떻게 처리하여 새롭게 만들 것인가에 초.. 더보기
[인공 지능] 머신 러닝과 딥러닝의 차이 Artificial Intelligence; AI 인공지능은 기계가 인간의 지능을 구현하는것, 인간의 감각, 사고력을 지닌 채 인간처럼 생각하는 인공 지능을 ‘일반 AI(General AI)’라고 하지만, 현재의 기술 발전 수준에서 만들 수 있는 인공지능은 ‘좁은 AI(Narrow AI)’의 개념에 포함된다. 좁은 AI는 소셜 미디어의 이미지 분류 서비스나 얼굴 인식 기능 등과 같이 특정 작업을 인간 이상의 능력으로 해낼 수 있는 것을 특징으로 한다. Machine Learning; ML 인공 지능을 구현하는 구체적 접근 방식으로 머신 러닝은 기본적으로 알고리즘을 이용해 데이터를 분석하고, 분석을 통해 학습하며, 학습한 내용을 기반으로 판단이나 예측을 하는 것. 궁극적으로는 의사 결정 기준에 대한 구체적.. 더보기
[Machine Learning] Tree-Based ML - 2. Ensemble Method (Random Forests) Ensemble Method 한종류의 데이터로, 다수결의 원칙으로 반복하여 여러개의 결정트리(머신러닝 학습모델(weak base learner, 기본모델))를 만들고. 각 결정 트리 하나마다 예측값을 확인하고 이들중 최빈값(분류)또는 평균값(회귀)을 최종 예측값으로 정한다. 이렇게 의견을 통합 하거나, 여러가지 결과를 합치는 방식. (a.k.a 집단지성) 부트스트랩(Bootstrap) 샘플링 앙상블에 사용하는 작은 모델들은 부트스트래핑(bootstraping)이라는 샘플링과정으로 얻은 부트스트랩세트를 사용해 학습을 합니다. 즉 원본 데이터에서 샘플링을 하는데 복원추출(중복추출가능)을 한다는 것인데 복원추출은 샘플을 뽑아 값을 기록하고 제자리에 돌려놓는 것을 말함. 이렇듯 샘플링을 특정한 수 만큼 반복하면.. 더보기
[Machine Learning] 특성 선택(Feature selection) - select K best 특성공학은 과제에 적합한 특성을 만들어 내는 과정입니다. 이 프로세스는 실무 현장에서 가장 많은 시간이 소요되는 작업 중 하나입니다. 이제 사이킷런의 SelectKBest를 사용해서 회귀모델에 중요한 특성을 선택해 보겠습니다. 1. Feature Engineering을 통해 1차적으로 데이터 정리 def engineer_features(X): # pandas.DataFrame.copy() X = X.copy() ## 욕실 갯수을 정수형으로 처리합니다. X['bathrooms'] = X['bathrooms'].round(0).astype(int) ## 총 방 수를 합하여 rooms로 합쳐 봅시다. X['rooms'] = X['bedrooms'] + X['bathrooms'] ## 사용하지 않을 특성을 삭제.. 더보기
[Machine Learning] 지도학습 -정규화 선형회귀[Ridge Regression (릿지 회귀, L2 Regression), Lasso Regression(라쏘 회귀; L1 regression)] 정규화 선형회귀(Regularized Method, Penalized Method, Contrained Least Squares) 정규화(Regularized) 선형회귀 방법은 선형회귀 계수(weight)에 대한 제약 조건을 추가함으로써 모형의 과적합을 막는 방법이다. 모형이 과도하게 최적화되면 모형 계수의 크기도 과도하게 증가하는 경향이 나타난다. 따라서 정규화 방법에서 추가하는 제약 조건은 일반적으로 계수의 크기를 제한하는 방법을 사용한다. Ridge 회귀모형 Lasso 회귀모형 Elastic Net 회귀모형 Ridge Regression (릿지 회귀, L2 Regression) Ridge 회귀는 과적합을 줄이기 위해서 사용하는 것, 정규화의 강도를 조절해주는 패널티값인 람다로 모델을 변형하여 과적합.. 더보기
[Machine Learning] 과적합(Overfitting) , 과소적합(Underfitting) - 분산편향 트레이드오프(Bias/Variance tradeoff) 일반화(generalization) 테스트데이터에서 만들어내는 오차를 일반화 오차라고 부른다. 훈련데이터에서와같이 테스트데이터에서도 좋은 성능을 내는 모델은 일반화가 잘 된 모델이라고 부릅니다. 모델이 너무 훈련데이터에 과하게 학습(과적합)을 하지 않도록 하는 많은 일반화 방법들이 있습니다. 예측모델이 훈련데이터에서보다 테스트데이터에서 오차가 적게 나오기를 기대하지만 현실적으로 모든 데이터를 얻을 수 없기 때문에 훈련데이터로부터 일반화가 잘 되는 모델을 학습시켜야 한다. 과적합(Overfitting) 과적합은 모델이 훈련데이터에만 특수한 성질을 과하게 학습해 일반화를 못해 결국 테스트데이터에서 오차가 커지는 현상 overfitting을 해결하는 방법 1. 특성(Feature)의 갯수를 줄여기 주요 특징을.. 더보기
[Machine Learning] 지도학습 - 선형회귀(Linear Regression) 종속변수 y 와 한개 이상의 독립변수 X와의 선형 상관관계를 모델링 하는 회기분석(예측) 기법. 오류를 최소화 하거나 가능한 작게 만드는것 종속변수 y = Response 변수, Label, Target 독립변수 X = Predictor, Explanatory, feature (주로 Matrix라서 대문자 X) 선형회귀를 사용하는 목적 Data값 예측 선형 회귀를 사용해 데이터에 적합한 예측 모형을 개발한다. 개발한 선형 회귀식을 사용해 y가 없는 x값에 대해 y를 예측하기 위해 사용할 수 있다. Data간의 관계 예측 종속 변수 y와 이것과 연관된 독립 변수 X1, ..., Xp가 존재하는 경우에, 선형 회귀 분석을 사용해 Xj와 y의 관계를 정량화할 수 있다. Xj는 y와 전혀 관계가 없을 수도 있고.. 더보기
[Machine Learning] 지도학습(Supervised Learning)/ 비지도학습(Unsupervised Learning)/ 강화학습(Reinforcement Learning) Machin Learning 1. 지도학습(Supervised Learning) - 라벨o 회기 (Prediction) 회기 알고리즘은 Continuous Data를 바탕으로 결과를 예측 분류 (Classification) 분류 알고리즘은 주어진 데이터의 Category / Class 예측 Train Data로부터 하나의 함수가 유추되고 나면 해당 함수에 대한 평가를 통해 파라미터를 최적화(fit)한다. 이러한 평가를 위해 교차 검증(Cross-Validation)이 이용되며 이를 위해 검증 집합(Validation Set) 을 다음의 3가지로 나눈다. 훈련 집합(A Training Set) 검증 집합(A Validation Set) 테스트 집합(A Test Set) 이러한 교차 검증(CV)을 통하여 훈.. 더보기