장르: 애초에 역경을 딛고 이룩하는 숭고한 사랑이란 없다. 그 역경 자체가 사랑이다.
프로그램 특징: 그 곳에서 살아남는 사랑이 어떤 모습으로 걸어오는지 기다려 보고 싶다.
-
회귀 알고리즘과 모델 규제0807분3.1. k-최근접 이웃 회귀k-최근접 이웃 회귀데이터 준비결정계수(R²)overfitting vs underfitting회귀 문제 다루기 3.2. 선형 회귀k-최근접 이웃의 한계선형 회귀다항 회귀선형 회귀로 훈련 세트 범위 밖의 샘플 예측 3.3. 특성 공학과 규제다중 회귀데이터 준비사이킷런의 변환기다중 회귀 모델 훈련하기규제릿지 회귀라쏘 회귀모델의 과대적합을 제어하기 Regression임의의 어떤 숫자를 예측하는 지도 학습 알고리즘 중 하나회귀 Regression되돌아간다는 뜻으로 처음 표현됐으며 나중에 두 변수 사이 상관관계 분석하는 방법을 회귀라고 불렸다. knn Classification vs. knn Regression분류는 클래스를 보고 예측하고 회귀는 데이터들의 (어떠한_평균 등) 수치로..
-
[ADsP] 군집분석0806분군집분석이란?각 객체의 유사성을 측정하여 유사성이 높은 대상 집단을 분류하는 분석 방법으로 서로 다른 군집에 속한 객체간 상이성을 규명한다.결과는 군집분석 방법에 따라 차이날 수 있다. 군집의 개수나 구조에 대한 가정 없이 데이터 사이의 거리를 기준으로 clustering을 유도한다. 군집분석 vs. 판별분석 vs. 요인분석사전에 집단을 알았으면 판별 분석 아니면 군집분석 > 새로운 데이터를 기존 집단에 할당유사한 변수를 함께 묶는 방법은 요인분석 군집분석계층적 군집분석비계층적 군집분석- 군집의 개수를 모른 체로 분석> 군집의 개수를 제일 나중에 선정- 전통적인 방법- k-means: 군집의 개수를 먼저 선정하고 모형 개발> 가중치와 거리 정의가 어렵기에 군집의 개수를 조정하면서 모형을 반복적으로 만들며..
-
[파이썬으로 시작하는 데이터 사이언스] 파일 경로 설정0806분절대 경로- 절대경로는 어떤 웹페이지나 파일이 가지는 고유한 경로로 최상위 디렉토리가 포함된 경로- file://Users/~/- C:\user\documents\~상대 경로상대경로를 이용하면 주피터 파일과 같은 폴더 내 위치이므로 tab을 눌러 불러옴- /는 루트- ./는 현재 위치- ../는 현재 위치의 상위 폴더- ../../는 두 단계 위 상위 폴더 의미핵심 키워드- %mv- %pwd실습 파일 경로- %ls- pd.read_csv- cp949한글 윈도우에서 사용하는 인코딩 설정 : utf8 이 기본 설정이므로 변경해준다> UnicodeDecodeError : 코드 오류: encoding = "cp949" * 다운받은 파일을 주피터 노트북에서 작업하고 있는 폴더로 가져오기Data 와 실습 파일 분리..
-
[ADsP] 분석 거버넌스 체계 수립0805분기업 내 전체적인 분석 기준과 환경을 고려해 우리가 타 기업에 대해 어느 정도 위치에 있는 지 파악하는 것이 우선적이다. 분석 거버넌스 수립 전에 분석 조직, 분석 인력에 대한 교육을 실시한다. Organization: 분석 기획 및 관리 수행 조직Process: 과제 기획 및 운영 프로세스System: 분석 관련 시스템DataHuman Resource: 분석 교육 및 마인드 육성 체계 데이터 분석 거버넌스 체계 수립1. 데이터 분석 수준 진단을 위한 Readiness와 Maturity 구성기업의 현재 분석 수준을 명확히 이해하고, 미래 목표 수준 정의타 경쟁사에 비해 어느 수준인지데이터를 활용한 분석의 경쟁력 확보를 위해 어떤 영역에 선택과 집중할 건지어떤 관점을 보완해야 하는지ReadinessMatu..
-
[ADsP] 용어 정리0805분SVM앙상블 기법Bagging원 자료로부터 Bootstrap 샘플을 추출하고, 각 샘플에 대해 트리를 형성하고 각 노드마다 예측 변수 안에서 최적의 분할을 선택Random ForestBagging에 랜덤과정을 추가한 방법; 예측 변수를 임의로 추출해, 추출된 변수 내에서 최적의 분할을 만든다. Boosting예측력이 약한 모형을 결합해 강한 예측 모형을 만드는 방법; Bootstrap 표본을 구성하는 재표본 과정에서 분류가 잘못된 데이터에 더 큰 가중치를 준다. GBM BackPropagation Algorithm 역전파 알고리즘 신경망 모델에서 사용하는 알고리즘인공신경망에서 동일 입력층에 대해 원하는 값이 출력되도록 개개의 weight을 조정하는 방법 Backward Elimination 후진 제거법독..
-
[ADsP] 주성분 분석0805분PCA (Principle Component Analysis)차원 축소로 복잡한 데이터 구조를 파악할 수 있는 방법상관관계가 있는 변수를 결합해 상관관계가 없도록 선형결합해 분산을 극대화한다. 표본의 크기가 작거나 순서형 자료를 포함하는 범주형 자료에 적용 가능주로 3개 이내의 변수로 축약한다.예측 모델 만들 때 주로 사용한다.다변량 자료를 저차원으로 표시하여 Outlier 탐색에 사용한다. 주성분 분석의 목표는 데이터를 설명하는 방향성을 찾는 것이다.이 방향은 데이터의 분산을 최대화하는 방향이다.여기서 분산이란 평균에서 멀리 떨어진 만큼을 의미하며, 분산이 크다는 것은 데이터가 다양함을 의미한다.변동성이 크다고 해석할 수도 있다.다양한 범위에 걸쳐 분포되어 있는 데이터는 폭 넓은 특성과 패턴을 나타낼 ..
-
데이터 분석에 필요한 파이썬0731분데이터 전처리정량 분석 statistics정성 분석 visualizationEncodingModelingFeature Analysis목적데이터 확인과 데이터 분석이 용이한 형태로 변환통계적 수치를 통해 정보 수집여러 plot 생성 - 유의미한 정보 파악모델링에 적합한 형태로 변환모델의 학습, 성능 확인 ; feature x로부터 Label y 설명어떤 feature X방법결측치 확인 column의 dtype 및 frequency 분포 확인각 column의 전반적인 통계치 확인, label에 따른 통계치 비교Categorical column의 category간 frequency 분포 혹은 Numerical column 간 density 확인One-hot encoding, 데이터 값의 범위 및 분포 조절Cl..
-
머신러닝과 데이터 전처리0731분1. 나의 첫 머신러닝인공지능과 머신러닝, 딥러닝인공지능, 머신러닝, 딥러닝이 무엇인지 알아보고 그 차이를 살펴본다. 코랩과 주피터 노트북마켓과 머신러닝KNN(K-Nearest Neighbor)을 사용해 2개 종류를 분류하는 머신러닝 모델을 훈련한다. 2. 데이터 다루기훈련 세트와 테스트 세트지도/비지도 학습의 차이를 배운다. 모델을 훈련시키는 훈련 세트와 모델을 평가하기 위한 테스트 세트로 데이터를 나눠서 학습한다. 데이터 전처리전처리 과정을 거친 데이터로 훈련했을 때의 차이를 알고 표준점수로 특성의 스케일을 변환하는 방법을 배운다. 인공지능이란인공지능은 컴퓨터가 학습, 추론할 수 있는 지능을 의미한다. 이는 Strong AI와 Weak AI로 구분할 수 있다. 흔히 영화에서 묘사되는 사람처럼 대화하는..
-
[ADsP] 연속형 변수와 순서형 변수 차이0725분1. Ordinal Variable 순서형 변수데이터 값들의 계급이나 순서를 가지지만, 그 사이 간격이 일정하지 않거나 의미 없는 경우'좋음', '보통', '나쁨''고등학교', '중학교'2. Continuous Variable 연속형 변수데이터 값이 일정한 간격을 가지고 연속적인 범위를 가질 수 있는 데이터온도: 23.5°C, 17.8°C, 30.2°C키: 170.2cm, 165.3cm, 180.1cm무게: 55.5kg, 60.7kg, 70.3kg 피어슨 상관계수는 선형, 연속형 변수를 다루고스피어만 상관계수는 선형/비선형, 순서형, 서열형 변수를 다룬다. 연속형 변수를 순위로 변환시킨 후 두 순위 사이의 피어슨 상관계수로 정의된다.
- k-최근접 이웃 회귀
- 데이터 준비
- 결정계수(R²)
- overfitting vs underfitting
- 회귀 문제 다루기
- k-최근접 이웃의 한계
- 선형 회귀
- 다항 회귀
- 선형 회귀로 훈련 세트 범위 밖의 샘플 예측
- 다중 회귀
- 데이터 준비
- 사이킷런의 변환기
- 다중 회귀 모델 훈련하기
- 규제
- 릿지 회귀
- 라쏘 회귀
- 모델의 과대적합을 제어하기
Regression
임의의 어떤 숫자를 예측하는 지도 학습 알고리즘 중 하나
회귀 Regression
되돌아간다는 뜻으로 처음 표현됐으며 나중에 두 변수 사이 상관관계 분석하는 방법을 회귀라고 불렸다.
knn Classification vs. knn Regression
분류는 클래스를 보고 예측하고 회귀는 데이터들의 (어떠한_평균 등) 수치로 타깃 예측
score(test set) vs. score(train set)
훈련 세트가 전체 데이터를 대표한다고 가정하기 때문에 훈련 세트 학습이 잘 되어야 한다.
테스트 세트 score > 훈련 세트 score 또는 두 점수가 모두 낮으면 underfitting
테스트 세트 score < 훈련 세트 score 라면 overfitting
과소 적합의 경우, 모델을 더 복잡하게 만든다.
> knn 에서는 k의 개수를 줄인다: 거시적인 패턴이 아닌 국지적 패턴에 민감해진다.
과대 적합의 경우, 모델을 덜 복잡하게 만든다.
일반적으로 훈련 세트의 점수가 테스트 세트의 점수보다 조금 더 높다.
knn 의 한계
knn은 이웃 샘플들 무게의 평균이기에 새로운 샘플이 훈련 세트의 범위를 벗어나면 엉뚱한 값을 예측한다.
Linear regression 선형 회귀
샘플의 특성을 나타내는 직선을 찾아라
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(train set)
# lr = ax + b
# a = coef_
# b = intercept_
print(lr.coef_, lr.intercept_)
Model parameter
머신러닝 알고리즘의 훈련 과정은 최적의 모델 파라미터를 찾는 과정이다.
linear regression의 coef와 intercept는 머신러닝 알고리즘이 찾은 모델 파라미터다.
최적의 모델 파라미터를 찾는 과정을 모델 기반 학습,
knn 처럼 훈련 세트를 저장하는 것이 fit()의 내용이라면 사례 기반 학습이라 한다.
다항 회귀 polynomial regression
linear regression은 왼쪽 하단을 정확하게 반영하지 못한다. 따라서 최적의 직선이 아닌 최적의 곡선을 찾아본다.
다항식은 곡선이지만 다른 변수로 치환하면 계수와 절편으로 표현되므로 다항 회귀는 선형 회귀다.


