Python/실습 18

파이썬 : K-Means Clustering,Hierarchical Clustering

K-Means Clustering  K-Means Clustering은 백오피스(Back Office)에서 자주 활용되는 기법이다.예를 들어, 비슷한 특성을 가진 고객 데이터를 그룹화할 때 효과적으로 사용할 수 있다.  K-Means Clustering은 데이터를 K개의 그룹(클러스터)으로 자동 분류하는 비지도 학습 알고리즘으로, 각 데이터 포인트를 가장 가까운 중심점에 할당하고,그룹의 중심점을 반복적으로 업데이트하여 최적의 클러스터를 형성한다. 주로 고객 세분화, 이미지 압축, 이상 탐지 등에 활용되며, 최적의 K값은 엘보우 메서드(Elbow Method)를 통해 결정한다.   이 데이터에서는 고객을 분류할 정답(Y 값)이 없기 때문에 지도 학습(Supervised Learning) 방식으로 학습할 수..

Python/실습 2025.01.31

파이썬 : Decision Tree

Decision Tree  디시전 트리(Decision Tree)는 데이터를 분류하거나 예측할 때 사용되는 모델이며, 랜덤 포레스트(Random Forest)는 이를 개선한 알고리즘이다. 디시전 트리는 비선형적인(Non-linear) 데이터를 다룰 수 있으며, 데이터를 여러 기준으로 나누어 의사 결정을 수행한다. 예를 들어, 특정 기준(예: 60보다 큰 값과 작은 값)을 기준으로 데이터를 두 그룹으로 나누고, 이후 다시 X축을 기준으로 세분화하여 나눈다. 이 과정은 반복적으로 진행되며, 데이터가 점점 세밀하게 분류된다. 하지만 너무 많은 기준을 설정하면 복잡한 모델이 만들어질 수 있으므로, 적절한 깊이(depth)나 가지치기(pruning) 기법을 사용하여 과적합을 방지하는 것이 중요하다.이러한 분할 기..

Python/실습 2025.01.31

서포트 벡터 머신(SVM) 실습: 분류와 정확도 분석

서포트 벡터 머신(Support Vector Machine, SVM)의 작동 원리는 다음과 같다.주어진 데이터에서 X축은 난이도, Y축은 급여(salary)로 설정하며, 구매한 사람은 녹색, 구매하지 않은 사람은 빨간색으로 표시한다고 가정한다. 기존 데이터가 4천만 개 이상 있다면, 모든 데이터가 이 좌표상에 분포할 것이다. 새로운 데이터가 들어오면, 우리는 기존 데이터를 바탕으로 해당 데이터가 구매할 가능성이 높은지(녹색) 아니면 구매하지 않을 가능성이 높은지(빨간색) 예측할 수 있다. SVM은 이러한 예측을 수행하는 모델 중 하나이다. 새로운 데이터가 들어왔을 때, 그 데이터가 기존 데이터 중 어느 쪽(구매함/구매하지 않음)에 가까운지를 판단하여 예측을 수행한다. 만약 명확하게 구분되는 영역에 속한다..

Python/실습 2025.01.31

파이썬 : K-Nearest Neighbor

K-Nearest Neighbor(KNN) 알고리즘은 새로운 데이터 포인트를 분류할 때,기존 데이터 중 가장 가까운 K개의 이웃을 참고하여 분류를 결정하는 지도 학습 방법이다. KNN은 주로 거리 기반 계산을 통해 데이터 간 유사성을 측정하며, 자주 사용하는 거리 척도로는 유클리드 거리가 있다. 새로운 데이터 포인트와 기존 데이터 간의 거리를 계산한다.가장 가까운 K개의 이웃을 선택한다.선택된 이웃들의 다수결 또는 평균을 기반으로 결과를 예측한다.KNN은 구현이 간단하고 이해하기 쉬우며, 분류와 회귀 문제 모두에 사용할 수 있다는 장점이 있다. 그러나 데이터 크기가 크거나 차원이 높은 경우 계산 비용이 증가할 수 있어 적절한 데이터 전처리와 K 값 선택이 중요하다. 1. 결측치 확인 2. 필요데이터 X,..

Python/실습 2025.01.29

파이썬: 수익 예측 인공지능 만들기

1.  비어있는지 확인    2. 엑스 와이 변수 저장하기     3. 문자가 있는지 확인후 있으면 형태변환  문자열 데이터(범주형 변수)는 원-핫 인코딩을 통해 숫자 형태로 변환하며, ColumnTransformer를 사용하면 특정 열만 변환하고 나머지 열은 유지할 수 있다. 변환 결과는 원-핫 인코딩된 열이 왼쪽에, 변환되지 않은 열은 오른쪽에 위치하게 된다.변환된 데이터는 다시 원본 변수에 저장하여 이후 모델 학습에 활용한다.    4.  train & test 분리   5-1. 리니어 방법 인공지능 만든후 학습시키기    5-2. 랜덤포레스트리그레서 (Random Forest Regressor) 로 만들고 학습시키기  랜덤 포레스트 회귀(Random Forest Regressor)는 여러 개의 결..

