728x90
Machine Learning/Coding
12

[실습]주성분 분석(Principal Component Analysis, PCA)

1. 데이터 생성 import pandas as pd df = pd.DataFrame(columns=['calory', 'breakfast', 'lunch', 'dinner', 'exercise', 'body_shape']) df.loc[0] = [1200, 1, 0, 0, 2, 'Skinny'] df.loc[1] = [2800, 1, 1, 1, 1, 'Normal'] df.loc[2] = [3500, 2, 2, 1, 0, 'Fat'] df.loc[3] = [1400, 0, 1, 0, 3, 'Skinny'] df.loc[4] = [5000, 2, 2, 2, 0, 'Fat'] df.loc[5] = [1300, 0, 0, 1, 2, 'Skinny'] df.loc[6] = [3000, 1, 0, 1, 1, '..

[실습] 단일, 다중 입력 로지스틱 회귀와 소프트맥스(다중 분류 로지스틱 회귀)

단일 입력 로지스틱 회귀 1. Import from keras.models import Sequential from keras.layers import Dense, Activation import numpy as np 2. 모델 생성 #sigmoid(wx+b)의 형태를 갖는 간단한 로지스틱 회귀 구현 model = Sequential() model.add(Dense(input_dim=1, units=1)) # 입력 1개, 출력 1개 model.add(Activation('sigmoid')) # 출력값을 시그모이드에 연결 model.compile(loss='binary_crossentropy', optimizer='sgd', metrics=['binary_accuracy']) 3. 데이터 생성 X = np..

[실습] Linear Regression(선형회귀)

필요한 라이브러리를 임포트한다. Import from keras import optimizers from keras.models import Sequential from keras.layers import Dense import numpy as np import pandas as pd import matplotlib.pyplot as plt 데이터 생성 임의의 데이터를 생성한다. X = np.linspace(0, 10, 10) Y = X + np.random.randn(*X.shape) 데이터 조회 어떤 데이터가 만들어졌는지 확인한다. for x, y in zip(X, Y): print((round(x, 1), round(y, 1))) [출력] (0.0, -0.3) (1.1, 1.5) (2.2, 2.9)..

[실습] KMeans (K 평균 군집화)

KMeans를 사용한 실습은 간단한 키, 몸무게에 대한 데이터를 생성하여 진행해보았다. Import import pandas as pd import numpy as np from sklearn.cluster import KMeans import matplotlib.pyplot as plt import seaborn as sns 데이터 생성 df = pd.DataFrame(columns=['height', 'weight']) df.loc[0] = [185, 60] df.loc[1] = [180, 60] df.loc[2] = [185, 70] df.loc[3] = [165, 63] df.loc[4] = [155, 68] df.loc[5] = [170, 75] df.loc[6] = [175, 80] df [출..

[실습] 랜덤 포레스트(Random Forest)와 앙상블(Ensemble)

랜덤 포레스트 모델을 사용하여 손글씨 분류를 실습해보았다. 랜덤 포레스트 손글씨 분류 Import from sklearn import datasets, tree from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import cross_val_score, train_test_split from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt import pandas as pd import numpy as np 데이터 불러오기 mnist = datasets.load_digits() features, labels = mnist.data, m..

[실습] 다항분포 나이브 베이즈(Multinomial Naive Bayes)

다항분포 나이브 베이즈는 앞서 실습한 베르누이 나이브 베이즈와 비슷하다. 하지만 베르누이는 데이터의 특징이 0 또는 1로 표현되고 다항분포는 데이터의 특징이 출현 횟수로 표현된다. Import import numpy as np import pandas as pd from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB from sklearn.metrics import accuracy_score 데이터 생성 영화 감상평을 데이터로 생성하여 실습해보았다. review_list = [ {'movie_review' : 'this is great great movie. I will ..

[실습]Bernoulli Naive Bayes(베르누이 나이브 베이즈)

Import import numpy as np import pandas as pd from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import BernoulliNB #베르누이 나이브 베이즈 from sklearn.metrics import accuracy_score 'CountVectorizer'에 대한 것은 사용할 때 설명하겠다. 데이터 생성 #임의의 데이터 생성 email_list = [ {'email title' : 'free game only today', 'spam' : True}, {'email title' : 'cheapest flight deal', 'spam' : True}, {'ema..

[실습] Gaussian Naive Bayes(가우시안 나이브 베이즈)

Import 다음과 같이 필요한 라이브러리를 임포트한다. import pandas as pd from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split #가우시안 나이브 베이즈 from sklearn.naive_bayes import GaussianNB from sklearn import metrics from sklearn.metrics import accuracy_score 데이터 불러오기 각 데이터 속성의 뜻은 다음과 같다. sepal length : 꽃받침 길이 sepal width : 꽃받침 너비 petal length : 꽃잎 길이 petal width : 꽃잎 너비 target : 붓꽃의..

[실습]의사결정 트리(Decision Tree)

의사결정 트리를 사용하여 데이터 분류를 수행할 것이다. 데이터는 서울의 시군구, 읍면동을 사용하였고 강서, 강동, 강북, 강남으로 분류하는 작업을 실습해보았다. 데이터 불러오기 서울의 시군구 데이터는 시군구 데이터, 읍면동 데이터는 읍면동 데이터에서 가져올 수 있다. 2021.07.16부터 제공되지 않는다고 한다. import pandas as pd train_df = pd.read_csv('./drive/MyDrive/district_dict_list.csv') test_df = pd.read_csv('./drive/MyDrive/dong_dict_list.csv') train_df.head() [출력] district_dict_list.csv, dong_dict_list.csv 파일은 미리 정제(cl..

[실습]SVM(Support Vector Machine)

먼저 csv파일을 불러오고 train 데이터와 test 데이터를 나눠주겠다. 데이터 불러오기 import pandas as pd df = pd.read_csv("./drive/MyDrive/basketball_stat.csv") #구글 드라이브 내에 있는 파일을 불러옴 df.head() 데이터 분리 from sklearn.model_selection import train_test_split #80%는 학습 데이터, 20%는 테스트 데이터로 분리 train, test = train_test_split(df, test_size=0.2) #학습 데이터, 테스트 데이터 개수 확인 print(train.shape[0]) print(test.shape[0]) 최적의 SVM 파라미터 찾기 이제 불러온 데이터를 RB..

728x90