'Machine Learning'에 해당되는 글 101건

  1. 2022.10.13 파이썬 seaborn box plot(sns.boxplot) 해석하는 방법
  2. 2022.02.18 피처 엔지니어링,feature-engineering,에 관한 사이트 & 코드code들
  3. 2020.11.30 [self] 다양한 alpha, beta에 따른 logistic function plot
  4. 2020.10.07 Having an unbalanced dataset is not an uncommon problem in real world. Intereste
  5. 2020.09.15 [self] PR(Precision Recall) curve VS ROC curve
  6. 2020.07.24 For the benefit of new folks in the field, here's a list of some well known and
  7. 2020.06.24 【자기주도온라인평생학습 】기초 탈출 파이썬 판다스(Python Pandas) 무료 온라인 강의 리스트 – 8개 교육과정 컴퓨터 프로그래밍에서
  8. 2020.05.13 [Silhouette coefficient] Clustering metrics better than the elbow-method
  9. 2020.03.16 파면 팔수록 쉽고 재미있는 머신러닝
  10. 2020.03.04 Christoper M. Bishop의 저서인 "Pattern Recognition and Machine Learning" 에 등장하는 알고리즘
  11. 2020.03.03 PRML algorithms implemented in Python Python codes implementing algorithms descr
  12. 2020.01.20 #OpenSyllabus 세계 80개국에서 영어로 작성된 7백만 여개의 Syllabus를 수집해 각 전공별로 어떠한 전공 서적이 수업에 가장
  13. 2020.01.13 머신러닝 - 16. NGBoost (데이터 파수꾼 Baek Kyun Shin) 앤드류 응 교수가 속해있는 스탠퍼드 ML Group에서 최근 새
  14. 2020.01.07 제목: 랜덤 포레스트를 통한 주가 움직임 예측 금융 분야에서 모든 사람은 주가를 예측하는데 있어 우위를 점할 무언가를 찾고 있습니다. 머신 러닝
  15. 2019.12.23 XGBoost: An Intuitive Explanation Ashutosh Nayak : https://towardsdatascience.c
  16. 2019.12.23 Recently, I came across this excellent machine learning playlist by Prof. Arti R
  17. 2019.11.27 The cause of poor performance in machine is either overfitting or underfitting the data To explain it simply : Machine ignoring - underfitting Machine learning - Goodfitting Machine memorising - overfitting For more updates follow @heu.ai #machinelea..
  18. 2019.11.17 그룹에 Mathematics for Machine Learning(MML) 책을 보고 공부하시는 분들이 많을 것 같습니다. 동명의 Coursera 강의를 듣는 분들도 계실테고요. 강의를 진행하는 4명의 강사 중 한 명인 Sam Cooper는 Coursera..
  19. 2019.11.14 Gradient Boost와 관련 모델 정리 (하나씩 점을 찍어 나가며 / 미스터 흠시) * 영상 : StatQuest with Josh Starmer 의 StatQuest: Gradient Boost Part1 영상 미스터 흠시 님께서 "StatQuest with Josh Starmer 의 StatQuest: Gra..
  20. 2019.11.11 리그레션 종류
  21. 2019.11.07 Machine Learning Tutorial 6 - Decision Tree Classifier and Decision Tree Regression in Python
  22. 2019.10.21 Machine Learning for Intelligent Systems: Cornell CS4780/CS5780 Lectures: https://www.youtube.com/playlist?list=PLl8OlHZGYOQ7bkVbuRthEsaLr7bONzbXS Course Website: http://www.cs.cornell.edu/courses/cs4780/2018fa/syllabus/index.html Find The Most Updated..
  23. 2019.09.24 데이터사이언스 공부순서
  24. 2019.09.03 머신러닝 통계학 확률론 등 동영상강의 연세대 수학과 이승철교수님
  25. 2019.08.20 [시계열 데이터 Missing Values 공백 제거하기]How to Handle Missing Timesteps in Sequence Prediction Problems with Python
  26. 2019.07.02 Stanford has an AI graduate certificate program on their website. They have the following classes:
  27. 2019.01.22 머신러닝 공부 순서, 방법 및 강의 정리(HowUse 곰씨네)
  28. 2018.12.03 머신러닝 공부순서
  29. 2018.06.06 Particle Swarm Optimization – A Tutorial
  30. 2018.05.27 베이즈통계 기초 블로그

aa.pptx
0.04MB

box plot은 사분위수(상위 25%, 50%, 75%를 각각 Q1, Q2, Q3 표현)를 그림으로 나타낸 것이다. Q1 ~ Q3 사이의 상위 25~75% 구간이 가운데 box로 나타내지고, Q2(상위 50%)는 박스 중간에 직선으로 표시된다. Q1 - (Q3 - Q1) * 1.5 이하와 Q3 + (Q3 - Q1) * 1.5 이상의 구간에 존재하는 샘플들은 이상치(outlier)로 간주되며 점으로 표시된다. 이 범위 내의 최소값(minimum)과 최대값(maximum)을 양 끝의 수직선으로 나타낸다. 

 

아래 코드는 https://stackoverflow.com/questions/50554235/how-to-base-seaborn-boxplot-whiskers-on-percentiles 의 코드를 수정한 것인데, seaborn box plot을 이해하기에 좋은 예제인 것 같다. 

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")
a1 = tips["total_bill"]
ax = sns.boxplot(x=tips["total_bill"], whis=[5, 95])
plt.grid(True)
plt.figure()
ax = sns.boxplot(x=tips["total_bill"])
plt.grid(True)

print(tips["total_bill"].describe())

실행결과

[229 rows x 16 columns]
count    244.000000
mean      19.785943
std        8.902412
min        3.070000
25%       13.347500
50%       17.795000
75%       24.127500
max       50.810000
Name: total_bill, dtype: float64

아래 그림은 5%와 95%를 minimum, maximum으로 구분한 플롯.

아래 그림은 원래 함수의 디폴트에 따라 minimum, maximum으로 구분한 플롯.

https://jimmy-ai.tistory.com/51에서는 

"참고로, box plot은 사분위수(상위 25, 50, 75% 숫자 : Q1, Q2, Q3)를 기준으로
Q1 ~ Q3 사이의 상위 25~75% 구간이 가운데 box로 색칠되고,
Q1 - (Q3 - Q1) * 1.5 이하와 Q3 + (Q3 - Q1) * 1.5 이상의 구간을 끝 선으로 나타내고
이 밖의 범위에 해당하는 숫자는 이상치(점으로 표시)로 취급하는 그림입니다.
박스의 끝점이 Q1, Q3에 해당하고, 박스 가운데 선이 Q2에 해당하는 것을 참고하세요."

라고 설명하고 있다. 그런데, Q1 - (Q3 - Q1) * 1.5 이하와 Q3 + (Q3 - Q1) * 1.5 이상의 구간을 끝 선으로 나타낸다면, 박스로부터 양 끝으로부터 양 끝 선(수직선)까지 길이가 같아야하는데 다르다. 그래서 검색해보니, 

https://datagy.io/seaborn-boxplot/

https://datagy.io/seaborn-boxplot/ 에서 제대로 설명하고 있다. 

https://flowingdata.com/2008/02/15/how-to-read-and-use-a-box-and-whisker-plot/

위 그림은 https://flowingdata.com/2008/02/15/how-to-read-and-use-a-box-and-whisker-plot/ 에서 설명하고 있는 그림인데, minumum을 25%의 1.5배보다 작은 것이라고 설명하고 있는데 잘못 설명하여 헷갈리게 만든다. 

 

 

 

 

 

 

 

 

 

 
 
 
 
 
 
 
 
 
Posted by uniqueone
,
* 아래는 라이브러리 이용해서 피처 늘리는 예시 코드 및 설명
 
 
PCA를 이용한 Feature Extraction 설명 및 코드

PCA를 이용한 Feature Extraction 설명 및 코드
 

 

https://medium.com/analytics-vidhya/feature-engineering-using-featuretools-with-code-10f8c83e5f68 (https://github.com/ranasingh-gkp/Feature_engineering_Featuretools)

 

https://www.analyticsvidhya.com/blog/2018/08/guide-automated-feature-engineering-featuretools-python/

 

https://data-newbie.tistory.com/815 은 원본코드 https://www.kaggle.com/frednavruzov/auto-feature-generation-featuretools-example 를 버전 업데이트에 맞춰 수정한 최신 코드이다.

 

Featuretools의 공식 홈페이지의 예제코드

https://featuretools.alteryx.com/en/stable/ , https://featuretools.alteryx.com/en/stable/getting_started/using_entitysets.html

 

https://analyticsindiamag.com/introduction-to-featuretools-a-python-framework-for-automated-feature-engineering/

https://youtube.com/playlist?list=PLSlDi2AkDv832sRHreZKoyyzJnGxLkcfF

Feature Tools에 대한 설문 문서 페이지들: https://primitives.featurelabs.com/ , https://docs.featuretools.com/en/stable/api_reference.html#feature-primitives

* 아래는 PCA를 이용한 Feature Extraction 설명 및 코드

https://towardsdatascience.com/feature-extraction-using-principal-component-analysis-a-simplified-visual-demo-e5592ced100a

https://medium.com/@mayureshrpalav/principal-component-analysis-feature-extraction-technique-3f480d7b9697

https://stats.stackexchange.com/questions/2691/making-sense-of-principal-component-analysis-eigenvectors-eigenvalues/140579#140579

https://vitalflux.com/feature-extraction-pca-python-example/

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Posted by uniqueone
,

phi(z) = 1 / (1 + e^-(alpha + beta*z)) 일 때 다양한 alpha, beta에 따른 logistic function plot.

 

 

 

 

 

