반응형

점을 하나찍고 여기서 좌우로 길이가 10인 선을 그려보자.


이 선을 '전체'라고 부르자. 다시 중심 점에서 좌우로 길이가 9인 선을 그려보자. 이 선은 '중심부'라고 하자. 


그러면 전체에서 중심부가 차지하는 비율은 얼마인가? 90%이다.





이번에는 차원을 하나 높여서 반지름이 10인 원을 전체로 하고 그 중에 반지름 9인 중심부 를 생각해보자.

원의 넓이는 반지름의 제곱에 비례하므로 중심부의 비율이 81%로 줄어든다. 


차원을 하나 더 높여서 반지름이 10인 구를 전체로 하면 구의 부피는 반지름의 세제곱 에 비례하므로 중심부의 비율이 73%로 줄어든다.

이런 식으로 차원을 계속 높여 나가면 43 차원에서는 중심부가 차지하는 비율이 1%에 불과하게 된다. 

거리로는 계속 전체의 90%에 달하는대도 말이다. 이를 차원의 저주(curse of dimensionality)라 한다.


데이터에서 변수들은 각각 하나의 차원을 이룬다. 2개의 변수가 있다면 2차원, 3개의 변수 가 있다면 3차원이다.

변수가 많아지면 많아질 수록 차원도 높아진다. 그러면 데이터는 차 원의 저주 때문에 중심부에는 드물고 주변부에 많아지게 된다.


반응형
반응형
Untitled7

데이터사이언티스트 질문

통계 및 수학

  • 고유값(eigen value)와 고유벡터(eigen vector)에 대해 설명해주세요. 그리고 왜 중요할까요?
  • 샘플링(Sampling)과 리샘플링(Resampling)에 대해 설명해주세요. 리샘플링은 무슨 장점이 있을까요?
  • 확률 모형과 확률 변수는 무엇일까요?
  • 누적 분포 함수와 확률 밀도 함수는 무엇일까요? 수식과 함께 표현해주세요
  • 베르누이 분포 / 이항 분포 / 카테고리 분포 / 다항 분포 / 가우시안 정규 분포 / t 분포 / 카이제곱 분포 / F 분포 / 베타 분포 / 감마 분포 / 디리클레 분포에 대해 설명해주세요. 혹시 연관된 분포가 있다면 연관 관계를 설명해주세요
  • 조건부 확률은 무엇일까요?
  • 공분산과 상관계수는 무엇일까요? 수식과 함께 표현해주세요
  • 신뢰 구간의 정의는 무엇인가요?
  • p-value를 고객에게는 뭐라고 설명하는게 이해하기 편할까요?
  • p-value는 요즘 시대에도 여전히 유효할까요? 언제 p-value가 실제를 호도하는 경향이 있을까요?
  • A/B Test 등 현상 분석 및 실험 설계 상 통계적으로 유의미함의 여부를 결정하기 위한 방법에는 어떤 것이 있을까요?
  • R square의 의미는 무엇인가요?
  • 평균(mean)과 중앙값(median)중에 어떤 케이스에서 뭐를 써야할까요?
  • 중심극한정리는 왜 유용한걸까요?
  • 엔트로피(entropy)에 대해 설명해주세요. 가능하면 Information Gain도요.
  • 요즘같은 빅데이터(?)시대에는 정규성 테스트가 의미 없다는 주장이 있습니다. 맞을까요?
  • 어떨 때 모수적 방법론을 쓸 수 있고, 어떨 때 비모수적 방법론을 쓸 수 있나요?
  • “likelihood”와 “probability”의 차이는 무엇일까요?
  • 통계에서 사용되는 bootstrap의 의미는 무엇인가요.
  • 모수가 매우 적은 (수십개 이하) 케이스의 경우 어떤 방식으로 예측 모델을 수립할 수 있을까요?
  • 베이지안과 프리퀀티스트간의 입장차이를 설명해주실 수 있나요?
  • 검정력(statistical power)은 무엇일까요?
  • missing value가 있을 경우 채워야 할까요? 그 이유는 무엇인가요?
  • 아웃라이어의 판단하는 기준은 무엇인가요?
  • 콜센터 통화 지속 시간에 대한 데이터가 존재합니다. 이 데이터를 코드화하고 분석하는 방법에 대한 계획을 세워주세요. 이 기간의 분포가 어떻게 보일지에 대한 시나리오를 설명해주세요
  • 출장을 위해 비행기를 타려고 합니다. 당신은 우산을 가져가야 하는지 알고 싶어 출장지에 사는 친구 3명에게 무작위로 전화를 하고 비가 오는 경우를 독립적으로 질문해주세요. 각 친구는 2/3로 진실을 말하고 1/3으로 거짓을 말합니다. 3명의 친구가 모두 "그렇습니다. 비가 내리고 있습니다"라고 말했습니다. 실제로 비가 내릴 확률은 얼마입니까?
  • 필요한 표본의 크기를 어떻게 계산합니까?
  • Bias를 통제하는 방법은 무엇입니까?
  • 로그 함수는 어떤 경우 유용합니까? 사례를 들어 설명해주세요

