[혼공단 5기] 혼공머신 1주차 학습 인증
기본 미션 : 코랩 실습 화면 인증샷
선택 미션 : 2-1절 문제 풀고 인증샷
+ 혼자 공부하면서 정리한 내용들
matplotlib
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, ...)
Parameters
x, y : float or array-like, shape (n,)
- x축 값, y축 값
** array-like : np.array가 배열로 interpret 할 수 있는 python object
s : float or array-like, shape(n,), optional
- 마커의 사이즈를 지정하는 매개변수
c : array-like or list of colors or color, optional
- 마커의 색깔을 지정하는 매개변수
- 16진수로 표현한 RGB 값 (ex. '#0080FF')
- 색깔 코드 (ex. 'r', 'g', 'b', 'c', 'm', 'y', 'k', 'w')
- 지정하지 않으면 10개의 default 색깔을 사용해 그래프를 그린다.
- default : cycler('color',
['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])
marker : default : 'o' (원)
- 마커 스타일을 지정하는 매개변수
- 'v', '^', '*', '1', '2', '3', 'p', 'P', 'h', 'H', '+', 'x' 등
- 다양한 마커 : matplotlib.org/api/markers_api.html#module-matplotlib.markers
scikit-learn
predict data analysis 를 위한 간단하고 효율적인 tools
NumPy, SciPy, matplolib 기반
class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, p=2, ...)
k개의 가장 가까운 이웃들의 투표에 따라 결정하는 분류모델을 만드는 클래스
Parameters
n_neighbors : int, default = 5
- kneighbors 쿼리에 기본적으로 사용할, 이웃들의 숫자
p : int, default = 2
- Power parameter for Minkowski metric
** 민코프스키 공간 : 수학자 민코프스키가 도입한 개념. 3차원 공간와 1차원의 시간을 기하학적으로 밀접하게 통합해서, 인류가 시공간에 대한 더 깊은 이해를 하도록 이끌었음. 시공간을 수학적으로 4차원으로 모델링 한 것임. 유클리드 4차원 공간도 민코프스키 공간과 마찬가지로 4차원이지만, 거리를 정의하는 방법은 서로 다름.
- 거리를 재는 방법을 지정하는 매개변수
- p = 1 이면, 맨해튼 거리(bit.ly/man_distance) 사용
- p = 2 이면, 유클리디안 거리(bit.ly/euc_distance) 사용
Methods
fit(X, y)
- 훈련 데이터셋을 이용하여, K-최근접 이웃 분류 모델을 훈련 시키는 메서드
X : {array-like, sparse matrix} of shape (n_samples, n_features)
or (n_samples, n_samples) if metric='precomputed'
** sparse matrix : 행렬의 값이 대부분 0인 경우
- Training data (훈련에 사용할 특성 데이터)
y : {array-like, sparse-matrix} of shape (n_samples,)
or (n_samples, n_outputs)
- Target values (훈련에 사용할 정답 데이터)
kneighbors(X=None, n_neighbors=None, return_distance=True)
- X가 주어졌을 때, 그 지점의 K개의 이웃들을 찾아주는 메서드
- 이웃 지점들에 대한 distance와 index 를 리턴한다.
Parameters
X : array-like, shape (n_queries, n_features),
or (n_queries, n_indexed) if metirc == 'precomputed', default = None
- The query point or points.
- 만약 주어지지 않았다면, 각각의 indexed point 의 이웃들이 리턴된다.
- 이 경우, query point 는 그 자신의 이웃으로 considered 되지 않는다.
n_neighbors : int, default = None
- 각 sample 에 required 되는 이웃들의 숫자
- default는 constructor에게 passed되는 값이다.
return_distance : bool, default = True
- distances 들을 리턴 할지 말지 결정하는 인자
- x : array-like, shape(n_queries, n_features)
Returns
neigh_dist : ndarray of shape (n_queries, n_neighbors)
points 까지의 length 를 represent 하는 array
return_distance = True 인 경우에만 리턴된다.
neigh_ind : ndarray of shape (n_queries, n_neighbors)
population matrix 에서 가장 가까운 points 들의 indices
predict(X)
- provided data 에 대한 클래스 라벨들을 예측하는 메서드
- 특성 데이터 하나(X)만 매개변수로 받는다
Parameters
X : array-like of shape (n_queries, n_features), or (n_queries, n_indexed) if metric == 'precomputed')
- Test samples
- 이게 proviede data 인 거임!
Returns
y : ndarray of shape (n_queries,) or (n_queries, n_outputs)
- 각 data sample 에 대한 class labels.
score(X, y, sample_weight = None)
주어진 test data 와 labels 에 대한 mean accuracy 를 리턴하는 메서드
다중 레이블 분류에서 이것은 각 레이블 세트를 올바르게 예측해야 하므로, 엄격한 메트릭(harsh metric)인 부분 집합 정확도(subset accuracy)이다.
** metric(척도) : 학습을 통해 목표를 얼마나 잘 달성했는지를 나타내는 값.
Parameters
X : array-like of shape (n_samples, n_features)
- Test smaples
y : array-like of shape (n_samples,) or (n_samples, n_outputs)
- True labels for x
sample_weight : array-like of shape (n_sampels,), default = None
- Sample weights
Returns
score : float
- Mean accuracy of self.predict(X) wrt.y.
class sklearn.model_selection.train_test_split(*arrays, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None, ...)
배열 또는 행렬을 랜덤하게 섞어서, train set과 test set으로 쪼개는 함수
Parameters
*arrays : sequence of indexables with dame length/shape[0]
- Allowed inputs : lists, numpy arrays, scipy-sparse matrices or pandas dataframes
test_size : float or int, default = None
- float 이면, 0.0 ~ 1.0 사이의 값이어야한다. test split의 비율임
- int 이면, test samples의 절대적인 숫자를 나타낸다.
- None 이면, test_size는 train size의 complement 로 결정된다.
- train_size 도 None이면, 그냥 test_size : train_size 는 0.25 : 0.75 이다.
train_size : float or int, default = None
- test_size 설명이랑 동일~
random_state : int, RndomState instance or None, default = None
- 데이터를 split 하기 전에, shuffle 하는 걸 컨트롤 하는 값.
- seed랑 동일하다고 생각하면 될 듯 하다.
shuffle : bool, default = True
- split 하기 전에, shuffle 할거냐 말거냐를 정해주는 값
- shuffle = False 이면, stratify = None 이어야한다.
stratify : array-like, default = None
- None 이 아니면, data는 stratified fashion (계층화된 방식)으로 split 되고, 인자로 주어진 걸 class labels로 사용된다.
- 이 매개변수에 클래스 레이블이 담긴 배열 (일반적으로 타깃 데이터)를 전달하면, 클래스 비율에 맞게 train set 와 test set를 split 해준다.
scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
NumPy
numpy.random.seed(self, seed=None)
- 넘파이에서 난수를 생성하기 위한 정수 초깃값을 지정한다.
- 초깃값이 같으면 동일한 난수를 뽑을 수 있다.
- 따라서, 랜덤 함수의 결과를 동일하게 재현하고 싶을 때 사용한다.
numpy.arange([start, ]stop, [step, ]dtype=None, *, like=None)
- 지정된 간격 내에서, 일정한 간격으로 값을 반환한다.
- start 이상, stop 미만, step 간격으로 이루어진 값들을 배열로 만들어서 반환한다.
start : integer or real, optional
- interval 의 시작
- interval 은 이 값을 포함한다.
- default : 0
stop : integer or real
- interval 의 끝
- interval 은 이 값을 포함하지 않는다.
step : integer or real, optional
- 값들 사이의 간격
- default : 1
- step 이 지정되려면, start 또한 무조건 주어져야한다.
numpy.random.shuffle(x)
- 주어진 배열을 랜덤하게 섞어서 수정한다.
- 다차원 배열일 경우, 첫 번째 축에 대해서만 섞는다.
- 섞게 되면 서브-배열들의 순서는 바뀌지만, 그들의 내용의 동일하다.
+ 이 책을 이용하여 "혼공머신 기반 학습"을 했습니다.
www.aladin.co.kr/shop/wproduct.aspx?ISBN=K052736813&start=pnaver_02
'etc > 혼공단' 카테고리의 다른 글
[혼공단 5기] 혼공머신 5주차 학습 인증 (0) | 2021.02.28 |
---|---|
[Kaggle] Sorry, we couldn't find any public results. (0) | 2021.02.23 |
[혼공단 5기] 혼공머신 4주차 학습 인증 (0) | 2021.02.22 |
[혼공단 5기] 혼공머신 3주차 학습 인증 (0) | 2021.02.14 |
[혼공단 5기] 혼공머신 2주차 학습 인증 (0) | 2021.02.07 |
댓글
이 글 공유하기
다른 글
-
[Kaggle] Sorry, we couldn't find any public results.
[Kaggle] Sorry, we couldn't find any public results.
2021.02.23 -
[혼공단 5기] 혼공머신 4주차 학습 인증
[혼공단 5기] 혼공머신 4주차 학습 인증
2021.02.22 -
[혼공단 5기] 혼공머신 3주차 학습 인증
[혼공단 5기] 혼공머신 3주차 학습 인증
2021.02.14 -
[혼공단 5기] 혼공머신 2주차 학습 인증
[혼공단 5기] 혼공머신 2주차 학습 인증
2021.02.07