| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- analizer
- hierarchical_clustering
- insert()
- list
- dendrogram
- len()
- Dictionary
- IN
- string
- 최솟값
- 최댓값
- 분류 결과표
- data
- elbow method
- numpy
- Machine Learning
- 덴드로그램
- del
- wcss
- matplotlib
- 반복문
- DataAccess
- DataFrame
- sklearn
- function
- append()
- Python
- pandas
- count()
- nan
- Today
- Total
목록Python (143)
개발공부
Hierachical Clustering 계층적 군집화 -계층적 트리 모형을 이용해 개별 개체들을 순차적, 계층적으로 유사한 개체 내지 그룹과 통합하여 군집화를 수행하는 알고리즘 - K-means Clustering과 달리 군집 수를 사전에 정하지 않아도 학습을 수행할 수 있다. - Dendrogram 이용 Dendrogram 덴드로그램 - 개체들이 결합되는 순서를 나타내는 트리형태의 구조 - 적절한 수준에서 트리를 자르면 전체 데이터를 몇개 군집으로 나눌 수 있게 된다. 예제 덴드로그램은 scipy 라이브러리를 이용해 그릴 수 있다. import scipy.cluster.hierarchy as sch plt.figure(figsize=(20,12)) # 전처리된 데이터 X에 대해 덴드로그램을 그리기 s..
K-Means 알고리즘 데이터를 K개의 군집으로 묶는 알고리즘이다. 각 군집의 평균(mean)을 확용해 K개의 군집으로 묶는다는 의미다. 여기서 평균이란 각 클러스터의 중심과 데이터들의 평균 거리를 의미한다. WCSS (Within Cluster Sum of Squares) 클러스터의 각 구성원과 해당 중심 사이의 거리 제곱의 합으로 정의된다. Elbow Method KMeans에 관한 군집수를 알 수 있다. 예제 sklearn라이브러리는 KMeans를 할 수 있는 함수를 제공한다. from sklearn.cluster import KMeans 데이터 X가 있다고 할 때 적절한 K 값을 찾기 위해 WCSS 값을 확인해야 한다. 따라서 for 문을 통해 k를 2부터 10까지 의 값을 넣어 학습해보고 그때의..
sklearn 라이브러리가 제공하는 스케일러나 인코더에는 fit(), fit_transform(), transform() 함수가 있다. fit() 데이터를 학습시키는 함수이다. 주어진 데이터를 가지고 학습을 한다. transform() fit() 함수로 학습시킨것에 기반하여 변환하는 함수이다. fit_transform() fit()과 transform()을 모두 하는 함수이다. 해당 스케일러나 인코더로 학습을 시키고 바로 변환을 하는 함수이다.
https://mscha.tistory.com/74 Multiple Linear Regression 실습 예제 아래처럼, 여러개의 features 를 기반으로, 수익을 예측하려 한다. 위와 같이, 여러개의 변수들을 통해, 수익과의 관계를 분석하고 이를 통해, 새로운 데이터가 들어왔을 때, 수익이 어떻게 될 mscha.tistory.com 위에서 만든 인공지능을 이용해 신규 데이터 예측을 해보자. df.head() R&D Spend = 220000, Administration = 190000, Maketing Spend = 500000이고, State = Florida 일 때 Profit을 예측하는 경우를 구해보자. 1. 일단 넘파이 어레이로 새로운 데이터를 만든다. new_data = np.array (..
분류 결과표 (Confusion Matrix) 타겟의 원래 클래스와 모형이 예측한 클래스가 일치하는지를 갯수로 센 결과를 표로 나타낸 것 정답 클래스는 행(row)으로 예측한 클래스는 열(column)로 나타낸다. 두개의 클래스로 분류할 때 이진 분류 결과표(Binary Confusion Matrix) 클래스가 0과 1 두종류 밖에 없는 이진 분류의 경우 일반적으로 클래스 이름을 양성(Positive)과 음성(Negative)로 표시한다. sklearn 라이브러리를 이용한 confusion metrix >>> from sklearn.metrics import confusion_matrix, accuracy_score, classification_report #정답 라벨인 y_test와 학습한 결과로 얻은..
아래처럼, 여러개의 features 를 기반으로, 수익을 예측하려 한다. 위와 같이, 여러개의 변수들을 통해, 수익과의 관계를 분석하고 이를 통해, 새로운 데이터가 들어왔을 때, 수익이 어떻게 될 지를 예측하고자 한다. 아래는 하나의 변수일때와, 여러개의 변수가 있을때의 linear regression 을 나타낸다. 2차원에서는 선 이지만, 3차원에서는 평면이 된다. 그후 오차가 가장 적을 때 b 값들을 찾으면 된다. 아래 데이터로 실습해보자. # 어떤 신생 회사의 데이터가 있으면, 그 회사가 얼마의 수익을 낼 지 예측해보기 df = pd.read_csv('data/50_Startups.csv') df.head() # 1.NaN 처리 >>> df.isna().sum() R&D Spend 0 Adminis..
경력과 연봉의 관계를 분석하여, 경력이 주어졌을때 연봉을 예측하려 한다. 데이터를 살펴보니, 아래와 같은 그래프로 나왔다고 가정했을 때, 아래 그림처럼, 해당 분포를 만족하는 직선을 찾으려 하는것이 목표다 직선을 찾기 위해서는, 우리가 잘 아는 직선의 방정식을 이용하여, 직선의 기울기와 y절편을 구하면 되는것이다. 여기에서 주의! x, y 가 우리에게 데이터셋으로 주어졌다. 따라서 우리는 b 를 찾아야 하는것이다. 즉, b0, b1 의 값을 찾아 가는 과정을 학습이라고 부른다. 그렇다면 학습이란 바로 error(오차)를 줄여 나가는 것이다. 아래는 오차를 나타낸다. 모든 관측점(Observation) 에서의 y값의 error(오차)가 존재하고, 이 오차들의 총 합을 줄여 나가면 된다. 오차를 줄여 나가서..
이제 앞서 만들었던 데이터들을 Training용과 Test용으로 나눠보자. >>> from sklearn.model_selection import train_test_split # test_size는 0 ~ 1 으로 설정할 수 있고, test용 데이터의 비율을 설정할 수 있다. # random_state는 random.seed와 같은 역할 >>> X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=3 ) >>> X_train array([[1. , 0. , 0. , 0.34782609, 0.28571429], [0. , 1. , 0. , 1. , 1. ], [0. , 0. , 1. , 0.4782608..
Feature Scaling - 서로 다른 별수의 값 범위를 일정한 수준으로 맞추는 작업이다. - 변수 값의 범위 또는 담위가 달라서 발생 가능한 문제를 예방할 수 있다. - 머신러닝 모델이 특정 데이터의 편향성을 가지는 것을 방지할 수 있다. - 데이터 범위 크기에 따라 모델이 학습하는 데 있어서 bias가 달라질 수 있으므로 - 하나의 범위 크기로 통일해주는 작업(Feature Scaling)은 필요할 수 있다. Feature Scaling의 2가지 방법 표준화(Standardisation) - 평균을 기준으로 얼마나 떨어져 있느냐? 같은 기준으로 만드는 방법 - 음수도 존재, 데이터의 최대최소값 모를때 사용. 앞서 하던 데이터로 실습해보자. 위와 같이 df의 Age, Salary 컬럼의 값들은 같은..
데이터 분리하기 #1 과 #2에서 우리는 X와 y를 구했다. 우리는 컴퓨터에게 학습을 시켜야 하기 때문에 숫자가 아닌 데이터중에, 카테고리컬 데이터로 판단되는 데이터는 숫자로 바꿔주는 작업이 필요하다. X의 Country와 y의 데이터가 카테고리컬 데이터인지 확인하고 이를 숫자로 바꿔주는 작업을 해보겠다. >>> X['Country'].nunique() 3 >>> sorted (X['Country'].unique()) ['France', 'Germany', 'Spain'] Country의 데이터들은 ['France', 'Germany', 'Spain']로만 이루어진 카테고리컬 데이터라는 것을 확인할 수 있다. 이를 숫자로 바꾸는 방법 두가지를 알아보자. 1. Label Encoding (레이블 인코딩) ..