분석 일반

  • 좋은 feature란 무엇인가요. 이 feature의 성능을 판단하기 위한 방법에는 어떤 것이 있나요?
  • "상관관계는 인과관계를 의미하지 않는다"라는 말이 있습니다. 설명해주실 수 있나요?
  • A/B 테스트의 장점과 단점, 그리고 단점의 경우 이를 해결하기 위한 방안에는 어떤 것이 있나요?
  • 각 고객의 웹 행동에 대하여 실시간으로 상호작용이 가능하다고 할 때에, 이에 적용 가능한 고객 행동 및 모델에 관한 이론을 알아봅시다.
  • 고객이 원하는 예측모형을 두가지 종류로 만들었다. 하나는 예측력이 뛰어나지만 왜 그렇게 예측했는지를 설명하기 어려운 random forest 모형이고, 또다른 하나는 예측력은 다소 떨어지나 명확하게 왜 그런지를 설명할 수 있는 sequential bayesian 모형입니다.고객에게 어떤 모형을 추천하겠습니까?
  • 고객이 내일 어떤 상품을 구매할지 예측하는 모형을 만들어야 한다면 어떤 기법(예: SVM, Random Forest, logistic regression 등)을 사용할 것인지 정하고 이를 통계와 기계학습 지식이 전무한 실무자에게 설명해봅시다.
  • 나만의 feature selection 방식을 설명해봅시다.
  • 데이터 간의 유사도를 계산할 때, feature의 수가 많다면(예: 100개 이상), 이러한 high-dimensional clustering을 어떻게 풀어야할까요?