import matplotlib.pyplot as plt
import numpy as np

def sigmoid1(x, alpha, beta):
    return 1.0 / (1.0 + np.exp(-(alpha + beta*x)))
z = np.arange(-7, 7, 0.1)
# phi_z = sigmoid1(alpha=3, beta=2, z)
c0 = [sigmoid1(x, alpha=0, beta=1) for x in z]
plt.plot(z, c0, label='alpha=0, beta=1', linestyle='--')
c1 = [sigmoid1(x, alpha=1, beta=1) for x in z]
plt.plot(z, c1, label='alpha=1, beta=1')
c2 = [sigmoid1(x, alpha=1, beta=2) for x in z]
plt.plot(z, c2, label='alpha=1, beta=2')
c3 = [sigmoid1(x, alpha=0, beta=2) for x in z]
plt.plot(z, c3, label='alpha=0, beta=2')
plt.axvline(0.0, color='k')
plt.ylim(-0.1, 1.1)
plt.xlabel('z')
plt.ylabel('$\phi (z)$')
# y축의 눈금과 격자선
plt.yticks([0.0, 0.5, 1.0])
ax = plt.gca()
ax.yaxis.grid(True)
plt.legend(loc='best')
plt.tight_layout()
plt.show()
Posted by uniqueone
,

https://www.facebook.com/groups/DeepAI/permalink/2577160382575423/?sfnsn=mo

Facebook 그룹

AI Deep에 멤버 22,364명이 있습니다. Promise me you’ll always remember: You’re braver than you believe, and stronger than you seem, and smarter than you think. Follow us on :...

www.facebook.com

Having an unbalanced dataset is not an uncommon problem in real world. Interested in knowing how to handle Imbalanced Classification problem? Checkout this brief introduction from team at Robofied.

#AI #ML #artificialintelligence #machinelearning #DL #deeplearning #neuralnetworks #dataanalytics #datascience #data #bigdata #technology #automation #datascientist #programming #code #coding #developer #tech #love #geek #ecommerce #design #startup #contentmarketing #branding #business #robofied

Posted by uniqueone
,

PR(Precision Recall) curve VS ROC curve에 대한 근본적인 이해를 돕는 글들이 있다. 

                       | predicted negative | predicted positive |
|-----------------|---------------------|---------------------|
| actual negative | True Negative (TN) | False Positive (FP) |
| actual positive  | False Negative (FN) | True Positive (TP) |

 

[1]과 [2]에서 설명하는 내용은 비슷하다. ROC 커브는 Recall(=Sensitivity)과  False Positive Rate(= 1-Specificity)인데, 이 둘은 모두 actual class가 1인 것중에서 1로 분류한 비율과 0인 것 중에서 1로 분류한 것의 비율을 보는 것인데, PR 커브는 Precision과 Recall(=Sensitivity)을 사용하는데, Recall은 같은데 Precision은 1로 분류된 것 중에서 실제 1의 비율을 보는 것이다. Precision은 실제클래스가 1인 샘플들의 base probability 또는 prior probability가 달라짐에 따라서 Precision이 달라진다. 반면, Recall(=Sensitivity)과 FPR은 base probability 또는 prior probability가 항상 같다. [3]에 PR, ROC를 잘 설명한 그림이 있어 복사해왔다. 

 

src: https://towardsdatascience.com/on-roc-and-precision-recall-curves-c23e9b63820c

 

위 그림을 예로들어 설명하면 (분홍색 선과 청록색 선은 threshold를 나타냄), 

Recall(=Sensitivity) : 전체 노란 샘플개수 중 분홍색 선 위쪽에 존재하는 노란 샘플개수 비율.

False Positive Rate(= 1-Specificity) : 전체 파란 샘플개수 중 분홍색 선 위쪽에 존재하는 파란 샘플개수 비율.

Precision : 분홍색 선 위쪽에 존재하는 노란색 샘플과 파란색 샘플의 합 중에서 분홍색 선 위쪽에 존재하는 노란 샘플개수 비율.

 

Recall(=Sensitivity)과 FPR은 threshold가 청록cyan색에서 분홍색 라인으로 올라가도 분자는 바뀌어도 분모(base probability 또는 prior probability)는 그대로이다. 반면, Precision은 threshold가 바뀌면 분모(base probability 또는 prior probability)가 바뀌고 분자도 바뀐다. 위와 같이 imbalanced data인 경우 threshold가 위로 올라가면서 Precision의 분모가 급격히 바뀌게 된다. 위 그림에서 클래스 1인 노란색 샘플이 파란색 샘플만큼 많은 경우를 상상해보자. 즉 파란색 샘플들은 그대로인데, 노란색 샘플들이 prediction score가 대략 [-0.3, 1] 범위에 노란 샘플들이 많이 존재하는 경우다. 그러면 threshold가 올라가면서 Precision의 분모가 급격히 변하지 않고 smooth하게 변할 것이다. 윗부분이 노란색 샘플들이 많으므로. 그러면 threshold가 위로 갈수록 분모와 분자는 거의 비슷한 값을 가질 것이다. threshold가 변함에 따라 Precision이 급격하게 변하지 않는 것이다. 따라서 Precision은 1클래스가 rare한 경우에 민감하여 분류 performance를 잘 반영해준다. 

 

 

[1] stats.stackexchange.com/questions/7207/roc-vs-precision-and-recall-curves

 

The key difference is that ROC curves will be the same no matter what the baseline probability is, but PR curves may be more useful in practice for needle-in-haystack type problems or problems where the "positive" class is more interesting than the negative class.

To show this, first let's start with a very nice way to define precision, recall and specificity. Assume you have a "positive" class called 1 and a "negative" class called 0. Y^Y^ is your estimate of the true class label YY. Then:

 

Precision            =P(Y=1|Y^=1)

Recall=Sensitivity =P(Y^=1|Y=1)

Specificity           =P(Y^=0|Y=0)

 

The key thing to note is that sensitivity/recall and specificity, which make up the ROC curve, are probabilities conditioned on the true class label. Therefore, they will be the same regardless of what P(Y=1)P(Y=1) is. Precision is a probability conditioned on your estimate of the class label and will thus vary if you try your classifier in different populations with different baseline P(Y=1). However, it may be more useful in practice if you only care about one population with known background probability and the "positive" class is much more interesting than the "negative" class. (IIRC precision is popular in the document retrieval field, where this is the case.) This is because it directly answers the question, "What is the probability that this is a real hit given my classifier says it is?".

Interestingly, by Bayes' theorem you can work out cases where specificity can be very high and precision very low simultaneously. All you have to do is assume P(Y=1) is very close to zero. In practice I've developed several classifiers with this performance characteristic when searching for needles in DNA sequence haystacks.

IMHO when writing a paper you should provide whichever curve answers the question you want answered (or whichever one is more favorable to your method, if you're cynical). If your question is: "How meaningful is a positive result from my classifier given the baseline probabilities of my problem?", use a PR curve. If your question is, "How well can this classifier be expected to perform in general, at a variety of different baseline probabilities?", go with a ROC curve.

 

[2] www.quora.com/What-is-the-difference-between-a-ROC-curve-and-a-precision-recall-curve-When-should-I-use-each

 

There is a very important difference between what a ROC curve represents vs that of a PRECISION vs RECALL curve.

Remember, a ROC curve represents a relation between sensitivity (RECALL) and False Positive Rate (NOT PRECISION). Sensitivity is the other name for recall but the False Positive Rate is not PRECISION.

Recall/Sensitivity is the measure of the probability that your estimate is 1 given all the samples whose true class label is 1. It is a measure of how many of the positive samples have been identified as being positive.

Specificity is the measure of the probability that your estimate is 0 given all the samples whose true class label is 0. It is a measure of how many of the negative samples have been identified as being negative.

PRECISION on the other hand is different. It is a measure of the probability that a sample is a true positive class given that your classifier said it is positive. It is a measure of how many of the samples predicted by the classifier as positive is indeed positive. Note here that this changes when the base probability or prior probability of the positive class changes. Which means PRECISION depends on how rare is the positive class. In other words, it is used when positive class is more interesting than the negative class.

So, if your problem involves kind of searching a needle in the haystack when for ex: the positive class samples are very rare compared to the negative classes, use a precision recall curve. Othwerwise use a ROC curve because a ROC curve remains the same regardless of the baseline prior probability of your positive class (the important rare class).

 

 

[3] towardsdatascience.com/on-roc-and-precision-recall-curves-c23e9b63820c

 
 
 
 
 
 
Posted by uniqueone
,

For the benefit of new folks in the field, here's a list of some well known and prestigious free online courses/books on Data Science and machine learning (for certificate you might have to pay though in some of these). Do add if you know any good free courses/resources in comments:

1) Machine Learning (Stanford University, Andrew Ng Course, Coursera)

This is a very respected course and widely accepted in machine learning industry.

https://www.coursera.org/learn/machine-learning

Do the assignments of this course in python as the course is in Octave language which isn't used that much in industry. Assignment solutions in Python.

https://github.com/dibgerge/ml-coursera-python-assignments

https://github.com/jdwittenauer/ipython-notebooks

2) Python Data Science Handbook (Jake VanderPlas)

Famous Python Data Science handbook topic-wise:

https://jakevdp.github.io/PythonDataScienceHandbook/

3) Fast.ai ML course (Jeremy Howard)

http://course18.fast.ai/ml

This course is designed by Kaggle 2 time competition winner Jeremy Howard and he is also chief scientist at Kaggle.

4) ML Course by IBM (edX)

https://www.edx.org/course/machine-learning-with-python-a-practical-introduct

5) Machine Learning Crash Course by Google

https://developers.google.com/machine-learning/crash-course/ml-intro

