전체 글

Datascience/Linear Algebra

[개발자를 위한 실전 선형대수학] 벡터의 확장 개념

개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science) 2장 벡터, 파트 2 : 벡터의 확장 개념 벡터 집합(set) - 벡터들의 모음, 대문자 이탤릭체로 표기 선형 가중 결합 - 선형 가중 결합 (linear weighted combination) : 여러 변수마다 가중치(또는 계수)를 다르게 주어 정보를 혼합하는 방법 = 선형 혼합(linear mixture), 가중 결합(weighted combination) - 선형 가중 결합은 단순하게 말하면 스칼라-벡터 곱셈을 한 다음 합을 하는 것 선형 독립성 - 벡터 집합에서 적어도 하나의 벡터를 집합의 다른 벡터들의 선형 가중 결합으로 나타낼 수 있을 때, 벡터 집합을 선형 종속적(linearly dep..

Datascience/Linear Algebra

[개발자를 위한 실전 선형대수학] 벡터와 기본 연산

개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science) 1장 벡터, 파트 1 : 벡터와 벡터의 기본 연산 정리 벡터는 선형대수학 전체의 초석이다. 벡터(Vector) : 순서대로 나열된 수 목록(ordered list of number) 차원(dimensionality) : 벡터가 가진 원소의 수(수학적 차원의 개념), (파이썬에서 벡터의 길이, 모양) ▶ 파이썬에서의 차원은 수 객체를 출력하는 데 사용되는 기하학적 차원의 수 방향(orientation) : 벡터의 원소들이 나열된 모양 ( 열 방향, 행 방향) 벡터의 기하학적 해석 - 벡터는 특정 길이(또는 크기)와 방향을 가진 직선 "벡터를 기하학적 또는 대수학적으로 개념화하는 것은 단순히 같은 것을..

Datascience

DecisionTree와 Ensembling 실습 : wine 데이터 셋

실습 목표 와인 데이터셋을 통해 DecisionTreeClassifier, RandomForestClassifier, 그리고 AdaBoostClassifier, GradientBoostClassifier를 학습해보고자 한다. 와인 데이터 셋 가져오기(sklearn.datasets) from sklearn.datasets import load_wine wine = load_wine() sklearn.datasets에는 머신러닝을 위한 다양한 샘플 데이터들이 있다. 와인 등급 데이터는 분류(calssification)를 위한 데이터셋이다. load_wine() 함수를 이용하여 쉽게 로드할 수 있다. 로드된 데이터 셋은 pandas.DataFrame이 아닌sklearn.utils.Bunch 클래스 형태로 저장..

Datascience

Ensemble 2: AdaBoosting과 GradientBoosting

부스팅(boosting, hypothesis boosting) 부스팅은 약한 학습기를 여러개 연결하여 강한 학습기를 만드는 앙상블 방법이다. AdaBoost(Adaptive boosting) 이전 모델이 과소적합했던 훈련 샘플의 가중치를 더 높이는 방법. https://www.analyticsvidhya.com/blog/2022/01/introduction-to-adaboost-for-absolute-beginners/ Introduction to AdaBoost for Absolute Beginners AdaBoost stands for Adaptive Boosting. It is a statistical classification algorithm that forms a committee of wea..

Datascience

Ensemble 1: 앙상블 학습과 랜덤 포레스트

랜덤으로 선택된 수천 명의 사람에게 복잡한 질문을 하고 답을 모으면, 많은 경우 전문가의 수준의 답을 얻을 수 있다. 이러한 대중의 지혜를 머신 러닝에서도 찾을 수 있다. 투표 기반 분류기(Voting) 여러 개의 분류기를 통해 더 우수한 결론을 얻는 방법 - 직접 분류(hard voting) 같은 데이터를 서로 다른 예측기에 대입하고 , 다수결의 원칙으로 예측을 내는 방식 놀랍게도 다수결 투표 분류기가 앙상블에 포함된 개별 분류기 중 가장 뛰어난 것보다도 정확도가 높은 경우가 많다. 약한 학습기일지라도, 앙상블에 있는 약한 학습기가 충분하게 많고, 다양하다면 강한 학습기가 될 수 있다. (대수의 법칙) from sklearn.datasets import make_moons from sklearn.ens..

Datascience

Trading Off Precision and Recall(정밀도와 재현률 트레이드 오프)

Precision(정밀도)는 전체 양성 예측 중 진양성의 비율이고, Recall(재현률)은 분류기가 정확하게 감지한 양성 레이블의 비율이다. Precision = Positive 예측의 정확도 Recall = 정확하게 감지한 Positive sample의 비율(민감도;Sensitivity, 진짜 양성 비율;True Positive Rate;TPR) 즉 FP이 높아질수록 Precision의 값이 낮아지고, NP이 높아질수록 Recall의 값이 작아진다. 위 그림의 예처럼 분류기의 결정임계값(thresholds)을 조정하면 그에 따라 Precision과 Recall의 값이 변한다. (Positive 예측의 범위를 넓히는 threshold를 설정하면, 음양성이 늘어나 정밀도가 낮아진다.) from sklear..

Datascience

머신러닝 알고리즘의 성능 평가 지표(Evaluation Metric)

"The important thing isn't can you read music, it's can you hear it. Can you hear the music, Robert? Classfication Model Evaluation Metric 정확도(Accuracy) 오차행렬(Confusion Matrix) 정밀도(Precision) 재현율(Recall) F1 스코어 ROC AUC > 위에 나열된 성능지표들은 대체로 이진분류에서 더 강조하는 지표들 Accuracy HTML 삽입 미리보기할 수 없는 소스 "실제 데이터와 예측 데이터가 얼마나 같은가?" 를 표현한 하는 판단 지표 그러나 정확도는 데이터셋의 분포에 따라 왜곡을 발생시킬 수 도 있다. 특히 데이터 분포도가 균일하지 않은 경우 높은 수치가 ..

Datascience

Data Preprocessing : Label Encoding * One hot Encoding

Label Encoding - 사이킷런의 LabelEncoder 클래스로 구현할 수 있다. LabelEncoder 또한, 다른 sklearn 객체와 같이, 객체 생성 후 fit, transform 호출하며 진행 from seaborn import load_dataset from sklearn.preprocessing import LabelEncoder penguin_df = load_dataset("penguins") encoder = LabelEncoder() #LabelEncoder 또한, 다른 sklearn 객체와 같이, 객체 생성 후 fit, transform 호출하며 진행 encoder.fit(penguin_df["species"]) labels = encoder.transform(penguin..