머신러닝

  • Cross Validation은 무엇이고 어떻게 해야하나요?
  • 회귀 / 분류시 알맞은 metric은 무엇일까요?
  • 알고 있는 metric에 대해 설명해주세요(ex. RMSE, MAE, recall, precision ...)
  • 정규화를 왜 해야할까요? 정규화의 방법은 무엇이 있나요?
  • Local Minima와 Global Minima에 대해 설명해주세요.
  • 차원의 저주에 대해 설명해주세요
  • dimension reduction기법으로 보통 어떤 것들이 있나요?
  • PCA는 차원 축소 기법이면서, 데이터 압축 기법이기도 하고, 노이즈 제거기법이기도 합니다. 왜 그런지 설명해주실 수 있나요?
  • LSA, LDA, SVD 등의 약자들이 어떤 뜻이고 서로 어떤 관계를 가지는지 설명할 수 있나요?
  • Markov Chain을 고등학생에게 설명하려면 어떤 방식이 제일 좋을까요?
  • 텍스트 더미에서 주제를 추출해야 합니다. 어떤 방식으로 접근해 나가시겠나요?
  • SVM은 왜 반대로 차원을 확장시키는 방식으로 동작할까요? 거기서 어떤 장점이 발생했나요?
  • 다른 좋은 머신 러닝 대비, 오래된 기법인 나이브 베이즈(naive bayes)의 장점을 옹호해보세요.
  • Association Rule의 Support, Confidence, Lift에 대해 설명해주세요.
  • 최적화 기법중 Newton’s Method와 Gradient Descent 방법에 대해 알고 있나요?
  • 머신러닝(machine)적 접근방법과 통계(statistics)적 접근방법의 둘간에 차이에 대한 견해가 있나요?
  • 인공신경망(deep learning이전의 전통적인)이 가지는 일반적인 문제점은 무엇일까요?
  • 지금 나오고 있는 deep learning 계열의 혁신의 근간은 무엇이라고 생각하시나요?
  • ROC 커브에 대해 설명해주실 수 있으신가요?
  • 여러분이 서버를 100대 가지고 있습니다. 이때 인공신경망보다 Random Forest를 써야하는 이유는 뭘까요?
  • K-means의 대표적 의미론적 단점은 무엇인가요? (계산량 많다는것 말고)
  • L1, L2 정규화에 대해 설명해주세요
  • XGBoost을 아시나요? 왜 이 모델이 캐글에서 유명할까요?
  • 앙상블 방법엔 어떤 것들이 있나요?
  • SVM은 왜 좋을까요?
  • feature vector란 무엇일까요?
  • 좋은 모델의 정의는 무엇일까요?
  • 50개의 작은 의사결정 나무는 큰 의사결정 나무보다 괜찮을까요? 왜 그렇게 생각하나요?
  • 스팸 필터에 로지스틱 리그레션을 많이 사용하는 이유는 무엇일까요?
  • OLS(ordinary least squre) regression의 공식은 무엇인가요?
In [1]:
from IPython.core.display import display, HTML

display(HTML("<style> .container{width:90% !important;}</style>"))
In [ ]:
 
반응형

'통계' 카테고리의 다른 글

혼돈행렬(confusion matrix)에 대해 알아보자  (2) 2019.11.07
가설검정 그리고 귀무가설과 대립가설은 무엇인가?  (0) 2019.10.18
차원의 저주란?  (0) 2019.03.21
xgboost general parameters  (0) 2019.03.19
릿지회귀  (0) 2019.03.08
반응형
xgboost_general parameters

xgboost란?

  • xgboost를 시작하기 전에 우리는 세가지의 파라미터를 반드시 설정해야한다

    1.general parameters : 우리가 사용하는 부스팅과 관련이 있으며 트리와 선형모델이 있다.

    2 booster parameters : 위에서 선택한 부스터에 따른 파라미터이다.

    3 learning task parameters : 학습 시나리오를 결정하는 파라미터이다.

general parameters

  • booster [default= gbtree ] : 어떤 부스터를 사용할지 결정한다. 기본값은 gbtree 이며 gbtree 및 dart 값은 트리 기반 모델을 사용하는 반면 gblinear는 선형 함수를 사용합니다.
  • silent [default=1]: 기본값은1이다. 0입력시 실행 메세지를 출력한다
  • Nthread(default=가능한 최대 threads의 수) : xgboost 실행에 사용되는 병렬 스레드의 수
  • num_pbuffer : xgboost가 자동으로 셋팅하며 사용자가 셋팅할 필요가없다.
  • num_feature xgboost가 자동으로 셋팅하며 사용자가 셋팅할 가없다.

xgboost에 general parameters 적용해보기

In [7]:
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
import xgboost as xgb
In [8]:
#암분류 데이터 로드(569명의 환자의 30개 변수)
cancer = load_breast_cancer()

#데이터 분할
X_train, X_test, y_train, y_test = train_test_split(
    cancer.data, cancer.target, stratify=cancer.target, random_state=42)