6) The Analytics Edge - Massachusetts Institute of Technology (MIT)

https://courses.edx.org/courses/course-v1:MITx+15.071x+1T2020/course/

7) Deep Learning (Andrew Ng, Coursera)

https://www.coursera.org/specializations/deep-learning

Posted by uniqueone
,

【자기주도온라인평생학습 】기초 탈출 파이썬 판다스(Python Pandas) 무료 온라인 강의 리스트 – 8개 교육과정

컴퓨터 프로그래밍에서 pandas는 데이터 조작 및 분석을 위해 Python 프로그래밍 언어로 작성된 소프트웨어 라이브러리입니다. 특히, 숫자 테이블 및 시계열 조작을위한 데이터 구조 및 조작을 제공합니다. 3 절 BSD 라이센스에 따라 공개 된 무료 소프트웨어입니다. 위키백과(영어)

Pandas 튜토리얼 1 – 데이콘 (YouTube)
: http://bitly.kr/gxleF15yLk

Pandas 팬더스 강의 기초 실습 – Minsuk Heo 허민석 (YouTube)
: http://bitly.kr/CUDIQ7q3z0E

토크ON 44차. Pandas로 하는 시계열 데이터분석 | T아카데미 – SKplanet Tacademy (YouTube)
: http://bitly.kr/Pjg0hLuDTJ

파이썬 판다스로 데이터 분석하고 엑셀로 뽑기 – Kyeongrok Kim (YouTube)
: http://bitly.kr/tzB9dPbQOJB

데이터분석/판다스 강의 – NeoWizard (YouTube)
: http://bitly.kr/EIPbWyAadFK

Python을 활용한 데이터분석 기초 | T아카데미 – SKplanet Tacademy (YouTube)
: http://bitly.kr/XXjLP2C0n6

판다스 – Sungchul Lee (YouTube)
: http://bitly.kr/aPAoUoVOPg

빅데이터 프로그래밍 - 건국대학교 이정환교수 (KOCW)
: http://bitly.kr/tmI1VuiDMA

출처 : http://bitly.kr/XMGZ6Ntol3

【자기주도온라인평생학습】 http://withmooc.com/courses/

Posted by uniqueone
,

https://towardsdatascience.com/clustering-metrics-better-than-the-elbow-method-6926e1f723a6

 

Clustering metrics better than the elbow-method

We show what metric to use for visualizing and determining an optimal number of clusters much better than the usual practice — elbow method.

 

Tirthajyoti Sarkar

Follow

Sep 7, 2019 · 7 min read

 

 

 

 

Introduction

Clustering is an important part of the machine learning pipeline for business or scientific enterprises utilizing data science. As the name suggests, it helps to identify congregations of closely related (by some measure of distance) data points in a blob of data, which, otherwise, would be difficult to make sense of.

However, mostly, the process of clustering falls under the realm of unsupervised machine learning. And unsupervised ML is a messy business.

There is no known answers or labels to guide the optimization process or measure our success against. We are in the uncharted territory.

Machine Learning for Humans, Part 3: Unsupervised Learning

Clustering and dimensionality reduction: k-means clustering, hierarchical clustering, PCA, SVD.

medium.com

 

It is, therefore, no surprise, that a popular method like k-means clustering does not seem to provide a completely satisfactory answer when we ask the basic question:

How would we know the actual number of clusters, to begin with?”

This question is critically important because of the fact that the process of clustering is often a precursor to further processing of the individual cluster data and therefore, the amount of computational resource may depend on this measurement.

In the case of a business analytics problem, repercussion could be worse. Clustering is often done for such analytics with the goal of market segmentation. It is, therefore, easily conceivable that, depending on the number of clusters, appropriate marketing personnel will be allocated to the problem. Consequently, a wrong assessment of the number of clusters can lead to sub-optimum allocation of precious resources.

Source: https://www.singlegrain.com/digital-marketing/strategists-guide-marketing-segmentation/

The elbow method

For the k-means clustering method, the most common approach for answering this question is the so-called elbow method. It involves running the algorithm multiple times over a loop, with an increasing number of cluster choice and then plotting a clustering score as a function of the number of clusters.

What is the score or metric which is being plotted for the elbow method? Why is it called the ‘elbow’ method?

A typical plot looks like following,

The score is, in general, a measure of the input data on the k-means objective function i.e. some form of intra-cluster distance relative to inner-cluster distance.

For example, in Scikit-learn’s k-means estimator, a score method is readily available for this purpose.

But look at the plot again. It can get confusing sometimes. Is it 4, 5, or 6, that we should take as the optimal number of clusters here?

Not so obvious always, is it?

Silhouette coefficient — a better metric

The Silhouette Coefficient is calculated using the mean intra-cluster distance (a) and the mean nearest-cluster distance (b) for each sample. The Silhouette Coefficient for a sample is (b - a) / max(a, b). To clarify, b is the distance between a sample and the nearest cluster that the sample is not a part of. We can compute the mean Silhouette Coefficient over all samples and use this as a metric to judge the number of clusters.

Here is a video from Orange on this topic,

 

For illustration, we generated random data points using Scikit-learn’s make_blob function over 4 feature dimensions and 5 cluster centers. So, the ground truth of the problem is that the data is generated around 5 cluster centers. However, the k-means algorithm has no way of knowing this.

The clusters can be plotted (pairwise features) as follows,

Next, we run k-means algorithm with a choice of k=2 to k=12 and calculate the default k-means score and the mean silhouette coefficient for each run and plot them side by side.

The difference could not be starker. The mean silhouette coefficient increases up to the point when k=5 and then sharply decreases for higher values of k i.e. it exhibits a clear peak at k=5, which is the number of clusters the original dataset was generated with.

Silhouette coefficient exhibits a peak characteristic as compared to the gentle bend in the elbow method. This is easier to visualize and reason with.

If we increase the Gaussian noise in the data generation process, the clusters look more overlapped.

In this case, the default k-means score with elbow method produces even more ambiguous result. In the elbow plot below, it is difficult to pick a suitable point where the real bend occurs. Is it 4, 5, 6, or 7?

But the silhouette coefficient plot still manages to maintain a peak characteristic around 4 or 5 cluster centers and make our life easier.

In fact, if you look back at the overlapped clusters, you will see that mostly there are 4 clusters visible — although the data was generated using 5 cluster centers, due to high variance, only 4 clusters are structurally showing up. Silhouette coefficient picks up this behavior easily and shows the optimal number of clusters somewhere between 4 and 5.

BIC score with a Gaussian Mixture Model

There are other excellent metrics for determining the true count of the clusters such as Bayesian Information Criterion (BIC) but they can be applied only if we are willing to extend the clustering algorithm beyond k-means to the more generalized version — Gaussian Mixture Model (GMM).

Basically, a GMM treats a blob of data as a superimposition of multiple Gaussian datasets with separate mean and variances. Then it applies the Expectation-Maximization (EM) algorithm to determine these mean and variances approximately.

Gaussian Mixture Models Explained

In the world of Machine Learning, we can distinguish two main areas: Supervised and unsupervised learning. The main…

towardsdatascience.com

 

The idea of BIC as regularization

You may recognize the term BIC from statistical analysis or your previous interaction with linear regression. BIC and AIC (Akaike Information Criterion) are used as regularization techniques in linear regression for the variable selection process.

BIC/AIC is used for regularization of linear regression model.

The idea is applied in a similar manner here for BIC. In theory, extremely complex clusters of data can also be modeled as a superimposition of a large number of Gaussian datasets. There is no restriction on how many Gaussians to use for this purpose.

But this is similar to increasing model complexity in linear regression, where a large number of features can be used to fit any arbitrarily complex data, only to lose the generalization power, as the overly complex model fits the noise instead of the true pattern.

The BIC method penalizes a large number of Gaussians and tries to keep the model simple enough to explain the given data pattern.

The BIC method penalizes a large number of Gaussians i.e. an overly complex model.

Consequently, we can run the GMM algorithm for a range of cluster centers, and the BIC score will increase up to a point, but after that will start decreasing as the penalty term grows.

Summary

Here is the Jupyter notebook for this article. Feel free to fork and play with it.

We discussed a couple of alternative options to the often-used elbow method for picking up the right number of clusters in an unsupervised learning setting using the k-means algorithm.

We showed that Silhouette coefficient and BIC score (from the GMM extension of k-means) are better alternatives to the elbow method for visually discerning the optimal number of clusters.


Ifyou have any questions or ideas to share, please contact the author at tirthajyoti[AT]gmail.com. Also, you can check the author’s GitHub repositories for other fun code snippets in Python, R, and machine learning resources. If you are, like me, passionate about machine learning/data science, please feel free to add me on LinkedIn or follow me on Twitter.

Posted by uniqueone
,

https://www.youtube.com/watch?v=7RtWlPpk348&list=PLwvr-xPygMX9TaQFW3C1UGEuD0zJF7pCk

[ 유튜브 채널 : K-ICT 빅데이터센터 ]
 

* 학습목차
1 . 파이썬 머신러닝 강의 01-1 – 머신러닝(Machine Learning) 개요
머신러닝의 정의를 소개하는 강의입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395976711
주요내용
– 머신러닝의 정의
– 머신러닝 사례
 

2 . 파이썬 머신러닝 강의 01-2 – 머신러닝을 사용하는 이유
머신러닝을 사용하는 이유를 전통적인 학습방법과 비교하여 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395948777
주요내용
– 전통적인 접근 방법
– 머신러닝 접근 방법
– 자동으로 변화에 적응
– 머신러닝을 통해 새로운 패턴을 발견
 