2차 방정식을 사용하기 위해선 길이의 제곱값을 훈련 데이터에 추가해야 한다.
np.column_stack() 을 이용한다.
train_poly = np.column_stack((train_input **2, train_input))
test_poly = np.column_stack((test_input**2, test_input))
회귀 문제 다루기
회귀 모델의 성능 측정으로 결정계수를 반환한다. 정량평가를 위해선 절댓값 오차 등을 이용할 수 있다.
Multiple regression 다중 회귀
여러 개의 특성을 사용한 선형 회귀
특성이 늘어날 수록 차원도 늘어난다. 근데 3차원 이상을 상상하긴 힘들다. 각 특성을 서로 곱해서 새로운 특성으로 만든다.
Feature engineering 특성 공학
poly = PolynomialFeatures(include_bias = False)
# 특성의 제곱과 특성끼리 곱한 항 추가
poly.fit(train_input)
# 변환 데이터를 train_poly에 저장
train_poly = poly.transform(train_input)
# 특성의 조합 확인
poly.get_feature_names()
# 테스트 세트 변환
test_poly = poly.transform(test_input)
- polynomialFeatures
판다스를 이용해 여러 특성을 가진 데이터를 바로 다운 받아서 사용한다. 판다스의 데이터 프레임은 넘파이 배열로 쉽게 변환할 수 있다. 넘파이 배열로 변환해 선형 회귀 모델을 훈련한다.
판다스 데이터프레임 만들기 위해 사용하는 많은 파일은 csv 파일이다.
csv 파일 > 판다스 데이터 프레임 pd.read_csv() -> 넘파이 배열 to_numpy()
PolynomialFeatures 클래스는 기본적으로 각 특성을 제곱한 항을 추가하고 특성끼리 서로 곱한 항을 추가합니다.
PolynomialFeatures 의 fit() 메서드는 만들 특성의 조합을 준비만 하고 별도의 통계 값을 구하지 않는다.
다중 회귀 모델 훈련하기
선형 회귀 모델 훈련과 동일하지만 여러 개의 특성을 사용하여 선형 회귀 수행하는 것 뿐이다.
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(train_poly, train_target)
키워드 정리
- 회귀는 임의의 수치를 예측하는 문제다. target도 임의의 수치가 된다.
- knn regression은 knn 알고리즘을 이용해 회귀 문제를 푼다. 가장 가까운 이웃들의 샘플 타깃값을 평균해 예측값으로 삼는다.
- Linear Regression는 특성과 타깃 사이의 관계를 가장 잘 나타내는 선형 방정식을 찾습니다. 특성이 하나면 직선 방정식이 됩니다.
- 선형 회귀가 찾은 특성과 타깃 사이의 관계는 선형 방정식의 계수 또는 가중치에 저장됩니다. 머신러닝에서 종종 가중치는 방정식의 기울기와 절편 모두 의미하는 경우가 많습니다.
- R²
- 총 변동에서 추정된 회귀식에 의해 설명되는 변동의 비율로 나타낼 수 있다.
- 모델 파라미터는 선형 회귀가 찾은 가중치처럼 머신러닝 모델이 특성에서 학습한 파라미터를 말합니다.
- 다항 회귀는 다항식을 사용하여 특성과 타킷 사이의 관계를 나타냅니다. 이 함수는 비선형일 수 있지만 여전히 선형 회귀로 표현할 수 있습니다.
- 다중 회귀는 여러 개의 특성을 사용하는 회귀 모델입니다. 특성이 많으면 선형 모델은 강력한 성능을 발휘합니다.
- 특성 공학은 주어진 특성을 조합하여 새로운 특성을 만드는 일련의 작업 과정입니다.
- 릿지는 규제가 있는 선형 회귀 모델 중 하나이며 선형 모델의 계수를 작게 만들어 과대적합을 완화시킵니다. 릿지는 비교적 효과가 좋아 널리 사용하는 규제 방법입니다.
- lasso는 또 다른 규제가 있는 선형 회귀 모델입니다. 릿지와 달리 계수 값을 아예 0으로 만들 수도 있습니다.
- L1 penalty = Lasso
- 모형에 포함된 회귀계수들의 절대값 크기가 클수록 penalty를 부여하는 방식
- 자동적으로 변수 선택하는 효과가 있다.
- penalty의 정도를 조정하는 모수가 있다.
- 하이퍼파라미터는 머신러닝 알고리즘이 학습하지 않는 파라미터입니다. 이런 파라미터는 사람이 사전에 지정해야 합니다. 대표적으로 릿지와 라쏘의 규제 강도 alpha 파라미터입니다.
핵심 패키지
numpy
# 배열 크기 변환
reshape()
test_array.reshape(2, 2)
= np.reshape(test_array, (2, 2))
pandas
# pandas dataframe으로 변환하는 함수
pd.read_csv()
scikit-learn
# knn 회귀 모델 만들기
KNeighborsRegressor
# 회귀 모델의 평균 절댓값 오차 계산
mean_absolute_error()
mean_squeared_error()
# 선형 회귀 클래스
LinearRegression
# 주어진 특성을 조합해 새로운 특성을 만든다.
PolynomialFeatures
# 규제
Ridge
Lasso
1. z-score와 상관계수는 모두 데이터 분석에서 중요한 역할을 하지만, 서로 다른 목적과 개념을 가지고 있습니다.
- z-score:
- 정의: z-score는 데이터의 표준화된 값을 나타내며, 데이터가 평균으로부터 얼마나 떨어져 있는지를 측정합니다. 특정 데이터 포인트가 평균으로부터 몇 표준편차만큼 떨어져 있는지를 나타냅니다.
- 계산 방법: z-score는 (X−μ)/σ(X - \mu) / \sigma로 계산합니다. 여기서 XX는 데이터 포인트, μ\mu는 평균, σ\sigma는 표준편차입니다.
- 용도: 데이터의 분포를 표준 정규 분포로 변환할 때 사용됩니다. 이를 통해 데이터 포인트가 평균에서 얼마나 떨어져 있는지를 비교할 수 있으며, 데이터의 이상치(outlier)를 식별하는 데도 유용합니다.
- 상관계수 (Correlation Coefficient):
- 정의: 상관계수는 두 변수 간의 관계의 강도와 방향을 측정합니다. 가장 흔히 사용하는 상관계수는 Pearson 상관계수입니다.
- 계산 방법: Pearson 상관계수는 Cov(X,Y)σXσY\frac{\text{Cov}(X, Y)}{\sigma_X \sigma_Y}로 계산합니다. 여기서 Cov(X,Y)\text{Cov}(X, Y)는 두 변수 XX와 YY의 공분산, σX\sigma_X와 σY\sigma_Y는 각각의 표준편차입니다.
- 용도: 두 변수 간의 선형 관계를 평가하는 데 사용됩니다. 상관계수는 -1에서 1 사이의 값을 가지며, 1에 가까울수록 강한 양의 선형 관계, -1에 가까울수록 강한 음의 선형 관계를 나타냅니다. 0에 가까울수록 관계가 거의 없음을 의미합니다.
차이점 요약:
- z-score는 단일 변수의 상대적인 위치를 표준화하여 표현하는 데 중점을 둡니다.
- 상관계수는 두 변수 간의 관계를 측정하여 두 변수 간의 상관관계를 이해하는 데 중점을 둡니다.
따라서, z-score는 데이터의 개별적인 특성을 분석하는 데, 상관계수는 변수 간의 관계를 분석하는 데 사용됩니다.
2. 안녕! 머신러닝에 관심이 있다니 정말 멋지네! 표준화와 정규화는 데이터 전처리에서 자주 사용하는 두 가지 기법이야. 둘 다 데이터의 스케일(크기나 범위)을 조정하는 방법이지만, 목적과 방법이 조금 달라. 간단히 설명해볼게.
1. 표준화 (Standardization)
표준화는 데이터의 평균을 0으로, 표준편차를 1로 만드는 과정이야. 이를 통해 데이터가 정규분포(가우시안 분포)를 따르게 돼.
- 방법: 각 데이터에서 평균을 빼고, 그 결과를 표준편차로 나눠.
- 수식: z=x−meanstdz = \frac{x - \text{mean}}{\text{std}}
- 결과: 데이터의 평균은 0, 표준편차는 1
- 목적: 서로 다른 특징의 단위 차이를 없애고, 데이터를 비슷한 스케일로 만들어 주로 거리 기반 알고리즘(예: K-최근접 이웃, K-means)에서 유리해.
2. 정규화 (Normalization)
정규화는 데이터의 범위를 0에서 1 사이로 조정하는 과정이야. 주로 최소값과 최대값을 사용해서 조정해.
- 방법: 각 데이터에서 최소값을 빼고, 그 결과를 최대값과 최소값의 차이로 나눠.
- 수식: x′=x−minmax−minx' = \frac{x - \text{min}}{\text{max} - \text{min}}
- 결과: 데이터의 값은 0과 1 사이에 위치
- 목적: 특정한 범위로 값을 조정하여, 신경망과 같은 알고리즘에서 안정적인 학습을 도와줘.
언제 사용할까?
- 표준화는 데이터가 정규분포에 가깝거나, 대부분의 머신러닝 알고리즘에서 기본적으로 사용하는 경우가 많아.
- 정규화는 데이터의 범위가 다르고, 특정한 값 범위가 필요할 때(예: 이미지 데이터의 픽셀 값은 0
255에서 01로 변환) 사용해.
둘 다 데이터를 학습하기 좋은 상태로 만들기 위해 중요한 과정이야. 머신러닝 모델의 성능을 높이기 위해 데이터 전처리를 잘하는 것이 중요해! 더 궁금한 게 있으면 언제든지 물어봐.
> 정규 분포에 가까워서 얻는 이득은?
1. 통계적 성질 활용
정규 분포는 평균과 표준편차라는 두 가지 모수로 완벽하게 설명할 수 있어서 모수 추정이 간단하다.
2. 데이터 해석 용이성
데이터의 평균과 중앙값이 일치해 데이터의 중심을 쉽게 이해한다.
- 대칭성: 대칭적이라 outlier에 덜 민감하다.
- 범위의 예측 가능성:
3. 머신러닝 알고리즘의 효율성
- 선형 회귀와 로지스틱 회귀: 데이터가 정규 분포일 때 더 좋은 성능을 보인다.
- 신경망: 초기 가중치가 정규 분포로 설정된 경우, 학습이 더 안정적일 수 있다.
'Data Science > 혼자공부하는머신러닝+딥러닝' 카테고리의 다른 글
트리 알고리즘 (1) | 2024.08.18 |
---|---|
머신러닝과 데이터 전처리 (4) | 2024.07.31 |