print("X_train 크기{}".format(X_train.shape))
print("y_train 크기{}".format(y_train.shape))
print("X_test 크기{}".format(X_test.shape))
print("y_test 크기{}".format(y_test.shape))
X_train 크기(426, 30)
y_train 크기(426,)
X_test 크기(143, 30)
y_test 크기(143,)
In [9]:
# .XGBClassifier의 general parameters기본값: booster='gbtree',  nthread=None, silent=1
print(xgb.XGBClassifier())

#분류문제이기 떄문에 XGBClassifier 모델 로드
xgb_model =xgb.XGBClassifier(silent=0)
XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,
       colsample_bytree=1, gamma=0, learning_rate=0.1, max_delta_step=0,
       max_depth=3, min_child_weight=1, missing=None, n_estimators=100,
       n_jobs=1, nthread=None, objective='binary:logistic', random_state=0,
       reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None,
       silent=True, subsample=1)

silent=0으로 설정하니 학습메세지가 나온걸 볼 수 있다 너무 길어 다음 포스팅부터는 1로 고정

In [10]:
#모델학습 (훈련세트에 비해 테스트세트가 정확도가 낮아졌다 과적합된걸로 보인다.)
xgb_model.fit(X_train, y_train)
print("훈련 세트 정확도: {:.3f}".format(xgb_model.score(X_train, y_train)))
print("테스트 세트 정확도: {:.3f}".format(xgb_model.score(X_test, y_test)))
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 14 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 14 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 14 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 14 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 14 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 14 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 12 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 10 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 8 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=3
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[18:59:57] C:\Users\Administrator\Desktop\xgboost\src\tree\updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
훈련 세트 정확도: 1.000
테스트 세트 정확도: 0.951
C:\Users\user\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py:171: DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.
  if diff:
C:\Users\user\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py:171: DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.
  if diff:
In [11]:
from IPython.core.display import display, HTML

display(HTML("<style> .container{width:90% !important;}</style>"))
In [ ]:
 


반응형
반응형
릿지

릿지

릿지 회귀에서 가중치 W는 데이터 예측 뿐 아니라 추가 제약 조건을 위해 사용한다.

W의 절대값을 가능한한 작게하여 W의 모든원소가 0이 되게 하여 모든 특성이 출력에 주는

영향을 0으로 가깝게 만듦으로써 과대적합이 되지 않게 한다.

In [1]:
import numpy as nop
import pandas as pd
import mglearn
In [2]:
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

보스턴주택가격 데이터로드

In [3]:
X, y = mglearn.datasets.load_extended_boston()
print("X.shape: {}".format(X.shape))
X.shape: (506, 104)

데이터분할

In [4]:
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

선형모델

In [5]:
lr = LinearRegression().fit(X_train, y_train)
In [6]:
print("훈련 세트 점수: {:.2f}".format(lr.score(X_train, y_train)))
print("테스트 세트 점수: {:.2f}".format(lr.score(X_test, y_test)))
훈련 세트 점수: 0.95
테스트 세트 점수: 0.61

릿지모델

선형모델모다 훈련세트의 점수는 낮지만 테스트 세트의 점수는 높아진 것을 볼 수 있다.

In [7]:
from sklearn.linear_model import Ridge
In [8]:
ridge = Ridge().fit(X_train, y_train)
print("훈련 세트 점수: {:.2f}".format(ridge.score(X_train, y_train)))
print("테스트 세트 점수: {:.2f}".format(ridge.score(X_test, y_test)))
훈련 세트 점수: 0.89
테스트 세트 점수: 0.75

Ridge의 매개변수로는 alpha가 있습니다. alpha값을 높이면 계수를 0에 가깝게 만들어서 훈련세트의 성능은 나빠지지만 일반화에는 도움을 줄 수 있다.

그리스서치

In [9]:
from sklearn.svm import SVC

best_score = 0