3 . 파이썬 머신러닝 강의 01-3 – 머신러닝 기법의 분류
머신러닝의 학습 특성에 따른 분류를 소개하는 강의입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395909366
주요내용
– 지도학습
– 비지도학습
– 강화학습
– 준지도학습
 

4 . 파이썬 머신러닝 강의 01-4 – 파이썬 아나콘다 및 Jupyter Notebook 설치 실습
머신러닝 개발환경 구성을 위한 프로그램 설치 실습 강의입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395874550
주요내용
– 파이썬과 Anaconda 설치 및 환경설정하기
– Jupyter Notebook 설정 및 실행하기
 

5 . 파이썬 머신러닝 강의 01-5 – 머신러닝 개념 및 개발환경 구성 주요정리
머신러닝 개념 및 머신러닝 개발환경 구성 강의 주요내용 정리 영상입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395846022
6 . 파이썬 머신러닝 강의 02-1 – 파이썬 NumPy 소개
파이썬의 연산처리에 활용되는 NumPy 라이브러리를 소개하는 강의입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395819694
주요내용
– NumPy(Numerical Python) 소개 및 특징
 

7 . 파이썬 머신러닝 강의 02-2 – 파이썬 NumPy 주요 함수 및 기능 정리
파이썬 NumPy 배열 객체의 기본적 활용을 위한 함수 및 기능을 정리한 강의입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395793992
주요내용
– NumPy 패키지와 배열(ndarray) 객체
– NumPy 배열 객체의 주요 속성
– 인덱싱 및 슬라이싱
– 내장 함수 사용
– 브로드캐스팅
– 부울 배열과 마스킹 연산
– 배열 객체 정렬
 

8 . 파이썬 머신러닝 강의 02-3 – 파이썬 Pandas 소개
파이썬에서 데이터 처리 및 연산에 사용되는 Pandas 라이브러리 특징을 소개하는 강의입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395765166
주요내용
– Pandas 소개 및 특징
 

9 . 파이썬 머신러닝 강의 02-4 – 파이썬 Pandas 주요 함수 및 기능 정리
파이썬 Pandas 주요 기능 및 함수 활용방법을 설명하는 강의입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395733821
주요내용
– Pandas 패키지와 Series, DataFrame 객체
– DataFrame 객체와 loc 인덱서, iloc 인덱서의 활용
– DataFrame 객체의 행과 열 조작
– DataFrame 객체의 널 값 연산
– DataFrame 객체의 조인 연산
 

10 . 파이썬 머신러닝 강의 02-5 – 파이썬 NumPy, Pandas 주요내용 정리
파이썬 NumPy, Pandas 라이브러리 주요내용 정리 영상입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395702947
 

11 . 파이썬 머신러닝 강의 03-1 – 파이썬 데이터 시각화 Matplotlib 소개 및 활용준비
파이썬 데이터 시각화 라이브러리인 Matplotlib를 소개하고 활용 준비과정을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395672528
주요내용
– matplotlib 임포트와 Jupyter Notebook에 플롯 삽입 준비
– 플롯 스타일과 설정
 

12 . 파이썬 머신러닝 강의 03-2 – 파이썬 Matplotlib의 라인 플롯 만들기
파이썬 Matplotlib 라이브러리를 활용한 라인 플롯을 그리는 방법을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395646866
주요내용
– 라인 플롯과 주요 속성 설정
– 스타일 컨텍스트 매니저를 이용한 플롯 스타일의 일시적 설정 변경
– 객체지향 인터페이스 Figure와 Axes 객체의 사용
– Matlab 스타일 pyplot 인터페이스의 사용
 

13 . 파이썬 머신러닝 강의 03-3 – 파이썬 Matplotlib의 스캐터 플롯 만들기
파이썬 Matplotlib 라이브러리를 활용한 스캐터 플롯을 그리는 방법을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395603551
주요내용
– plt.plot()을 이용한 스캐터 플롯
– plt.scatter()를 이용한 스캐터 플롯
 

14 . 파이썬 머신러닝 강의 03-4 – 파이썬 Matplotlib의 히스토그램 만들기
파이썬 Matplotlib 라이브러리를 활용한 히스토그램을 그리는 방법을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395578518
주요내용
– 데이터의 분포 형상을 식별하는 히스토그램
– 상대도수 히스토그램과 확률밀도 함수
 

15 . 파이썬 머신러닝 강의 03-5 – 파이썬 Matplotlib의 박스 플롯 만들기
파이썬 Matplotlib 라이브러리를 활용한 박스 플롯을 그리는 방법을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395553918
주요내용
– 박스 플롯과 사분위수
– 박스 플롯과 IQR
 

16 . 파이썬 머신러닝 강의 03-6 – 파이썬 Matplotlib의 이미지 플롯 만들기
파이썬 Matplotlib 라이브러리를 활용한 이미지 플롯을 그리는 방법을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395524370
주요내용
– plt.imshow() 를 이용한 이미지 플롯
 

17 . 파이썬 머신러닝 강의 03-7 – 파이썬 Matplotlib 데이터 시각화 주요 정리
파이썬 Matplotlib을 활용한 데이터 시각화의 주요내용 정리 영상입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395484060
 

18 . 파이썬 머신러닝 강의 04-1 – 머신러닝을 위한 통계학 소개
머신러닝 이해를 위한 통계학의 개념을 소개합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395443167
주요내용
– 기술 통계학
– 추론 통계학
 

19 . 파이썬 머신러닝 강의 04-2 – 머신러닝을 위한 통계학 핵심개념 – 기술통계
머신러닝 이해를 위한 기술통계 핵심 개념을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395380016
주요내용
– 모집단과 표본
– 모수와 통계량
– 평균, 중간값, 최빈값
– 분산, 표준편차, 범위, 사분위수
 

20 . 파이썬 머신러닝 강의 04-3 – 머신러닝을 위한 통계학 핵심개념 – 통계적 추론
머신러닝 이해를 위한 통계적 추론의 핵심 개념을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395348554
주요내용
– 가설 검정과 p-value
– 정규분포
– 카이제곱 독립성 검정
– ANOVA 분산 분석
 

21 . 파이썬 머신러닝 강의 04-4 – 머신러닝을 위한 통계학 핵심개념 주요 정리
머신러닝을 위한 통계학 핵심개념 주요내용 정리 영상입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395324352
 

22 . 파이썬 머신러닝 강의 05-1 – Scikit-Learn 기초 및 데이터 표현 방식 이해
파이썬의 머신러닝 라이브러리인 Scikit-Learn을 소개하고 데이터 표현방식을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395295645
주요내용
– Scikit-Learn 소개
– Scikit-Learn 데이터 표현 방식
– 특징행렬과 대상벡터의 데이터 레이아웃
– Numpy 배열을 이용한 특징 행렬(X), 대상 벡터(y)의 생성
– Pandas DataFrame을 이용한 특징 행렬(X), 대상 벡터(y)의 생성
– Bunch 객체를 이용한 특징 행렬(X), 대상 벡터(y)의 생성
 

23 . 파이썬 머신러닝 강의 05-2 – Scikit-Learn을 활용한 머신러닝 모델 만들기
Scikit-Learn을 활용하여 데이터 준비부터 모델적합, 예측, 평가에 이르는 전 과정을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395272454
주요내용
– Scikit-Learn Estimator API 기본 활용 절차
– 데이터 준비
– 모델 클래스 선택
– 모델 인스턴스 생성과 하이퍼파라미터 선택
– 특징 행렬과 대상 벡터 준비
– 모델을 데이터에 적합
– 새로운 데이터를 이용해 예측
– 모델 평가
 

24 . 파이썬 머신러닝 강의 05-3 – Scikit-Learn 활용 훈련, 테스트 데이터 분할
훈련 데이터와 테스트 데이터 분할 개념 및 Scikit-Learn의 활용방법을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395246037
주요내용
– iris 데이터 소개
– 정확도가 정말 1.0 인가?
– 훈련 데이터와 테스트 데이터의 분리
– 테스트 데이터를 이용한 모델의 성능 측정
 

25 . 파이썬 머신러닝 강의 05-4 – Scikit-Learn의 하이퍼파라미터 선택
머신러닝 학습 최적화 및 학습수준 변화 관찰을 위한 하이퍼파라미터(Hyper Parameter) 조정방법을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395220276
주요내용
– 하이퍼파라미터의 선택
 

26. 파이썬 머신러닝 강의 05-5 – 파이썬 Scikit-Learn 주요내용 정리
파이썬 Scikit-Learn 라이브러리의 주요내용 정리 영상입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395197153

 

27. 파이썬 머신러닝 강의 06-1 – 머신러닝 교차검증 개념 및 기법
머신러닝 모델의 정확한 성능 평가를 위한 교차검증 개념과 기법에 대해 설명합니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395166775

주요내용
– 교차 검증의 기본 절차와 필요성
– 교차 검증 기법

 

28. 파이썬 머신러닝 강의 06-2 – 머신러닝 최적의 모델 개념
머신러닝 최적의 모델에 대한 개념을 설명합니다.

강의자료, 소스코드 다운받기 :

주요내용
– 최적의 모델 선택 방법

 

29. 파이썬 머신러닝 강의 06-3 – 편향-분산 트레이드오프(Trade-off)
머신러닝 모델의 성능평가에 따르는 편향-분산 간 상관관계(Trade-off)를 이해하고 Scikit-Learn으로 테스트하는 방법을 설명합니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583395105344

주요내용
– 고편향 모델과 고분산 모델
– 검증 곡선
– 최적 모델

 

30. 파이썬 머신러닝 강의 06-4 – 머신러닝 학습곡선 특성
머신러닝에서 학습곡선에 영향을 주는 요인을 살펴봅니다.

강의자료, 소스코드 다운받기 :