Python/실습 2025.01.27

경력과 연봉 관계 분석 하는 인공지능 만들기

CSV 파일 읽기데이터를 pd.read_csv()를 사용해 데이터프레임으로 읽어온다.     결측치 확인데이터에 결측치가 있는지 df.isna().sum()을 통해 확인하며, 이 데이터셋에서는 결측치가 없는 것으로 확인된다. 독립변수와 종속변수 설정Salary 열을 **종속변수(y)**로 설정한다.YearsExperience 열을 **독립변수(X)**로 설정하며, .to_frame()을 사용해 데이터프레임 형태로 변환한다.y = df['Salary'] X = df['YearsExperience'].to_frame() 피처 스케일링(Feature Scaling)피처 스케일링은 데이터의 범위를 맞춰 모델 학습 시 변수 간의 크기 차이가 결과에 영향을 주지 않도록 한다.일반적으로 딥러닝 모델에서는 피처 스케일..

Python/실습 2025.01.24

파이썬 : 머신러닝, 데이터 프리프로세싱

머신러닝이란? 머신러닝으로 할 수 있는 일은 손으로 쓴 우편번호의 숫자를 자동으로 판별하고, 의료 영상 이미지 기반으로 질병을 중앙에서 판단하며, 의심되는 신용카드 거래를 감지하고,블로그 글을 주제별로 분류하며, 고객들을 취향이 비슷한 그룹으로 묶는다.문제와 데이터를 이해하기 위해,가지고 있는 데이터가 원하는 문제의 답을 가지고 있는지 확인하고, 문제를 가장 잘 해결할 수 있는 머신러닝 방법이 무엇인지 선택하며,문제를 해결하기에 충분한 데이터를 모았는지 검토하고,머신러닝의 성과를 어떻게 측정할 것인지 계획한다. 이 그림은 머신러닝을 이해하고 활용하기 위한 기본 개념과 알고리즘 분류를 설명하며, 지도학습과 비지도학습으로 나뉘는 두 가지 학습 방법에 대해 각 알고리즘의 주요 활용 사례를 정리한 구조도이다. ..

Python/실습 2025.01.24

파이썬 : 차트

플롯플롯 차트는 데이터를 점, 선, 막대 등의 형태로 시각화하여 추세, 분포, 비교, 구성 비율 등을 직관적으로 이해할 수 있도록 표현한다.     import matplotlib.pyplot as pltplt.plot(x, y)plt.show()    import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sb     먼저 데이터 분석을 위해 세대(generation)가 몇 개인지 확인하고 데이터를 준비해야 한다.이를 위해 pandas를 사용하여 데이터를 불러오고,세대별로 고유값과 각 세대의 개수를 확인한다. df['generation_id'].unique()를 사용하면 고유 세대 값을 확인할 수 있으며,..

Python/실습 2025.01.24

파이썬 : 판다스 데이터 연결

데이터프레임 구조가 동일한 경우, concat 함수를 사용하면 행 또는 열 방향으로 데이터를 손쉽게 합칠 수 있다.     왼쪽 두 개의 데이터프레임을 합칠 때는 concat 함수를 사용하고, 두 데이터프레임을 특정 컬럼을 기준으로 연결하려면 pd.merge() 함수를 사용한다.  on 을 통해 공통된 이름으로 연결해준다 다르면 리플레이로 바꿔준다 이건 sql 의 join과 마찬가지로 있는것만 합쳐준다. 그렇다면 모든 직원을 보여주는 left join 같은 녀석은 누굴까   pd.merge_ordered() 함수는  두 데이터프레임 df_all과 df_salary를 Employee ID 컬럼을 기준으로 병합하는 과정이 나타난다. 병합 방식은 how='left'로 지정되어 있으며, 이는 첫 번째 데이터프레..

Python/실습 2025.01.23

파이썬: 판다스를 활용한 문자열 데이터 가공

문자열 가공은 판다스에서 .str 속성을 사용하여 간단히 처리할 수 있다. 데이터를 하나씩 가져오는 작업이 번거로울 수 있어, 판다스는 문자열 처리에 특화된 여러 가지 함수를 라이브러리처럼 제공한다. 아래는 문자열 가공과 관련된 함수들을 확인할 수 있는 사이트이다. https://pandas.pydata.org/docs/reference/api/pandas.Series.str.upper.html pandas.Series.str.upper — pandas 2.2.3 documentationConverts first character of each word to uppercase and remaining to lowercase.pandas.pydata.org   빨간 상자는 같은거고 뒤에 적어주면 각 이름의..

Python/실습 2025.01.22