for alpha in [1e-05, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100]:
        ridge = Ridge(alpha=alpha)
        ridge.fit(X_train, y_train)

        score = ridge.score(X_test, y_test)
        score1  = ridge.score(X_test, y_test)


        print("alpha 파라미터: {}".format(alpha))
        print("훈련 세트 점수: {:.2f}".format(score))
        print("테스트 세트 점수: {:.2f}".format(score1))
        print("---------------------------------")
alpha 파라미터: 1e-05
훈련 세트 점수: 0.61
테스트 세트 점수: 0.61
---------------------------------
alpha 파라미터: 0.0001
훈련 세트 점수: 0.62
테스트 세트 점수: 0.62
---------------------------------
alpha 파라미터: 0.001
훈련 세트 점수: 0.63
테스트 세트 점수: 0.63
---------------------------------
alpha 파라미터: 0.01
훈련 세트 점수: 0.70
테스트 세트 점수: 0.70
---------------------------------
alpha 파라미터: 0.1
훈련 세트 점수: 0.77
테스트 세트 점수: 0.77
---------------------------------
alpha 파라미터: 1
훈련 세트 점수: 0.75
테스트 세트 점수: 0.75
---------------------------------
alpha 파라미터: 10
훈련 세트 점수: 0.64
테스트 세트 점수: 0.64
---------------------------------
alpha 파라미터: 100
훈련 세트 점수: 0.42
테스트 세트 점수: 0.42
---------------------------------

alpha값을 줄이면 계수에 대한 제약이 없어져 선형모델과 같은 결과를 나타낸다.

alpha값이 너무 커지면 제약이 강해져 가중치는 0에 가까워져 성능이 떨어집니다.

parmeters를 축소하는 작업은 다중공선성 방지에 가장 많이 쓰입니다.

계수 축소에 의해 모델의 복잡도를 줄입니다.

L2 regularization을 활용합니다.

In [11]:
from IPython.core.display import display, HTML

display(HTML("<style> .container{width:90% !important;}</style>"))
In [ ]:
 
반응형
반응형

딥러닝을 위하여 파이썬에 keras를 설치하는 도중 오류가 발생했습니다.

 

 

 

아나콘다 프롬프 창에

 

conda install -c anaconda html5lib 를 입력하면 keras가 제대로 설치되는걸 확인할 수 있습니다.

 

 

반응형
반응형

XGBoost는 머신러닝의 분류 알고리즘으로 현재 kaggle에서 가장 인기있는 머신러닝 모델이다


kaggle의 우승자의 대부분이 이 XGBoost를 쓴다고 해도 과언이 아니다.


anaconda 패키지 안에는 XGBoost가 설치되지 않아서 직접 설치해야하는 불편함이 있는데 


이러한 설치를 쉽게 알려주는 사이트가 있다.


이곳을 클릭하면 XGBoost를 쉽게 설치할 수 있다.

반응형
반응형


MinGW-W64를 설치할때 이런 오류가 계속 떠
구글링 및 여러 답변을 참고 하였지만 해결되지 않았는데
 그러던 중 해결방법을 찾았다.
이러한 문제점은 MinGW-W64를 재설치할때 일어난다고 가정한다.
(재설치할때 문제가 생겼기 때문에)

the file has been downloaded incorrectly! 가 계속 뜨던중 혹시
환경변수에 MinGW-W64를 설정해놔서 그런건가 싶어 
환경변수 Path에서 MinGW-W64의 경로를 삭제후 설치하니
 제대로 설치가 된걸 확인할 수 있었다.


반응형
반응형

시험결과

 

 

휴... 간당강당하게 합격했다. 
이번시험이 특히 극악의 난이도를 자랑하여 과락이 되지 않을까 걱정하였지만
과락없이 겨우 턱걸이로 합격하였다

 

 

 

 

 

 

 

 

 

 

 

시험교재

 

 