주요내용
– 학습곡선 : 훈련집합의 크기에 따른 훈련 점수/검증 점수의 플롯

 

31. 파이썬 머신러닝 강의 06-5 – Scikit-Learn활용 그리드 서치 실습
Scikit-Learn을 활용한 그리드 서치(Grid Search) 기반 학습 최적화를 해보는 실습강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 최적의 다항식 모델을 구하기 위한 그리드 서치 모듈
– 최적 모델과 데이터 적합
– 실습1 : Scikit-Learn을 활용한 그리드 서치 구현 및 학습곡선 시각화

 

32. 파이썬 머신러닝 강의 06-6 – 특징 공학 및 데이터 변환 실습
머신러닝 모델 학습을 위한 데이터 변환 방법론인 특징 공학에 대해 알아보고, Scikit-Learn으로 실습합니다.

강의자료, 소스코드 다운받기 :

주요내용
– 범주 특징
– 텍스트 특징
– 유도 특징
– 누락 데이터 대체
– 특징 파이프라인
– 실습2 : 텍스트 데이터 변환 및 학습 적용

 

33. 파이썬 머신러닝 강의 06-7 – 교차검증, 그리드 서치, 특징 공학 주요내용 정리
협업 필터링 추천 시스템 강의 주요내용 정리 영상입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583394941714

 

34. 파이썬 머신러닝 강의 07-1 – 와인 품질 데이터 탐색
와인 품질 예측 모델 만들기 전 데이터에 대한 탐색적 분석을 진행하는 강의입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583394911307

주요내용
– 와인품질 데이터 데이터프레임의 구성
– 요약통계량

 

35. 파이썬 머신러닝 강의 07-2 – 와인 품질 데이터의 기술통계 및 통계적 검정
와인 품질 예측 모델 만들기 전 데이터에 대한 기술통계 및 통계적 검정을 진행하는 강의입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583394878451

주요내용
– 와인 종류별 품질의 기술통계량
– 와인 종류별 품질의 사분위수
– 와인 종류별 품질의 분포
– 와인 종류별 품질 차이의 통계적 유의성 검정

 

36. 파이썬 머신러닝 강의 07-3 – 와인 품질 데이터 상관 분석
와인 품질 예측 모델 만들기 전 변수 사이의 상관관계를 분석하는 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 변수들 사이의 상관계수 계산

 

37. 파이썬 머신러닝 강의 07-4 – 와인 품질 데이터 탐색적 분석 실습
와인 품질 데이터에 대한 탐색적 분석 실습 강의입니다.

강의자료, 소스코드 다운받기 : https://www.youtube.com/watch?v=g3ErwN8AKkw&list=PLwvr-xPygMX9TaQFW3C1UGEuD0zJF7pCk&index=37

주요내용
– 산점도 행렬
– 실습 1 : 와인 품질 데이터 불러오기
– 실습 1 : 기술통계
– 실습 1 : 와인종류에 대한 t-검정
– 실습 1 : 와인종류별 상관분석

 

38. 파이썬 머신러닝 강의 07-5 – 단순 선형 회귀(OLS) 개념
단순 선형 회귀(OLS)의 개념 및 수학적 정의를 설명하는 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 단순 선형 회귀의 개요
– 최소 제곱법
– 비용함수를 사용한 모델의 적합화 척도:RSS
– 단순 선형 회귀를 위한 OLS의 계산
– 단순 선형 회귀 모델의 평가

 

39. 파이썬 머신러닝 강의 07-6 – 다중 선형 회귀 개념
다중 선형 회귀의 개념 및 수학적 정의에 대해 설명하는 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 다중 선형 회귀의 개요
– 다중 선형 회귀의 벡터 정리

 

40. 파이썬 머신러닝 강의 07-7 – 다항 선형 회귀 개념
다항 선형 회귀 개념 및 수학적 정의를 설명하는 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 다항 회귀의 개요

 

41. 파이썬 머신러닝 강의 07-8 – 선형 회귀 주요내용 정리
선형 회귀(단순선형회귀, 다중선형회귀, 다항선형회귀) 주요내용 정리 영상입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583394688813

 

42. 파이썬 머신러닝 강의 08-1 – 와인 품질 예측 모델의 학습 데이터 구성
선형회귀 모델 기반 와인 품질 예측 모델 구현을 위한 와인 품질 데이터 구성을 설명합니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583394647729

주요내용
– 와인 품질 데이터의 구성
– 와인 품질 데이터 프레임 준비

 

43. 파이썬 머신러닝 강의 08-2 – 선형회귀 모델 기반 와인 품질 예측 모델 학습
선형회귀 모델 기반 와인 품질 예측 모델 학습을 위한 데이터 준비 및 학습 방법 강의입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583394616470

주요내용
– 모델 클래스와 모델 파라미터의 선택
– 특징행렬과 대상 벡터의 추출
– 훈련 데이터와 테스트 데이터의 분리
– 모델의 데이터 적합
– 모델을 새로운 데이터에 적용

 

44. 파이썬 머신러닝 강의 08-3 – 선형회귀 모델 성능 측정 및 와인 품질 예측 모델 만들기 실습
선형회귀 모델 성능 측정 및 와인 품질 예측 모델 구현 실습 강의입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583394564427

주요내용
– 선형회귀 모델의 성능 측정
– 와인 품질 예측 모델 만들기 실습

 

45. 파이썬 머신러닝 강의 08-4 – 규제 선형회귀 모델 개념 및 학습
규제가 있는 선형회귀 모델의 개념 및 학습 방법에 대한 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 규제가 없는 선형 회귀 모델의 적합
– 규제가 있는 선형 회귀 모델의 적합
– 규제가 있는 선형 회귀 모델의 필요성

 

46. 파이썬 머신러닝 강의 08-5 – 리지(Ridge)회귀 모델 개념 및 와인 품질 예측 모델 만들기 실습
리지(Ridge)회귀 모델 개념 및 와인 품질 예측 모델 구현 실습 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 리지 회귀 모델 개요
– 선형 회귀 모델과 계수의 특징
– 실습 1 : 와인 품질 예측 모델 만들기

 

47. 파이썬 머신러닝 강의 08-6 – 라쏘(Lasso)회귀 모델 기반 와인 품질 예측 모델 만들기 실습
라쏘회귀 모델의 개념 및 라쏘회귀 모델 기반 와인 품질 예측 모델 만들기 실습 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 라쏘 회귀 모델 개요
– 라쏘 회귀 모델의 계수의 특징
– 실습2 : 와인 품질 예측 모델 만들기

 

48. 파이썬 머신러닝 강의 08-7 – 규제가 있는 선형 회귀 모델 주요 정리
규제가 있는 선형 회귀 모델의 주요내용 정리 영상입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583394439968

 

49. 파이썬 머신러닝 강의 09-1 – 의사결정트리 개요
의사결정트리 개요를 설명하는 영상입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583394031209

주요내용
– 의사결정 트리의 개요

 

50. 파이썬 머신러닝 강의 09-2 – 의사결정트리 생성 개념
의사결정트리의 특징을 설명합니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583393122489

주요내용
– 의사결정 트리의 생성

 

53. 파이썬 머신러닝 강의 09-5 – 의사결정트리 기반 광고 클릭 예측 모델 학습 데이터 준비
나이브 베이즈 기반 스팸메일 필터 모델의 성능 측정 방법 강의입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583393010065

주요내용
– 온라인 광고 클릭 예측 데이터 개요
– 데이터 필드 구성
– 데이터 준비
– 원 핫 인코딩 벡터 변환

 

54. 파이썬 머신러닝 강의 09-6 – 의사결정트리 기반 광고 클릭 예측 모델의 학습
의사결정트리 기반 광고 클릭 예측 모델의 학습 방법 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 그리드 서치를 이용한 의사결정 트리 모델 학습
– 의사결정 트리 모데르이 파일 출력

 

55. 파이썬 머신러닝 강의 09-7 – 의사결정트리 기반 광고 클릭 예측 모델의 성능 측정
의사결정트리 기반 광고 클릭 예측 모델의 학습 방법 강의입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583392925252

주요내용
– 그리드 서치를 이용한 의사결정 트리 모델 학습
– 의사결정 트리 모데르이 파일 출력

 

56. 파이썬 머신러닝 강의 09-8 – 앙상블 기법 활용 광고 클릭 예측 모델 개선
앙상블 기법을 활용한 광고 클릭 예측 모델 개선 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 앙상블 학습과 배깅
– 앙상블 학습과 랜덤 프레스트
– 랜덤 포레스트의 특징 중요도
– 랜덤 포레스트의 성능 개선을 위한 주요 파라미터
– 랜덤포레스트 모델의 성능 측정 : 정확도, 혼동행렬, ROC의 AUC

 

57. 파이썬 머신러닝 강의 09-9 – 의사결정트리 주요내용 정리
분류모델 성능 평가지표 및 의사결정트리 주요내용 정리 영상입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583392863387

 

58. 파이썬 머신러닝 강의 10-1 – 로지스틱 회귀 개념
로지스틱 회귀의 개념을 설명합니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583392828821

 

59. 파이썬 머신러닝 강의 10-2 – 로지스틱 회귀의 특징
로지스틱 회귀 모델과 시그모이드 함수의 특징을 설명합니다.

강의자료, 소스코드 다운받기 :

주요내용
– 로지스틱 회귀와 분류
– 시그모이드 함수 특징

 

60. 파이썬 머신러닝 강의 10-3 – 광고 클릭 예측 모델 데이터 준비
로지스틱 회귀 기반 온라인 광고 클릭 예측 모델 학습을 위한 데이터 준비 방법 강의입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583392764053

주요내용
– 온라인 광고 클릭 예측을 위한 데이터 준비
– 원 핫 인코딩(One Hot Encoding) 벡터 변환

 

61. 파이썬 머신러닝 강의 10-4 – 로지스틱 회귀 기반 광고 클릭 예측 모델 학습
로지스틱 회귀 모델을 활용한 온라인 광고 클릭 예측 모델 학습 방법 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 그리드 서치를 이용한 로지스틱 회귀 모델 학습

 

62. 파이썬 머신러닝 강의 10-5 -로지스틱 회귀 모델 성능 측정 및 온라인 광고 클릭 예측 모델 만들기 실습
로지스틱 회귀 모델 성능 측정 및 온라인 광고 클릭 예측 모델 구현 실습 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 로지스틱 회귀 모델의 성능 측정
– 실습 1 : 온라인 광고 클릭 예측 모델 구현

 

63. 파이썬 머신러닝 강의 10-6 – 로지스틱 회귀 주요내용 정리
로지스틱 회귀 주요내용 정리 영상입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583392129801

 

64. 파이썬 머신러닝 강의 11-1 – K-최근접 이웃(KNN) 알고리즘 개념
K-최근접 이웃(KNN) 분류 알고리즘과 차원의 저주 개념을 설명합니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583392099634

주요내용
– K-최근접 이웃의 개요
– 차원의 저주

 

65. 파이썬 머신러닝 강의 11-2 – 암 진단 분류 모델 데이터 준비
K-최근접 이웃(KNN) 알고리즘을 활용한 유방암 진단 분류 모델 학습을 위한 데이터 준비 방법 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 데이터프레임의 생성
– 누락 값의 대체 및 클래스 레이블을 0과 1로 변환
– 불필요한 변수 제거 및 표준화 적용

 

66. 파이썬 머신러닝 강의 11-3 – K-최근접 이웃(KNN) 기반 암 진단 분류 모델 학습
K-최근접 이웃(KNN) 알고리즘 기반 암 진단 분류 모델 학습 강의입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583392040049

주요내용
– 머신러닝 모델 클래스 KNeighborsClassifier를 이용한 학습

 

67. 파이썬 머신러닝 강의 11-4 – K-최근접 이웃(KNN) 모델 성능 개선 및 암 진단 분류 모델 만들기 실습
K-최근접 이웃(KNN) 모델 성능 개선 및 유방암 진단 분류 모델 만들기 방법 실습 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 유방암 진단 분류를 위한 모델 성능 측정
– 유방암 진단 분류 모델의 성능 개선
– 그리드 서치를 이용한 하이퍼파라미터의 최적 값 선택
– 실습 1 : 암 진단 분류 모델 구현

 

68. 파이썬 머신러닝 강의 11-5 – K-최근접 이웃(KNN) 알고리즘 주요내용 정리
K-최근접 이웃(K-Nearest Neighbor; KNN) 알고리즘 개념 및 실습 강의의 주요내용 정리 영상입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583391983899

 

69. 파이썬 머신러닝 강의 12-1 – 나이브 베이즈 개념 및 스팸메일 필터 데이터 구축
나이브 베이즈 개념 및 스팸메일 필터 구현을 위한 데이터 전처리, 구축 방법 강의입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583391948833

주요내용
– 나이브 베이즈 분류기란?
– 베이즈 정리와 나이브 베이즈 동작 원리의 이해
– Enron 이메일 데이터 개요
– 파일 경로로 메일/스팸 기본 분류하기
– 숫자, 구두점, 사람 이름 제거
– 불용어 제거와 단어의 출현 빈도 특징을 추출

 

70. 파이썬 머신러닝 강의 12-2 – 나이브 베이즈 기반 스팸메일 필터 모델 학습
나이브 베이즈 기반 스팸메일 필터 모델 학습 방법 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 훈련 데이터와 테스트 데이터의 분리 및 변환
– 나이브 베이즈 모델 생성 및 학습

 

71. 파이썬 머신러닝 강의 12-3 – 나이브 베이즈 기반 스팸메일 필터 모델의 성능 측정
나이브 베이즈 기반 스팸메일 필터 모델의 성능 측정 방법 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 나이브 베이즈 모델의 성능 측정

 

72. 파이썬 머신러닝 강의 12-4 – 나이브 베이즈 성능 개선 및 스팸메일 필터 만들기 실습
나이브 베이즈 분류기 성능 개선 방법 및 스팸메일 필터 구현 실습 강의입니다.

강의자료, 소스코드 다운받기 :

주요내용
– 나이브베이즈 분류모델의 성능 개선
– 실습 1 : 스팸메일 필터 만들기

 

73. 파이썬 머신러닝 강의 12-5 – 나이브 베이즈 분류기 주요내용 정리
나이브 베이즈 분류기 강의 주요내용 정리 영상입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583391842770

 

74. 파이썬 머신러닝 강의 13-1 – 추천 엔진의 개념과 종류
추천 엔진의 개념과 여러 유형의 추천 시스템의 특성을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583391803590
주요내용
– 추천 엔진의 개요
– 추천 엔진의 종류
 

75. 파이썬 머신러닝 강의 13-2 – 추천 엔진 개발을 위한 협업 필터링 개념
추천 엔진에 사용되는 협업 필터링 개념과 추천 엔진 모델 평가방법을 설명합니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583391590570
주요내용
– 협업 필터링 개요
– 추천 엔진 모델의 평가
 

76. 파이썬 머신러닝 강의 13-3 – 협업 필터링을 이용한 영화 추천 엔진 데이터 준비
협업 필터링을 이용한 영화 추천 엔진 구현을 위한 데이터 준비 방법 강의입니다.
강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583391532308
주요내용
– 데이터 준비
– 데이터 프레임 구성
– 데이터 탐색
– 평가 행렬(ratings)의 생성
– 훈련 데이터와 테스트 데이터의 분리
 

77. 파이썬 머신러닝 강의 13-4 – 사용자 기반 협업 필터링을 이용한 영화 추천 엔진 만들기
사용자 기반 협업 필터링 기법의 개념과 영화 추천 엔진 적용 방법 강의입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583386776949

주요내용
– 사용자 간 유사도 행렬 생성
– 평가 예측 및 모델의 성능 측정
– 가장 비슷한 n명을 찾는 비지도 방식의 이웃 검색
– 선택된 n명의 사용자들의 평가 가중치 합을 사용한 예측 및 모델의 성능 측정

 

78. 파이썬 머신러닝 강의 13-5 – 아이템 기반 협업 필터링 활용 영화 추천 엔진 만들기 실습
아이템 기반 협업 필터링 활용 방법 및 협업 필터링 기법으로 영화 추천 엔진을 만들어보는 실습 강의입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583386604673

주요내용
– 영화 간 유사도 행렬 계산
– 평가 예측 및 모델 성능 측정
– 실습 1 : 협업 필터링 기반 영화 추천 엔진 만들기

 

79. 파이썬 머신러닝 강의 13-6 – 협업 필터링 기반 추천 시스템 주요내용 정리
협업 필터링 기반 추천 시스템 강의 주요내용 정리 영상입니다.

강의자료, 소스코드 다운받기 : https://kbig.kr/board/board.brd?boardId=movie_python&bltnNo=11583385578629

 

 

 

 

Posted by uniqueone
,

Christoper M. Bishop의 저서인 "Pattern Recognition and Machine Learning" 에 등장하는 알고리즘을 Python으로 (주피터 노트북으로) 구현한 저장소가 있군요.

저는 이 책을 보진 않았지만, 많은 분들께 유용할 수 있을것 같아서 공유드립니다. 코드는 매우 clean 한것 같네요 :)

깃헙 저장소: https://github.com/ctgk/PRML

Posted by uniqueone
,

PRML algorithms implemented in Python
Python codes implementing algorithms described in Bishop's book "Pattern Recognition and Machine Learning" : https://github.com/ctgk/PRML
#DeepLearning #MachineLearning #Python

Posted by uniqueone
,

#OpenSyllabus

세계 80개국에서 영어로 작성된 7백만 여개의 Syllabus를 수집해 각 전공별로 어떠한 전공 서적이 수업에 가장 많이 참고되었는지를 기록으로 제공해주는 Open Syllabus 사이트를 소개해드립니다.

요즘에는 학부 때와 다른 전공으로 진로를 정하고자 하시는 분들이 많이 계시지만, 비전공자라는 환경적 제약상 어떠한 서적으로 해당 전공을 심도있게 공부할 수 있는지에 대한 고민을 많이 하게 되는 것 같습니다. 리소스는 넘쳐나지만 그 반대 급부로 선택의 고민이 많아지고 있는 것이죠.

물론 모든 서적을 비교해보며 자신에게 가장 맞는 서적을 기반으로 학습하는 것이 가장 이상적일 수 있겠지만, 현실적인 타협안은 가장 많은 전공자들이 필독하는 바이블과 같은 서적을 시작점으로 학습하는 것일 것입니다. 그리고 Open Syllabus가 해당 선택을 도와줄 수 있는 좋은 지침서가 될 수 있을 것 같습니다.

기계학습과 자연어 처리를 공부하는 저의 경우, Open Syllabus에서 수학, 전산학 그리고 추가적 공부를 한다면 언어학에서 자주 사용되는 교재를 기반으로 학습을 시작해볼 수 있겠네요 !

자연어 처리와 직접적인 관련은 없는 게시물일 수 있지만 여러분의 학습 교재 선택에 있어 도움이 될 수 있는 자료인 것 같아 꼭 공유를 드리고 싶었습니다 😆

P.S 전산학의 1위 레퍼런스 교재가 피터 노빅의 인공지능 서적인 점이 재밌네요 ! 그 외 공룡책(OS), 탑다운 네트워크 서적 등도 높은 순위에 랭크되어 있습니다.