기본개념은 데이터진흥원에서 나오는 책으로 하였다. 

시험을 주관하는 곳에서 나온 책이기때문에 이책을 볼 것을 추천한다

 

 

이책은 문제를 풀기 위하여 구매하였다. 
개념서 안에 문제가 생각보다 많이없어 위에 개념서문제만 보고갈 경우 시험떄 당황할수 있다.
그래서 꼭 위에 책이아니더라도 문제가 많은 책 한권정도는 사서 푸는 것을 권장한다.
주변을 보니 데이터에듀에서 나오는 책을 많이 보는 것 같다.

 

 

 

 

 

 

 

 

 

 

시험공부 tip

시험공부는 총 10일 하루에 3시간정도 공부한것 같다.
사실 통계학과라 기본적으로 알고 있는 것이 있어 시간이 적게 걸렸고
처음 시작하는 분은 넉넉히 3주정도 생각하고 공부하는 것이 좋다고 생각한다.

 

 

tip1

 

개념서 정독!!

모든 공부의 기본은 책은 한번이상은 정독하는 것이라고 생각한다 한번정독하게 되면
공부해야 할 방향이 보이고 전체적인 개념이 생기기 떄문에 꼭 정독을 해야 하며
시간이 없다면 1번 시간이 많으면 시간날때마다 읽는 걸 추천한다.
특히 빅데이터 준전문가를 따는 사람들 중 많은 사람들이 데이터 분석가를 꿈꾼다고 생각하는데,
그에 필요한 전체적인 개념을 정리 할 수 있는 좋은 책이므로 자격증 공부한다는 생각도 가지지만
나의 데이터 분석가로써의 역량을 키운다는 생각으로 공부하게되면 재밌고 머리에 조금 더 들어오는
느낌이다.

 

 

 

tip2

 

기출문제 풀이

 

사람들이 자격증시험을 볼 떄 가장많이 간과하는 부분이라고 생각한다. 
개념서3회독 후 시험을 보는것과
개념서 1회독 후 기출문제를 푸는 것을 비교할때 
주관적이지만 두번째 사례가 시험에 통과할 확률이 높다고 생각한다.
아무리 분량이 많아도 사실 시험에 낼 수 있는 문제는 한정되어 있고 벌써 14회차나 되다보니
중복된 문제가 나올 수 밖에 없다. 
그리고 개념서 정독 후 기출문제를 풀게되면 다음에 기본서를 읽을때 내가 어디에 중점을 두어 읽어야 할지 방향이 보이므로 꼭 기출문제 풀이를 추천한다.


기출문제 복원은 데이터베이스 전문가 포럼(http://cafe.naver.com/sqlpd)에서 찾을 수 있다.

 

 

 

tip3

 

배경지식

사실 이부분이 가장 어렵다. 
adsp 주최측에서는 시험의 변별력을 높이기 위해 개념서에서 나오지 않은 개념들을
시험으로 자주 그리고 많이 낸다. 이러한 부분은 매시험마다 항의가 들어오지만
바뀌지 않으므로 우리의 자세를 바꿔야한다고 생각한다.
그래서 기회가 날때마다 4차산업혁명에 관련된 뉴스를 보면 도움이 된다.
특히 자격증만 따면 끝이 아닌 데이터 분석가를 위한 목적이기 떄문에 이러한 뉴스가 향후 많은 
도움이 된다고 생각한다.



마지막 팁으로는 시험의 난이도가 한회차가 어렵다면 다음회차는 쉬운 추세를 보이고 있으므로
바로 따야 하는 것이 아니라면 전회차 시험의 난이도를 검색해보시고 시험보는 것도 추천합니다.
이번 14회차가 굉장히 어려웠으므로 15회차는 조금 난이도가 쉽게 나오지 않을까 예상됩니다.


이것으로 adsp 포스팅을 마칩니다. 

 

 

 

 

 

 

 

반응형

+ Recent posts