Open Syllabus: https://opensyllabus.org/results-list/fields?size=100

Posted by uniqueone
,

머신러닝 - 16. NGBoost (데이터 파수꾼 Baek Kyun Shin)

앤드류 응 교수가 속해있는 스탠퍼드 ML Group에서 최근 새로운 부스팅 알고리즘을 발표했습니다. 머신러닝의 대가인 앤드류 응 교수의 연구소에서 발표한 것이라 더 신기하고 관심이 갔습니다. 2019년 10월 9일에 발표한 것으로 따끈따끈한 신작입니다. 이름은 NGBoost(Natural Gradient Boost)입니다. Natural Gradient이기 때문에 NGBoost지만 Andrew Ng의 NG를 따서 좀 노린 것 같기도 하네요.. 엔쥐부스트라 읽어야 하지만 많은 혹자들이 앤드류 응 교수의 이름을 따서 응부스트라 읽을 것 같기도 합니다.

어쨌든 다시 본론으로 넘어가면, 지금까지 부스팅 알고리즘은 XGBoost와 LightGBM이 주름잡았습니다. 캐글의 많은 Top Ranker들이 XGBoost와 LightGBM으로 좋은 성적을 내고 있습니다. NGBoost도 그와 비슷한 명성을 갖게 될지는 차차 지켜봐야겠죠.

* 출처 : https://bkshin.tistory.com/m/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-16-NGBoost

Posted by uniqueone
,

제목: 랜덤 포레스트를 통한 주가 움직임 예측
금융 분야에서 모든 사람은 주가를 예측하는데 있어 우위를 점할 무언가를 찾고 있습니다. 머신 러닝의 세계는 주가를 정확하게 예측할 수 있는 방법을 열심히 찾고 있는데요. 일부 존재하긴 하지만 퍼포먼스를 보장하기는 어렵습니다.
이 시리즈에서는 인기 있는 머신 러닝 모델 인 랜덤 포레스트를 다룰 것입니다. 랜덤 포레스트에서는 다양한 지표를 기반으로 주식의 움직임을 예측하는 머신 러닝 모델이 될 것입니다. 시리즈의 첫 번째 부분에서는 모델 개요를 설명합니다.

Video 1: https://youtu.be/V8jZuOtckn8
Video 2: https://youtu.be/W2hXbqnrUyY
Video 3: https://youtu.be/bdEQwJ6SPnA
Video 4: https://youtu.be/E2LX_hUHMn0
Video 5: https://youtu.be/iJmteST6fP8
Video 6: https://youtu.be/ioUtR92tDAA

GitHub: https://github.com/areed1192/sigma_coding_youtube

Posted by uniqueone
,

XGBoost: An Intuitive Explanation

Ashutosh Nayak : https://towardsdatascience.com/xgboost-an-intuitive-explanation-88eb32a48eff

#MachineLearning #DataScience #RandomForest #Xgboost
#DecisionTree

Posted by uniqueone
,

Recently, I came across this excellent machine learning playlist by Prof. Arti Ramesh from SUNY Binghamton. It contains videos on all topics covered in a machine learning course. I think folks here will like it.

https://m.youtube.com/channel/UCt8HFaRhijEKuKY7qzvdA3A


Posted by uniqueone
,
The cause of poor performance in machine is either overfitting or underfitting the data

To explain it simply :
Machine ignoring - underfitting
Machine learning - Goodfitting
Machine memorising - overfitting

For more updates follow @heu.ai

#machinelearning
#underfitting
#overfitting #ai #artificialintelligenceai #computervision #deeplearning #heuai #classification #regression #algorithms #python #robotics #technology #innovation #opencv #accuracy
https://m.facebook.com/story.php?story_fbid=152372286143806&id=107932853921083&sfnsn=mo
Posted by uniqueone
,
그룹에 Mathematics for Machine Learning(MML) 책을 보고 공부하시는 분들이 많을 것 같습니다. 동명의 Coursera 강의를 듣는 분들도 계실테고요.

강의를 진행하는 4명의 강사 중 한 명인 Sam Cooper는 Coursera의 MML 강좌를 등록한 학생 수가 15만명이 넘은 것을 자축하며, 해당 강좌를 유튜브에 무료로 풀기로 결정했다는 소식을 알렸습니다. 확인해보니 Chapter.3인 PCA 재생목록은 아직 올라와있지 않긴 하지만 '선형대수'와 '다변수미적분학'은 빠짐없이 올라와있네요.

+) 검색해보니 MML 강좌가 이미 Youtube 내 다른 재생목록으로 올라와있긴 한데 해당 강좌는 Unofficial 업로드이고, 빠진 영상도 더러 있는 것 같습니다. ICL 측에서 Official하게 올려준 강좌의 도움을 받아 수학 공부를 합시다..! (영어 자막도 제공해줍니다 크)
https://www.facebook.com/groups/TensorFlowKR/permalink/1038633053144419/?sfnsn=mo
Posted by uniqueone
,
Gradient Boost와 관련 모델 정리 (하나씩 점을 찍어 나가며 / 미스터 흠시)

* 영상 :  StatQuest with Josh Starmer 의 StatQuest: Gradient Boost Part1 영상

미스터 흠시 님께서 "StatQuest with Josh Starmer 의 StatQuest: Gradient Boost Part1" 영상을 정리해주신 내용을 공유합니다.

좋은 자료 감사드리며, 사이트 소개해 드립니다.

* Decision Tree
  : https://dailyheumsi.tistory.com/113?category=815369
 
* ML Model Ensemble 과 Bagging, Boosting 개념
  : https://dailyheumsi.tistory.com/111?category=815369

* Random Forest
  : https://dailyheumsi.tistory.com/114?category=815369

* AdaBoost
  : https://dailyheumsi.tistory.com/115?category=815369

* Gradient Boost
  : https://dailyheumsi.tistory.com/116?category=815369

* Catboost
  : https://dailyheumsi.tistory.com/136
https://www.facebook.com/groups/DataScienceGroup/permalink/2765440956851110/?sfnsn=mo
Posted by uniqueone
,

https://www.facebook.com/groups/DataScienceGroup/permalink/2765440956851110/?sfnsn=mo
Posted by uniqueone
,
Machine Learning Tutorial 6 - Decision Tree Classifier and Decision Tree Regression in Python
https://www.facebook.com/groups/DataScienceGroup/permalink/2755799524481920/?sfnsn=mo
Posted by uniqueone
,
Machine Learning for Intelligent Systems: Cornell CS4780/CS5780

Lectures: https://www.youtube.com/playlist?list=PLl8OlHZGYOQ7bkVbuRthEsaLr7bONzbXS
Course Website: http://www.cs.cornell.edu/courses/cs4780/2018fa/syllabus/index.html
Find The Most Updated and Free Artificial Intelligence, Machine Learning, Data Science, Deep Learning, Mathematics, Python, R Programming Resources https://www.marktechpost.com/free-resources/
Posted by uniqueone
,
Here's the best order. In order Linear Algebra, Optimisation Theory, Probability Theory, Statistical Machine Learning, Classical Machine Learning, Computer Vision, Deep Learning

https://www.facebook.com/groups/DeepLearnng/permalink/2497747397125570/
Posted by uniqueone
,

https://www.facebook.com/groups/modulabs/permalink/2425272630871239/?sfnsn=mo

연대 수학과 이승철 교수님이 파이썬 기반으로 영상을 많이 찍어놓으셨네요. 보시면 좋을거 같아요!

머신러닝 통계학 확률론 등 동영상강의


Posted by uniqueone
,
Posted by uniqueone
,

https://www.facebook.com/groups/DeepNetGroup/permalink/896380944088122/?sfnsn=mo

For those of you interested, Stanford has an AI graduate certificate program on their website. They have the following classes:

[CS157 Computational Logic
](https://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=11730)

[CS221 Artificial Intelligence: Principles and Techniques](https://scpd.stanford.edu/search/publicCourseSearchDetails.do;jsessionid=CAF3C13A982DFC017DA382B408276A56?method=load&courseId=11747)

[CS223A Introduction to Robotics
](https://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=11750)

[CS224N Natural Language Processing with Deep Learning
](https://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=11754)

[CS224U Natural Language Understanding
](https://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=1180067)

[CS228 Probabilistic Graphical Models: Principles and Techniques
](https://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=11761)

[CS229 Machine Learning
](https://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=11763)

[CS230 Deep Learning
](https://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=82209222)

[CS231A Computer Vision: From 3D Reconstruction to Recognition
](https://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=10796915)

[CS231N Convolutional Neural Networks for Visual Recognition
](https://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=42262144)

[AA228 Decision Making Under Uncertainty
](https://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=39254289)

[CS234 Reinforcement Learning
](https://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=75632440)

[https://scpd.stanford.edu/public/category/courseCategoryCertificateProfile.do?method=load&certificateId=1226717](https://scpd.stanford.edu/public/category/courseCategoryCertificateProfile.do?method=load&certificateId=1226717)
Posted by uniqueone
,
머신러닝 공부 순서, 방법 및 강의 정리(HowUse 곰씨네)

상세한 강의 내용 및 강의 후기 등은 "HowUse 곰씨네" 홈페이지를 참조하시기를 바랍니다.

"머신러닝 공부를 시작하면서 들었던 강의와 머신러닝 공부 방법에 대해서 정리해보려고 한다. 필자도 아직 머신러닝을 마스터하려면 갈 길이 멀었지만, 그간 공부했던 경험을 토대로 머신러닝 입문자들에게 조금이나마 도움이 됐으면 하는 마음으로 적어봤다."

https://statwith.tistory.com/entry/머신러닝-공부-순서-방법-및-강의-정리HowUse-곰씨네?category=768467

******************************************************
- 통계분석연구회
- 카페 : http://cafe.daum.net/statsas
- 통계분석연구회(Statistics Analysis Study) 그룹
: https://www.facebook.com/groups/statsas
- STATWITH : http://statwith.tistory.com/
- RSS : https://statwith.tistory.com/rss

1. 앤드류 응(Andrew Ng) 머신러닝 강좌

머신러닝 공부를 시작하기 위해 구글 검색을 해보면 열이면 아홉은 Andrew Ng 교수의 머신러닝 강좌부터 볼 것을 추천하고 있다. 앤드류 응 교수는 구글 브래인팀을 이끌었던 세계적인 AI 권위자로 스탠포드 대학 교수이자 코세라 창립자이다.

참고로 코세라 강의는 월 $45를 결제하면 Specializations에 있는 모든 과목을 무제한을 들을 수 있는데, 유명한 머신러닝 강의는 대부분 코세라에 있다. 가입 후 7일 동안은 무료라서 일단 가입했다.



앤드류 응 교수의 강의는 머신러닝 기본 강의라고 보면 될 것 같다. 수업은 원하는 때에 들을 수 있었고, 다만 숙제가 있다. 숙제는 Octave(옥타브)라는 스크립트 언어로 나왔다. 개인적으로 이 강의를 보고 난 후 파이썬을 공부했는데, 파이썬을 이미 공부한 사람들은 강의 숙제를 할 때 GitHub에 파이썬 코드로 재작성된 자료를 참고하면 될 것이다.

2. 파이썬(Python) 공부

어떤 머신러닝 전문가는 머신러닝을 배울 때 코딩부터 배우지 말라고 한다. 그런데 필자는 앤드류 응 교수의 머신러닝 수업을 대강 마무리 하고 바로 파이썬 문법을 공부했다. 삽질부터 해보는 개발자여서 그런지 이론보다는 코드에 먼저 눈이 갔던 것 같다. 

파이썬은 머신러닝에 즐겨 쓰이는 프로그래밍 언어이다. R이나 Matlab 같은 것도 있는데 머신러닝 언어 중 대세는 파이썬이라고 한다.

필자는 파이썬 공부를 하기 위해 파이썬 공식 사이트로 가서 문서들을 한 번 쭉 훑어보고 유데미(Udemy)에서 제일 짧은 강의부터 찾았다. 강의 이름은 김왼손의 유기농냠냠파이썬이라는 강좌였는데 파이썬 문법 부분만 빠르게 넘겨 보았다. 여러가지 프로그래밍 언어를 다뤄봐서 그런지 몇몇 파이썬 만의 독특한 문법들 빼고는 크게 어렵지는 않았다. 개인적으로 파이썬 문법 공부는 하루면 충분했던 것 같다.

만약 이미 코세라를 구독하고 있고 프로그래밍이 처음이거나 파이썬을 기초부터 제대로 배우고 싶다면 Python 3 Programming 강의를 추천한다.

3. 그래프 모형, 인공신경망 강의

머신러닝을 공부할 때는 머신러닝 개론 -> 그래프 모형 -> 인공신경망 순으로 공부하면 된다고 한다. 그래프 모형(Graphical Model)이란 머신러닝의 근간을 이루는 모델로 변수간 상호 의존 관계를 설명한다.



그래프 모형에 대한 강의는 Daphne Koller 교수의 Probabilistic Graphical Models 강의가 가장 유명하다. 이 역시 코세라 강의이다.

다음으로 최근 머신러닝의 대세가 된 알고리즘인 인공신경망(Neural Network) & 딥러닝(Deep Learning) 공부를 했다. AI, 머신러닝, 인공신경망, 딥러닝 개념이 어렵다면 아래 그림과 같은 관계라고 보면 된다.



AI(Artificial Intelligence)란 인간의 지능을 기계로 만든 것을 의미하며, 그 구체적인 방법 중 하나가 머신러닝(Machine Learning)인 것이다. 그리고 머신러닝을 구현하는 알고리즘 중의 하나가 인공신경망(Neural Network)과 딥러닝(Deep Learning)인 것이다.

딥러닝은 인공신경망에서 발전된 형태로 심화신경망 또는 개선된 인공신경망 등으로 불리기도 한다.

인공신경망 강의 역시 앤드류 응 교수의 코세라 강의인 Neural Networks and Deep Learning 강의를 들었다. 참고로 아직 보지는 않았지만 인공신경망 쪽에서 휴고 라로첼(Hugo Larochelle)의 유튜브 강의도 괜찮다고 한다.

4. 머신러닝 실습 강의

코세라 강의를 들으면서 잘 이해되지 않은 부분도 있고, 영어로 수업이 진행되다 보니 놓치는 부분도 많았던 것 같다. 그래서 조금 더 쉽고 실용적인 강의가 없나 찾다가 추가로 유데미에 있는 머신러닝 강의를 들었다.

참고로 유데미 강의는 프로그래밍을 전혀 해보지 않은 사람은 다소 따라가기 어려워 보였다. 강의는 텐서플로우와 케라스를 통해 인공 신경망 개발 환경을 구축해보고 딥러닝을 통한 이미지, 데이터 분류 실습을 해본다. 

또한 강화학습에 대한 내용과 Apache Sparks MLlib을 통한 대량 데이터 머신러닝 처리에 대한 내용도 배울 수 있었다.

5. 추가 학습

유데미 강의는 아직도 틈틈히 수강하고 있다. 그 와중에 다른 머신러닝/딥러닝 강의를 알아보다가 홍콩과기대 김성 교수님의 강의를 보게 되었다. 뭔가 이전에 배웠던 내용을 recap 하는 차원에서 보게 되었는데 머신러닝 이론에 대해 깔금하게 정리되어 있다. 머신러닝 공부를 시작하거나 공부 중이라면 참고하면 괜찮은 강의이지 않을까 싶다.

6. 머신러닝 공부에 도움 될 만한 URL 모음

머신러닝 공부에 도움 될 만한 사이트나 자료에 대한 URL은 이곳에 계속 업데이트할 예정이다. 

- 딥러닝을 위한 기초 수학 : https://www.slideshare.net/theeluwin/ss-69596991
- 텐서플로우 연습 코드 모음 : https://github.com/golbin/TensorFlow-Tutorials
- 구글 딥러닝 강의 : https://www.udacity.com/course/deep-learning--ud730
- 머신러닝 오픈소스 튜토리얼 : https://scikit-learn.org/stable/tutorial/
- 옥스포드 머신러닝 수업자료 : https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/
- 머신러닝 용어집 : https://developers.google.com/machine-learning/glossary/?hl=ko


아리스토텔레스의 "시작이 반이다" 라는 명언이 있다. 그런데 영어 원문은 "Well begun, is half done." 이다. 한국어로 번역되면서 Well의 의미가 삭제된 것 같다. 제대로 해석하면 "좋은"시작이 반을 차지한다는 것이지 무작정 시작만 하면 된다는 의미는 아니다.

머신러닝, 딥러닝 공부 역시 마찬가지인 것 같다. 제대로 된 강의와 가이드로 공부를 시작해야 한다. 그리고 그 첫 시작은 앤드류 응 교수의 coursera 강의라고 생각한다. 아직도 머신러닝 공부를 망설이고 있다면, 일단 코세라에 접속해서 무료 강의부터 들어보자.
Posted by uniqueone
,
Learn:
1. linear algebra well (e.g. matrix math)
2. calculus to an ok level (not advanced stuff)
3. prob. theory and stats to a good level
4. theoretical computer science basics
5. to code well in Python and ok in C++

Then read and implement ML papers and *play* with stuff!  :-)

H / T : Shane Legg
Posted by uniqueone
,
Particle Swarm Optimization – A Tutorial
Dear all here is a tutorial paper on one of the optimization algorithms, is called particle swarm optimization (PSO). It is one of the most well-known optimization algorithms. In this paper:
• Introduction to PSO.
• Detailed explanation for the PSO algorithm with a good visualization.
• Two neumerical examples,
o The first example explains in a step-by-step approach how the PSO works.
o The second example explains how the PSO suffers from the local minima problem.
• Another experiment to explain fastly how the PSO can be used for optimizing some classifiers such as Support vector Machine (SVM)
• The paper includes Matlab code

Your comments are highly appreciated.

Here is the link of the pdf
https://www.academia.edu/36712310/Particle_Swarm_Optimization_-A_Tutorial
or here on researchgate
https://www.researchgate.net/publication/325575025_Particle_Swarm_Optimization-A_Tutorial?_sg=ClpsRLk5klozmA85qNOSIg2eNn_d1WDbh1yDUouQVJ7DTHmxP4DQuCK42YkJHtmQyc6U7zLXAwGAYbzWm6E03QtSGm18_jZG71IS6P9z.yGITB4_GJRnwIchxQM63qJvdswe4sGcmi9e4odn0gB2lL6nqWNdPYzTJsGI0Afo0xn-OWZMLXFIhmMTeLtuDaQ

The code is here
https://de.mathworks.com/matlabcentral/fileexchange/62998-particle-swarm-optimization--pso--tutorial
Posted by uniqueone
,
베이즈통계 기초

- 베이즈 추정에서는 정보를 순차적으로 사용할 수 있다.
- 베이즈 추정은 얻을수록 더 정확해진다.

를 정리해보았습니다. 😀

슬라이드 :
https://github.com/wonseokjung/bayesian_statistics/blob/master/베이즈통계.pdf

블로그:
https://wonseokjung.github.io//bayesian/update/Bayes-1/
Posted by uniqueone
,