알고리즘 트레이딩에서의 파이썬 - 페이지 21

 

Python에서 달러 비용 평균 전략을 쉽게 백테스트



Python에서 달러 비용 평균 전략을 쉽게 백테스트

앞으로 20분 정도면 Python에서 달러 비용 평균화 전략을 구현할 것입니다. 이 전략을 사용하면 특정 기간 동안 특정 자산 또는 지수에 대한 달러 비용 평균의 성과를 평가할 수 있습니다. 이 전략을 구현하기 위해 backtesting.py라는 도구를 사용할 것입니다. Backtesting.py는 Vectorbt 또는 Backtrader와 같은 다른 라이브러리보다 덜 위협적인 Python의 사용자 친화적인 프레임워크입니다. Python을 처음 사용하는 경우 이것은 훌륭한 옵션이 될 것입니다.

우리가 구현할 달러 비용 평균화 전략은 비교적 간단하지만 이를 확장하는 방법도 보여 드리겠습니다. 우리의 전략은 매주 월요일 또는 화요일에 고정된 금액의 특정 자산을 구매하고 데이터가 소진될 때까지 이 프로세스를 반복하는 것입니다. 시작하려면 구현을 위한 깨끗한 환경을 보장하기 위해 터미널을 열고 새로운 가상 환경을 설정하십시오. 가상 환경을 설정했으면 pip를 사용하여 백테스팅 패키지를 설치합니다.

핍 설치 백테스팅

패키지를 설치한 후 Python 파일로 진행할 수 있습니다. 필요한 모듈과 데이터를 가져와야 합니다. 백테스팅에서 백테스트 및 전략 모듈을 가져옵니다. 또한 backtesting.test에서 일부 더미 데이터, 특히 Google 데이터를 가져옵니다. 데이터 조작을 위해 pandas 모듈도 필요합니다.

이제 전략 클래스를 정의하겠습니다. 전략 클래스에서 상속되는 DCA(Dollar Cost Average)라는 클래스를 만듭니다. 이 클래스 내에서 투자하려는 고정 달러 금액을 나타내는 amount_to_invest라는 클래스 변수를 설정합니다. 처음에는 10으로 설정합니다.

다음으로 이 클래스 내에서 __init__ 및 next라는 두 가지 함수를 정의해야 합니다. __init__ 함수는 초기화 중에 호출되며 나중에 필요할 수 있는 값을 미리 계산하는 데 사용됩니다. 우리의 경우 요일을 알려주는 표시기를 만들 것입니다. 이를 위해 backtesting.py에서 제공하는 self.indicator 메서드를 사용합니다. 지표를 self.day_of_week = self.indicator(lambda x: x, self.data.close.s.dt.dayofweek)로 정의할 수 있습니다. 이 표시기는 데이터에 대한 요일 값(0-6, 여기서 월요일은 0이고 일요일은 6)의 배열을 반환합니다.

이제 거래 논리를 구현하는 다음 함수로 이동하겠습니다. 이 함수는 각 데이터 막대에 대해 호출되며 현재 데이터를 기반으로 결정을 내릴 수 있습니다. 우리의 경우 if self.day_of_week == 1:을 사용하여 요일이 1(화요일)인지 확인합니다. 화요일이면 매수 신호를 발동합니다. 구매 주문을 실행하기 위해 backtesting.py에서 제공하는 self.buy 기능을 사용합니다. 투자 금액을 자산의 현재 종가로 나누어 구매 주문의 크기를 계산할 수 있습니다. 전체 주식을 매수하기 위해 math.floor를 사용하여 결과를 내림할 수 있습니다.

소수 지분을 처리하기 위해 자산에 10 ** -6과 같은 작은 숫자를 곱하여 지분을 분할할 수 있습니다. 이렇게 하면 주식이 소액주로 분할되며, 나중에 동일한 작은 수로 나누어 실제 구매한 주식의 양으로 다시 전환할 수 있습니다.

마지막으로 백테스트를 실행하고 통계를 추출해야 합니다. 이를 위해 bt.run()을 사용하고 결과를 stats라는 변수에 할당할 수 있습니다. bt.plot()을 사용하여 결과를 플롯할 수도 있습니다.

아직 매도 논리를 구현하지 않았기 때문에 플롯은 매도 지점 없이 연속 선으로 나타납니다. 곧 수정하겠습니다. 그러나 그 전에 백 테스트 결과에서 몇 가지 통계를 추출해 보겠습니다.

이를 위해 앞에서 정의한 stats 변수를 사용합니다. 총 수익률, 연간 수익률, 최대 하락률 등과 같은 다양한 통계를 인쇄할 수 있습니다.

추가 성능 메트릭을 탐색하는 데 관심이 있는 경우 더 많은 통계를 자유롭게 추가하십시오.

이제 판매 로직 구현으로 넘어 갑시다. 우리는 달러 비용 평균화 전략을 사용하고 있기 때문에 매주 동일한 고정 달러 금액을 판매할 것입니다. 우리의 경우 금요일에 판매합니다.

여기서는 앞서 생성한 day_of_week 표시기를 사용하여 요일이 4(금요일)인지 확인합니다. 금요일이면 투자할 금액을 현재 종가로 나누어 이전에 매수한 것과 동일한 달러 금액을 매도합니다. 이를 통해 투자 금액에 맞는 적절한 수의 주식을 판매할 수 있습니다.

이제 백테스트를 실행하면 플롯에 판매 포인트가 표시되어 포지션을 매도하는 금요일을 나타냅니다.

매수/매도 날짜를 조정하거나 가격 변동에 따라 추가 조건을 구현하는 등 이 전략의 다양한 변형을 자유롭게 실험해 보십시오. 이 프레임워크를 사용하면 요구 사항에 따라 전략을 쉽게 확장하고 사용자 정의할 수 있습니다.

amount_to_invest 변수를 조정하고 다른 자산 데이터를 탐색하여 전략이 어떻게 수행되는지 확인하십시오.

이것이 파이썬에서 backtesting.py 라이브러리를 사용하여 달러 비용 평균화 전략을 구현하고 탐색하는 데 도움이 되기를 바랍니다. 추가 질문이 있으면 알려주세요!

Backtest Your Dollar Cost Average Strategy easily in Python
Backtest Your Dollar Cost Average Strategy easily in Python
  • 2022.06.29
  • www.youtube.com
We backtest a simple dollar cost averaging strategy in backtesting.py. Backtesting.py is a super easy to use framework for beginners to python or to backtest...
 

Backtesting.py의 사용자 지정 표시기 - Python 심층 분석



Backtesting.py의 사용자 지정 표시기 - Python 심층 분석

이 비디오에서는 backtesting.py 라이브러리에서 사용자 지정 지표를 만드는 과정을 살펴보겠습니다. 이 기능을 사용하면 지표를 생성하고 Python 기능을 backtesting.py 생태계와 호환되는 형식으로 변환하여 모든 거래 전략을 쉽게 백테스트할 수 있습니다.

지표 생성에 대해 자세히 알아보기 전에 backtesting.py의 대부분의 측면을 다루는 YouTube에서 무료로 제공되는 과정을 확인하는 것이 좋습니다. 이 과정은 이 비디오에서 지표 생성을 탐색할 때 도움이 될 라이브러리에 대한 높은 수준의 이해를 제공합니다.

이 비디오에서는 다양한 지표 아이디어를 다루기 위해 세 가지 다른 예에 초점을 맞출 것입니다. 첫 번째 예는 외부 Python 프로그램에서 생성된 신호를 사용하고 이를 backtesting.py에 통합하는 것과 관련됩니다. 이 접근 방식은 외부 소스에서 이미 구매 및 판매 신호가 있고 이를 백테스팅 프로세스에 통합하려는 경우에 유용합니다.

두 번째 예는 pandas-ta 라이브러리를 사용하여 각 지표에 대해 여러 값을 반환하는 방법을 보여줍니다. 특히 Bollinger Bands 표시기로 작업하고 단순한 numpy 배열 대신 하위 및 상위 밴드를 모두 포함하는 데이터 프레임을 반환하는 방법을 보여줍니다. 이 예는 여러 값을 사용하여 지표를 만드는 다양성을 강조합니다.

마지막으로 모멘텀 전략을 직접 코딩하여 순수 Python을 사용하여 사용자 지정 지표를 생성하는 방법을 보여줍니다. 이 예제는 Python 프로그래밍을 사용하여 지표를 생성하는 유연성을 보여줌으로써 지표 디자인의 무한한 가능성을 허용합니다.

예제를 따라 하려면 백테스팅, pandas 및 pandas-ta를 포함하여 필요한 라이브러리가 설치되어 있는지 확인하십시오. 이러한 라이브러리를 설치했으면 코드 예제용 Python 파일을 만듭니다.

코드의 초기 부분은 backtesting.py를 사용할 때 필요한 상용구를 설정합니다. 필수 클래스인 "backtest" 및 "strategy"를 가져오고 backtesting.py에서 Google 주식에 대한 샘플 데이터를 가져옵니다. 가져온 데이터는 datetime 인덱스와 함께 시가, 고가, 저가, 종가, 거래량을 포함한 일일 가격 데이터가 포함된 pandas 데이터 프레임입니다.

첫 번째 예에서는 외부 프로그램에서 일부 신호를 이미 생성했으며 이를 backtesting.py로 전송하려고 한다고 가정합니다. 이를 시연하기 위해 numpy를 사용하여 임의의 신호를 생성하고 Google 데이터 프레임에 추가합니다. 이러한 신호는 Python에서 프로그래밍한 모든 지표를 나타낼 수 있습니다. 여기서 -1은 매도 신호를 나타내고 0은 조치가 없음을 나타내고 1은 매수 신호를 나타냅니다.

다음으로 이전에 가져온 "Strategy" 클래스에서 상속되는 "SignalStrategy"라는 전략 클래스를 정의합니다. 이 클래스는 신호를 기반으로 구매 및 판매 논리를 구현하는 일을 담당합니다. 이 클래스에는 초기화 함수 " init "와 "next" 함수가 포함되어 있습니다.

" init " 함수에서는 이 특정 예제에서 할 일이 많지 않지만 포함하는 것이 좋습니다. "다음" 기능은 신호를 기반으로 구매 및 판매 논리가 구현되는 곳입니다.

백 테스트를 실행하기 위해 Google 데이터 프레임과 "SignalStrategy" 클래스를 전달하는 백 테스트 클래스의 인스턴스를 만듭니다. 또한 캐시 값을 10,000으로 설정했습니다. 그런 다음 백 테스트를 실행하고 결과를 "stats" 변수에 저장합니다. 마지막으로 통계를 출력하여 전략의 성과를 확인합니다.

아직 구매 및 판매 논리를 구현하지 않았기 때문에 이 시점에서 코드를 실행하면 거래가 생성되지 않습니다. 그러나 최신 신호 값을 제공하는 "next" 함수 내에서 "self.data.signal"을 사용하여 신호 값에 액세스할 수 있습니다.

구매 및 판매 논리를 구현하기 위해 현재 신호 값과 현재 위치를 확인합니다. 신호가 1(매수 신호)이고 기존 포지션이 없으면 "self.buy"를 사용하여 매수 주문을 실행합니다. 신호가 -1(매도 신호)이고 기존 롱 포지션이 있는 경우 "self.sell"을 사용하여 매도 주문을 실행합니다.

  1. 외부 신호 전략:

    • 임의의 신호를 생성하거나 외부 프로그램에서 신호를 얻습니다.
    • Strategy에서 상속하는 SignalStrategy 클래스를 정의합니다.
    • 신호를 기반으로 구매 또는 판매 주문을 실행하는 다음 방법을 구현하십시오.
    • self.buy() 및 self.sell() 메서드를 사용하여 주문을 실행합니다.
    • 데이터, 전략, 초기 자본 및 커미션으로 Backtest 개체를 인스턴스화합니다.
    • bt.run()을 사용하여 백테스트를 실행하고 결과를 분석합니다.

  2. 사용자 지정 지표에 pandas-ta 사용:

    • pandas_ta 라이브러리를 가져옵니다(pip install pandas_ta로 설치).
    • pandas_ta에서 원하는 지표 함수를 사용하여 지표를 계산합니다.
    • 계산된 지표를 데이터 프레임에 추가합니다.
    • Strategy에서 상속받은 전략 클래스를 정의합니다.
    • 지표 값에 따라 매수 또는 매도 주문을 실행하는 다음 방법을 구현하십시오.
    • 원하는 조건을 사용하여 매수 또는 매도 시기를 결정합니다.
    • 데이터, 전략, 초기 자본 및 커미션으로 Backtest 개체를 인스턴스화합니다.
    • bt.run()을 사용하여 백테스트를 실행하고 결과를 분석합니다.

GOOG와 같은 자리 표시자를 실제 데이터로 바꾸고 특정 요구 사항에 따라 전략을 사용자 지정해야 합니다.

Custom Indicators In Backtesting.py - Python Deep Dive
Custom Indicators In Backtesting.py - Python Deep Dive
  • 2022.07.30
  • www.youtube.com
Learn how to make your own custom indicators in backtesting.py. We show how you can integrate libraries like pandas-ta, ta-lib, etc. as well as write your ow...
 

Backtesting.py의 손절매



Backtesting.py의 손절매

이 비디오에서는 "backtesting.py" 라이브러리의 손절매 개념을 살펴보겠습니다. 비디오는 복잡성과 깊이가 증가하는 세 가지 예를 다루며 "backtesting.py"의 손절매에 대한 포괄적인 이해를 제공합니다. 발표자는 "backtesting.py"에 대한 사전 지식이 있다고 가정하고 이 고급 주제에 뛰어들기 전에 초보자를 위한 YouTube의 무료 과정을 시청할 것을 권장합니다.

시작하려면 터미널을 열고 "pip install backtesting" 명령을 실행하여 "backtesting.py"가 설치되어 있는지 확인하십시오. 그러면 필요한 모든 패키지가 설치됩니다. 그런 다음 새 Python 파일을 만들고 "example.py"라고 하고 "backtesting"에서 "backtest" 및 "strategy", "backtesting.test"에서 "googledale"과 같은 필수 모듈을 가져옵니다. "googledale"은 "backtesting.py"와 함께 제공되는 테스트 데이터 세트입니다.

다음으로 "strategy" 클래스에서 상속되는 "Strats"라는 클래스를 만들어 전략 클래스를 정의합니다. 두 가지 필수 기능인 " init " 및 "next"를 구현합니다. 이 시점에서 백 테스트를 실행할 준비가 되었습니다. "backtest" 함수를 사용하여 새 백 테스트 개체 "bt"를 초기화합니다. 방금 정의한 "googledale" 데이터와 전략 클래스를 전달합니다. 초기 현금 가치를 $10,000로 설정합니다. 마지막으로 "bt.run" 방법을 사용하여 백테스트를 실행하고 "bt.plot"을 사용하여 결과를 플로팅합니다.

처음에 전략 클래스는 거래 작업을 수행하지 않습니다. 간단한 손절매 예를 보여주기 위해 몇 가지 기본 구매 및 판매 논리를 추가합니다. 기존 직위가 있는 경우 어떠한 조치도 취하지 않습니다. 그러나 포지션이 없으면 "self.to_buy" 방법을 사용하여 포지션의 크기(예: 1주)를 지정하여 매수 주문을 합니다. 또한 손절매를 추가하고 이익을 얻을 것입니다. 손절매는 현재 종가보다 10단위 낮게, 테이크프로핏은 현재 종가보다 20단위 높게 설정됩니다.

백 테스트를 실행하면 많은 수의 거래가 생성됩니다. 손절매 또는 이익 실현이 실행되지 않는 한 거래가 종료되자마자 다음 바에서 새로운 거래가 시작됩니다. "backtesting.py"가 손절매와 이익 실현을 어떻게 처리하는지 이해하는 것이 중요합니다. 동일한 막대에서 손절매와 이익실현이 모두 발생하는 경우 라이브러리는 손절매가 먼저 발생한다고 가정합니다. 이 동작은 특히 상당한 차이가 있을 수 있는 일일 데이터를 처리할 때 예기치 않은 결과로 이어질 수 있습니다.

손절매를 보다 효과적으로 관리하기 위해 전략 클래스를 확장하고 "backtesting.py"에서 제공하는 "트레일링 전략"을 사용할 수 있습니다. "backtesting.lib"에서 "crossover" 및 "trailing strategy"를 포함하여 필요한 모듈을 가져옵니다. 새 전략 클래스에서 기본 "전략" 클래스 대신 "후행 전략"에서 상속합니다. "super"를 사용하여 부모 클래스의 " init " 함수를 호출하도록 " init " 함수를 재정의합니다. 그런 다음 상위 클래스의 "set_trailing_stop_loss" 함수를 사용하여 트레일링 손절매 값을 설정합니다.

비디오의 다음 섹션에서 발표자는 "후행 전략"이 작동하는 방식과 특정 요구 사항에 맞게 이를 사용자 지정하는 방법을 자세히 설명합니다. 그러나 이 섹션에서는 코드에서 "후행 전략"을 활용하는 데 초점을 맞춥니다. 상위 클래스의 " init " 함수를 호출하고 "set_trailing_stop_loss" 함수를 사용하여 백테스트에서 후행 손절매 기능을 활용할 수 있습니다.

전반적으로 비디오는 "backtesting.py"에서 손절매 구현에 대한 단계별 설명을 제공합니다. 간단한 예제와 값 10을 추적하는 것과 같은 고급 개념을 다룹니다. 이는 손절매가 가격을 10단위만큼 추적한다는 의미입니다.

이제 초기화 함수를 설정했으므로 다음 함수로 넘어갑시다. 여기에서 대부분의 거래 논리가 구현됩니다. next 함수 내에서 먼저 super().next()를 사용하여 부모 클래스의 next 함수를 호출합니다. 이렇게 하면 후행 손절매 기능이 다른 거래 논리와 함께 실행됩니다.

다음으로 트레일링 손절매를 조정하는 코드를 추가하겠습니다. 열린 포지션이 있는지 확인하기 위해 조건문을 사용할 것입니다(self.position이 None이 아님). 위치가 있으면 trailing_strategy 클래스에서 제공하는 update_trailing_sl 메서드를 사용하여 후행 손절매를 업데이트합니다. 이 방법은 현재 가격을 인수로 사용하고 이에 따라 손절매를 업데이트합니다.

Stop Losses in Backtesting.py
Stop Losses in Backtesting.py
  • 2022.08.19
  • www.youtube.com
In this video we go in-depth on how to use stop-losses in backtesting.py. We cover both static and trailing stop losses and how backtesting.py executes them ...
 

Python의 백테스트 유효성 검사(무작위로 속임)



Python의 백테스트 유효성 검사(무작위로 속임)

우리 모두는 거래 전략을 수립하고 백테스트한 다음 최종적으로 구현했을 때 예상대로 수행하지 못하는 상황에 처해 있습니다. 이러한 실망의 주된 이유 중 하나는 백테스트에 사용된 특정 과거 데이터 세트에 전략을 과적합한 것입니다. 이 비디오에서는 과대적합을 방지하고 견고한 기반이 부족하거나 임의성에 속지 않는 전략에 의존하지 않도록 하는 전략을 시연합니다.

구체적인 예를 살펴보겠습니다. Bitcoin을 자산으로 사용하여 간단한 RSI 기반 전략에 대한 백 테스트를 수행했습니다. 전략은 RSI가 높을 때 매도하고 RSI가 낮을 때 매수하는 것입니다. 백테스트 결과 비트코인이 테스트 기간 동안 15% 하락했음에도 불구하고 약 3%의 완만한 수익률을 보였습니다. 언뜻 보기에 약세장에 유망한 전략처럼 보일 수 있습니다.

그러나 전략이 지속적으로 수익성 있는 기회를 식별하는지 또는 단순히 백테스트 동안 선택한 매개변수 값으로 운이 좋았는지 결정하기 위해 다양한 시간 프레임에 걸쳐 전략의 성과를 조사하는 것이 중요합니다. 이를 달성하기 위해 저는 1년 내내 다양한 기간을 대상으로 30일 백 테스트를 여러 번 실시했습니다.

이러한 백 테스트의 수익 분포를 도표로 작성하면 전략의 효율성에 대한 통찰력을 얻을 수 있습니다. 플롯은 각 30일 창을 점으로 표시하여 해당 기간 동안 얻은 수익을 나타냅니다. 함께 제공되는 상자 그림에는 중앙값 수익, 사분위수, 최대값 및 최소값이 표시됩니다. 플롯을 분석하면 30일 동안 평균 수익률이 -8.5%라는 것이 분명해집니다. 또한, 수익 분포는 -35에서 15 사이의 난수 생성기 세트에서 예상할 수 있는 결과와 유사하게 무작위로 나타납니다. 이러한 결과는 전략이 백 테스트.

전략을 검증하고 과적합의 영향을 완화하려면 더 넓은 범위의 데이터에 대해 백테스트를 수행해야 합니다. 이를 위해 2022년 초부터 2022년 말까지 1년 전체에 대한 여러 데이터 파일을 다운로드했습니다. 이 파일을 전체 기간에 대한 1분 양초 데이터가 포함된 마스터 CSV로 결합했습니다.

유효성 검사 코드에서 확장된 데이터 세트를 수용하기 위해 약간의 조정을 했습니다. 핵심 전략은 동일하게 유지되며 RSI 기반 거래 논리에 중점을 둡니다. 그러나 데이터 전체에 걸쳐 30일 창에서 백테스트를 수행하는 루프를 도입했습니다. 각 백 테스트는 수익을 계산한 다음 추가 분석을 위해 목록에 추가합니다.

수집된 수익을 사용하여 박스 플롯을 생성함으로써 다양한 30일 기간에 걸쳐 전략 성과 분포를 시각화할 수 있습니다. 이 도표는 수익률의 변동성을 보여주고 다양한 시간 간격에 걸쳐 전략이 어떻게 수행되는지에 대한 명확한 그림을 제공합니다. 이 특정 예에서 플롯은 거의 매월 대부분의 마이너스 수익을 나타내며 전략에 일관된 수익성이 부족함을 나타냅니다.

거래 전략을 검증하고 확인하기 위한 이러한 기술은 선택한 모든 백테스팅 프레임워크에 적용할 수 있습니다. 제공된 코드는 backtesting.py 라이브러리를 활용하지만 vectorbt 또는 backtrader와 같은 다른 라이브러리에 적용할 수 있습니다. 핵심 아이디어는 전략이 다양한 시간 프레임에 걸쳐 견고함을 입증하고 단순히 특정 과거 데이터 세트에 과적합된 결과가 아니라는 것을 확인하는 것입니다.

이러한 검증 단계를 따르면 현실에 근거하지 않은 전략에 의존하거나 임의의 결과에 희생되는 위험을 줄일 수 있습니다. 거래 전략을 실행할 때 정보에 입각한 결정을 내리려면 백 테스트 성능을 넘어 다양한 시장 조건에서 전략의 효과를 고려하는 것이 필수적입니다.

백테스트 결과와 여러 시간대에 걸친 수익 분포를 분석한 후, 우리는 전략의 성과가 본질적으로 무작위라는 것을 발견했습니다. 백테스팅에 사용된 특정 기간 외에는 일관된 수익성을 제공하지 않았습니다. 이는 전략이 과대적합되고 견고성이 부족함을 나타냅니다.

과적합의 함정에 빠지지 않고 신뢰할 수 있는 거래 전략을 개발할 가능성을 높이려면 다음과 같은 몇 가지 권장 사항을 따르십시오.

  1. 충분하고 다양한 데이터 사용: 백 테스트에 다양한 시장 조건을 포괄할 수 있는 상당한 양의 과거 데이터가 통합되어 있는지 확인합니다. 이를 통해 더 넓은 범위의 시나리오를 포착하고 특정 시장 조건에 과대적합할 가능성을 줄일 수 있습니다.

  2. 여러 기간에 걸쳐 검증: 백테스팅을 위해 단일 기간에만 의존하는 대신 여러 기간에 걸쳐 전략을 테스트하십시오. 이는 다양한 시장 상황에서 성과에 대한 통찰력을 제공하고 전략이 일관된 수익성을 가지고 있는지 또는 관찰된 결과가 임의성으로 인한 것인지 식별하는 데 도움이 됩니다.

  3. Out-of-Sample Testing 구현: Out-of-Sample 테스트를 위해 과거 데이터의 일부를 예약합니다. 초기 데이터 세트에서 기본 백 테스트를 수행한 후 모델이 이전에 본 적이 없는 예약된 데이터에 대한 전략을 검증하십시오. 이것은 보이지 않는 시장 조건에 적응하는 전략의 능력을 평가하는 데 도움이 되며 성과에 대한 보다 현실적인 평가를 제공합니다.

  4. 곡선 맞춤 주의: 전략을 과거 데이터에 너무 가깝게 맞추기 위해 과도한 최적화 또는 매개변수 조정을 피하세요. 특정 데이터 패턴에 너무 맞춰진 전략은 실제 거래에서 실패할 가능성이 더 큽니다. 기록 데이터만으로 뛰어난 성능을 추구하기보다는 견고성을 목표로 하십시오.

  5. Walk-Forward 분석 고려: 정적 백테스트에만 의존하는 대신 Walk-forward 분석 사용을 고려하십시오. 여기에는 새로운 데이터를 사용할 수 있게 되면 전략을 주기적으로 다시 최적화하고 다시 테스트하는 작업이 포함됩니다. 이를 통해 전략을 지속적으로 조정하고 미세 조정하여 변화하는 시장 상황에서 성과를 개선할 수 있습니다.

  6. 통계적 유의성 테스트 사용: 통계적 테스트를 적용하여 전략 성과의 중요성을 평가합니다. 이는 관찰된 결과가 통계적으로 의미가 있는지 또는 단순히 우연에 의한 것인지를 결정하는 데 도움이 됩니다. 백테스팅에 사용되는 일반적인 통계 테스트에는 t-테스트, 부트스트랩 테스트 및 Monte Carlo 시뮬레이션이 포함됩니다.

이 가이드라인을 따르면 과거 데이터에 과도하게 맞는 전략을 개발할 위험을 줄이고 강력하고 신뢰할 수 있는 거래 접근 방식을 만들 가능성을 높일 수 있습니다.

목표는 단순히 과거 데이터에서 잘 수행되는 전략이 아니라 다양한 시장 조건에서 일관된 수익성을 입증하는 거래 전략을 개발하는 것임을 기억하십시오.

Backtest Validation in Python (Fooled By Randomness)
Backtest Validation in Python (Fooled By Randomness)
  • 2022.09.14
  • www.youtube.com
In this video we go through a method that I've found helpful for validating my backtests before I go live with a strategy. Looking at the distribution of ret...
 

머신 러닝 엔지니어를 위한 Python 패스트 트랙 소개



머신 러닝 엔지니어를 위한 Python 패스트 트랙 소개

과정 강사는 예측 모델링의 개념과 업계에서의 중요성을 소개하는 것으로 시작합니다. 예측 모델링은 예측이 이루어진 이유에 대한 설명을 제공하지 않더라도 정확한 예측을 수행할 수 있는 모델 개발에 중점을 둡니다. 강사는 코스가 특히 스프레드시트 또는 데이터베이스와 같은 표 형식 데이터에 중점을 둘 것이라고 강조합니다. 목표는 학생들이 Python의 기계 학습에 관심이 있는 개발자에서 새로운 데이터 세트 작업, 종단 간 예측 모델 개발, 기계 학습 작업을 위한 Python 및 SCIPy 라이브러리 활용에 능숙해지도록 안내하는 것입니다.

시작하기 위해 강사는 Python 구문으로 단기 집중 과정을 제공합니다. 할당에 사용되는 "등호" 기호와 같음 비교에 사용되는 "이중 등호" 기호 사이의 구분을 명확히 하면서 변수 및 할당과 같은 기본 개념을 다룹니다. 강사는 Python 코딩을 위해 Jupyter Notebook을 사용하는 방법을 시연하고 새 노트북 만들기, 라이브러리 별칭 사용, 셀 실행, 셀 복사 또는 이동과 같은 탐색 팁을 제공합니다. 또한 노트북의 자동 저장 기능과 수동 저장에 대해서도 설명합니다. 마지막으로 비디오는 커널 실행 중지에 대해 간략하게 다룹니다.

계속해서 강사는 Python 엔진 탐색을 위해 Jupyter Notebook의 도구 모음을 사용하는 방법과 Markdown을 사용하여 노트북에 주석을 추가하는 방법을 설명합니다. 비디오는 if-then-else 조건, for 루프 및 while 루프를 포함하여 필수 흐름 제어 문을 다룹니다. 이러한 문은 Python 코드 내에서 의사 결정과 반복을 허용합니다. 그런 다음 강사는 기계 학습을 위한 세 가지 중요한 데이터 구조인 튜플, 목록 및 사전을 소개합니다. 이러한 데이터 구조는 데이터를 저장하고 조작하는 효율적인 방법을 제공합니다. 또한 동영상에는 Python에서 수치 연산을 지원하는 라이브러리인 NumPy에 대한 단기 집중 과정이 포함되어 있습니다. 배열 생성, 데이터 액세스 및 배열을 사용한 산술 연산 수행에 대해 다룹니다.

비디오는 데이터 분석 및 시각화를 위해 기계 학습에서 일반적으로 사용되는 두 가지 필수 라이브러리인 Matplotlib 및 Pandas에 대해 논의합니다. Matplotlib를 사용하면 사용자가 다양한 플롯과 차트를 생성하여 데이터 시각화를 용이하게 할 수 있습니다. 반면 Pandas는 특히 시리즈 및 데이터 프레임 구조를 통해 데이터 조작 및 분석을 위한 데이터 구조 및 기능을 제공합니다. 이 비디오는 기계 학습 애플리케이션에서 가장 일반적인 형식인 CSV 파일을 로드하기 위한 Pandas의 read_csv 기능의 중요성을 강조합니다. 또한 통찰력을 얻고 기계 학습 작업을 위한 데이터를 준비하기 위해 데이터를 요약하고 플로팅하는 Pandas 기능의 유용성을 강조합니다. Python의 기술 통계는 데이터 특성과 특성을 이해하는 데 중요한 도구로 언급됩니다.

이 비디오는 기계 학습 기술을 적용하기 전에 데이터 분석을 지원할 수 있는 특정 데이터 시각화 기술에 대해 자세히 설명합니다. 히스토그램, 밀도 플롯 및 상자 플롯은 속성 분포를 관찰하고 잠재적 이상값을 식별하는 방법으로 도입되었습니다. 상관관계 행렬과 산점도 행렬은 속성 쌍 간의 관계를 식별하는 방법으로 제시됩니다. 이 비디오는 기계 학습 알고리즘을 위한 데이터를 준비하는 데 필요한 전처리 단계로 데이터 크기 조정, 표준화, 정규화 및 이진화의 중요성을 강조합니다. 적합 및 변환 방법은 데이터 전처리에 대한 일반적인 접근 방식으로 설명됩니다.

다음 주제는 기계 학습의 데이터 전처리 기술입니다. 비디오는 정규화와 표준화를 두 가지 중요한 기술로 다룹니다. 정규화에는 동일한 척도를 갖도록 속성의 크기를 다시 조정하는 것이 포함되며, 표준화에는 평균이 0이고 표준 편차가 1이 되도록 속성을 변환하는 작업이 포함됩니다. 이진 특성 또는 선명한 값을 생성하기 위해 데이터를 임계값으로 지정하는 이진화에 대해서도 설명합니다. 관련이 없거나 부분적으로 관련이 없는 기능은 모델 성능에 부정적인 영향을 미칠 수 있으므로 기능 선택의 중요성이 강조됩니다. 이 비디오는 기능 선택에 대한 하나의 통계적 접근 방식으로 단변량 선택을 소개하고 랜덤 포레스트 또는 추가 트리와 같은 결정 트리 앙상블을 활용하는 재귀적 기능 제거 및 기능 중요도 방법의 사용을 강조합니다. 주성분 분석(PCA)은 선형 대수학을 사용하여 데이터 세트를 더 작은 수의 차원으로 압축할 수 있는 데이터 축소 기술로도 논의됩니다.

이 비디오는 보이지 않는 데이터에 대한 기계 학습 알고리즘의 성능을 평가하기 위한 리샘플링 방법의 중요성을 강조합니다. 새 데이터에 대한 과적합 및 일반화 불량으로 이어질 수 있으므로 훈련에 사용된 동일한 데이터 세트에서 알고리즘을 평가하는 것에 대해 경고합니다. 훈련-테스트 분할 세트, k-겹 교차 검증, 하나의 교차 검증 제외, 반복 무작위 테스트 분할과 같은 기술은 알고리즘 성능의 신뢰할 수 있는 추정치를 얻는 방법으로 설명됩니다. 이 비디오는 분류 정확도, 대수 손실, 곡선 아래 영역, 혼동 행렬 및 분류 보고서와 같은 기계 학습 알고리즘의 다양한 성능 메트릭에 대한 논의로 마무리됩니다.

이 비디오는 머신 러닝 모델이 수행한 예측을 평가하는 데 사용되는 성능 지표를 자세히 살펴봅니다. 분류 정확도, 로그 손실(확률 평가용), 수신자 작동 특성(ROC) 곡선 아래 영역(이진 분류 문제용), 혼동 행렬(여러 클래스로 모델 정확도 평가용) 및 분류 보고서(정밀도 제공)를 다룹니다. , 리콜, F1 점수 및 각 클래스에 대한 지원). 또한 이 비디오에서는 평균 절대 오차, 평균 제곱 오차 및 R-제곱의 세 가지 일반적인 회귀 메트릭에 대해 설명합니다. Python을 사용하여 이러한 메트릭을 계산하는 방법을 설명하기 위해 실제 예제가 시연됩니다.

연사는 특정 문제에 대해 어떤 머신 러닝 알고리즘이 잘 수행되는지 확인하기 위해 스팟 검사의 개념을 소개합니다. 스팟 확인에는 여러 알고리즘을 평가하고 성능을 비교하는 작업이 포함됩니다. 이 비디오는 scikit-learn 라이브러리와 함께 Python을 사용하여 선형 및 비선형 알고리즘을 모두 포함하는 6가지 기계 학습 모델에 대한 부분 검사를 시연합니다. 연사는 모델의 확률론적 특성으로 인해 결과가 다를 수 있음을 강조합니다. 이 섹션은 회귀 머신 러닝 모델에 대한 소개로 마무리되며 뷰어는 이러한 모델을 즉시 확인하는 다음 섹션을 준비합니다.

다음으로 스피커는 보스턴 주택 가격 데이터 세트를 예로 사용하여 선형 및 비선형 기계 학습 모델을 소개합니다. 10겹 교차 검증이 포함된 테스트 도구를 사용하여 각 모델을 무작위로 확인하는 방법을 시연하고 평균 제곱 오차를 성능 지표로 사용합니다(교차 파일 점수 함수의 특성으로 인해 반전됨). 입력 변수에 대한 가우시안 분포와 출력 변수에 대한 관련성을 가정하는 선형 회귀 모델에 대해 설명합니다. 모델 복잡성을 최소화하는 선형 회귀의 변형인 Ridge 회귀에 대해서도 설명합니다. 발표자는 이 단계에서 특정 코드 구현에 얽매이기보다는 파이프라인이나 프로세스를 이해하는 것이 중요함을 강조합니다.

이 비디오는 기계 학습 문제에 대한 입력 변수를 이해하고 시각화하는 프로세스를 탐색합니다. 입력 변수의 분포를 이해하기 위해 상자 및 위스커 플롯과 히스토그램과 같은 일변량 플롯을 사용할 것을 제안합니다. 다변량 분석의 경우 산점도는 입력 변수 간의 구조적 관계를 식별하고 특정 특성 쌍 간의 높은 상관 관계를 나타내는 데 도움이 될 수 있습니다. 비디오는 또한 모델 성능을 평가하기 위해 10배 교차 검증이 포함된 테스트 장치를 사용하는 평가 프로세스에 대해 설명합니다. 최상의 모델의 정확도를 독립적으로 평가하기 위한 검증 데이터 세트 생성의 중요성이 강조됩니다. 6개의 서로 다른 기계 학습 모델을 평가하고 예측을 위해 가장 정확한 모델을 선택합니다. 분류 보고서, 혼동 행렬 및 정확도 추정은 예측을 평가하는 데 사용됩니다. 마지막으로 비디오는 정규화 회귀에 대해 다루며 회귀 모델의 복잡성을 줄이기 위한 Lasso 및 Elastic Net 모델의 구성을 강조합니다.

이 비디오는 Sonar Mines 대 Rocks 데이터 세트를 사용하여 암석에서 금속을 예측하는 것을 목표로 하는 머신 러닝의 이진 분류 문제를 소개합니다. 데이터 세트에는 클래스 특성을 포함하여 61개의 특성이 있는 208개의 인스턴스가 포함되어 있습니다. 기술 통계가 분석되어 데이터가 동일한 범위에 있지만 평균이 다르면 데이터를 표준화하는 것이 도움이 될 수 있음을 나타냅니다. 데이터에 대한 통찰력을 얻기 위해 히스토그램, 밀도 도표, 상관 관계 시각화와 같은 단일 모드 및 다중 모드 데이터 시각화를 탐색합니다. 선형 회귀, 로지스틱 회귀, 선형 판별 분석, 분류 회귀 트리, 지원 벡터 머신(SVM), 나이브 베이즈 및 k-최근접 이웃( KNN). 각 알고리즘의 정확도는 10-fold cross-validation을 사용하여 계산하고 비교합니다.

다음 부분에서 비디오는 표준화된 데이터 및 튜닝을 사용하여 다양한 기계 학습 알고리즘을 평가하는 방법에 대해 설명합니다. 표준화에는 데이터 변환이 포함되므로 각 속성의 평균은 0이고 표준 편차는 1이며 이는 특정 모델의 성능을 향상시킬 수 있습니다. 변환 과정에서 데이터 유출을 방지하기 위해 데이터를 표준화하고 교차 검증 테스트 하니스의 각 폴드에 대한 모델을 구축하는 파이프라인을 권장합니다. 이 비디오는 교육 데이터 세트의 표준화된 복사본에 대한 10배 교차 검증과 함께 그리드 검색을 사용하여 k-최근접 이웃(KNN) 및 지원 벡터 머신(SVM)에 대한 튜닝 기술을 보여줍니다. KNN과 SVM의 최적 구성을 식별하고 모델의 정확도를 평가합니다. 마지막으로 동영상에서는 KNN, 의사 결정 트리 회귀 및 SVM을 비선형 기계 학습 모델로 간략하게 설명합니다.

  • 00:00:00 코스 강사는 예측 모델링의 개념과 업계와의 관련성을 소개합니다. 데이터를 이해하려고 시도하는 통계 모델링과 달리 예측 모델링은 예측이 이루어진 이유를 설명하는 대신 더 정확한 예측을 수행하는 모델 개발에 중점을 둡니다. 이 과정은 스프레드시트 또는 데이터베이스와 같은 표 형식 데이터에 중점을 둡니다. 강사는 학생들이 파이썬 기계 학습에 관심이 있는 개발자에서 파이썬을 사용하여 종단 간 새로운 데이터 세트를 통해 작업하고 정확한 예측 모델을 개발할 수 있는 리소스와 기능을 갖추도록 안내합니다. 학생들은 파이썬으로 예측 모델링 문제의 모든 하위 작업을 완료하고, 파이썬과 SCIPy에서 새롭고 다양한 기술을 통합하고, 파이썬을 배우고, 기계 학습에 대한 도움을 받는 방법을 배웁니다. 강의는 또한 할당, 흐름 제어, 데이터 구조 및 함수를 포함하여 언어 구문에 대한 주요 세부 사항을 강조하는 Python 집중 과정을 다룹니다.

  • 00:05:00 동영상은 변수 및 할당을 포함하여 Python의 기본 구문을 다루고 할당에 대한 "같음"과 같음에 대한 "이중 같음"의 차이점을 설명합니다. 그런 다음 강사는 Python 코딩에 Jupyter Notebook을 사용하는 방법을 시연하고 새 노트북 만들기, 라이브러리 별칭 사용, 셀 실행, 셀 이동 또는 복사 방법과 같은 몇 가지 기본 탐색 팁을 설명합니다. 강사는 또한 자동 저장 기능과 노트북을 수동으로 저장하는 방법을 설명합니다. 비디오는 커널 실행을 중지하는 방법에 대한 간략한 설명으로 끝납니다.

  • 00:10:00 강사가 도구 모음을 사용하여 Python 엔진을 탐색하는 방법과 마크다운으로 노트북에 주석을 다는 방법을 설명합니다. 그런 다음 비디오는 if-then-else 조건, for 루프 및 while 루프와 같은 흐름 제어 문을 다룹니다. 그런 다음 강사는 기계 학습에 필요한 세 가지 주요 데이터 구조인 튜플, 목록 및 사전을 설명합니다. 마지막으로 비디오는 배열 생성, 데이터 액세스 및 산술에서 배열 사용을 포함하는 NumPy 집중 과정을 제공합니다.

  • 00:15:00 기계 학습을 위한 Matplotlib 및 Pandas 집중 과정이 논의됩니다. Matplotlib는 플롯과 차트를 만드는 데 활용할 수 있는 라이브러리입니다. Pandas는 시리즈 및 데이터 프레임 데이터 구조의 도움으로 데이터를 조작하고 분석할 수 있는 데이터 구조와 기능을 제공합니다. 이는 기계 학습 애플리케이션에 사용되는 가장 일반적인 형식인 csv 파일을 로드하는 데 중요합니다. 또한 Pandas read_csv와 같은 유연한 기능은 데이터를 로드하고 Pandas 데이터 프레임을 반환하여 데이터를 요약하고 플롯하여 통찰력을 끌어내고 기계 학습 작업에서 데이터를 전처리하고 처리하기 위한 아이디어를 시드하는 데 도움이 될 수 있습니다. 마지막으로, Python의 기술 통계를 통해 데이터에서 통찰력을 얻는 것은 대체할 수 없으며 데이터의 특성과 특성을 더 잘 이해하는 데 도움이 될 수 있습니다.

  • 00:20:00 Pandas DataFrame을 사용하면 hist() 함수로 히스토그램을 쉽게 만들 수 있습니다. 데이터를 시각화하는 또 다른 방법은 plot() 함수로 생성할 수 있는 밀도 플롯을 사용하는 것입니다. 밀도 플롯은 데이터의 확률 밀도 함수를 보여주고 분포 모양에 대한 통찰력을 제공할 수 있습니다. 상자 수염 그림은 데이터 분포를 시각화하고 이상값을 식별하는 데에도 유용합니다. 전반적으로 데이터 시각화는 데이터 세트의 특성을 이해하는 핵심 단계이며 적절한 기계 학습 알고리즘을 선택하는 데 도움이 될 수 있습니다.

  • 00:25:00 영상은 기계 학습 기법을 적용하기 전에 데이터 분석에 유용할 수 있는 다양한 플롯과 다이어그램을 설명합니다. 히스토그램, 밀도 플롯 및 박스 플롯은 속성의 분포를 관찰하는 데 사용되며, 상관관계 매트릭스 및 산점도 매트릭스는 속성 쌍 간의 관계를 식별하는 데 사용됩니다. 머신 러닝 알고리즘을 위한 데이터를 준비하는 데 필요한 전처리 단계로 데이터 크기 조정, 표준화, 정규화 및 이진화도 논의되며, 비디오에서는 데이터 전처리를 위한 일반적인 접근 방식으로 적합 및 변환 방법을 설명합니다.

  • 00:30:00 이 비디오는 기계 학습에서 데이터를 전처리하는 기술에 대해 설명합니다. 먼저 정규화 및 표준화 기법에 대해 설명한다. 정규화에는 동일한 척도를 갖도록 속성을 재조정하는 작업이 포함되며 표준화에는 평균이 0이고 표준 편차가 1이 되도록 속성을 변경하는 작업이 포함됩니다. 이진화 또는 임계값 데이터는 새로운 이진 속성을 추가하거나 확률을 선명한 값으로 전환하는 데 유용할 수 있는 또 다른 기술입니다. 그런 다음 관련이 없거나 부분적으로 관련이 없는 기능이 모델 성능에 부정적인 영향을 미칠 수 있으므로 기능 선택의 중요성을 설명합니다. 단변량 선택은 통계 테스트 점수를 사용하여 기능 선택에 대한 통계적 접근 방식 중 하나입니다. 랜덤 포레스트 또는 추가 트리와 같은 결정 트리의 앙상블을 사용하는 재귀적 특징 제거 및 특징 중요도 방법도 특징 선택에 유용할 수 있습니다. 마지막으로, 주성분 분석(PCA)은 선형 대수학을 사용하여 데이터 세트를 더 적은 수의 차원을 가진 압축된 형식으로 변환하는 데이터 축소 기술입니다.

  • 00:35:00 보이지 않는 데이터에 대한 기계 학습 알고리즘의 성능을 평가하기 위한 리샘플링 방법의 중요성이 설명됩니다. 훈련에 사용된 동일한 데이터 세트에서 알고리즘을 평가하면 과적합이 발생하여 훈련 데이터 세트에서는 만점을 받지만 새 데이터에서는 예측이 좋지 않을 수 있습니다. 학습-테스트 분할 세트, k-폴드 교차 검증, 1개 제외 교차 검증, 반복 무작위 테스트 분할과 같은 기법이 알고리즘 성능의 유용한 추정치를 생성하는 방법으로 제시됩니다. 이 섹션은 분류 정확도, 대수 손실, 곡선 아래 영역, 혼동 행렬 및 분류 보고서와 같은 다양한 기계 학습 알고리즘 성능 메트릭에 대한 논의로 끝납니다.

  • 00:40:00 이 동영상은 머신 러닝 모델로 만든 예측을 평가하기 위한 몇 가지 성능 메트릭을 다룹니다. 여기에는 분류 정확도, 확률 평가를 위한 로그 손실, 이진 분류 문제에 대한 ROC 곡선 아래 영역, 둘 이상의 클래스로 모델 정확도를 평가하기 위한 혼동 행렬, 정밀도, 재현율, F1 점수 및 지원을 평가하기 위한 분류 보고서가 포함됩니다. 각 클래스에 대해. 또한 이 비디오는 평균 절대 오차, 평균 제곱 오차 및 R-제곱의 세 가지 일반적인 회귀 메트릭을 다루고 Python을 사용하여 이러한 메트릭을 계산하는 방법의 예를 보여줍니다.

  • 00:45:00 발표자는 주어진 문제에 대해 어떤 기계 학습 알고리즘이 잘 수행되는지 발견하기 위해 임의 검사를 사용하는 개념을 설명합니다. 그는 scikit-learn 라이브러리와 함께 Python을 사용하여 선형 및 비선형 알고리즘을 포함한 6가지 기계 학습 모델에 대한 스팟 검사를 시연합니다. 그는 또한 모델의 확률론적 특성으로 인해 결과가 다를 수 있음을 강조합니다. 마지막으로 연사는 회귀 기계 학습 모델을 소개하고 시청자에게 이러한 모델을 확인하는 방법에 대한 다음 섹션을 준비합니다.

  • 00:50:00 연사는 보스턴 주택 가격 데이터 세트를 사용하여 선형 및 비선형 기계 학습 모델을 소개합니다. 10-폴드 교차 검증이 포함된 테스트 도구는 각 모델을 차단하는 방법을 시연하는 데 사용되며 평균 제곱 오류 수는 성능을 나타내는 데 사용되며 파일 간 점수 함수의 특성으로 인해 반전됩니다. 선형 회귀 모델은 입력 변수에 대한 가우시안 분포를 가정하고 이들이 출력 변수와 관련이 있으며 서로 높은 상관 관계가 없다고 가정합니다. 선형 회귀의 변형인 Ridge 회귀는 계수 값 또는 L2 놈의 합계 제곱 값으로 측정되는 모델의 복잡도를 최소화합니다. 연사는 파이프라인이나 프로세스를 이해하고 이 시점에서 코드를 이해하는 데 얽매이지 말 것을 강조합니다.

  • 00:55:00 이 비디오는 기계 학습 문제에 대한 입력 변수를 이해하고 시각화하는 프로세스에 대해 설명합니다. 비디오는 입력 변수의 분포를 이해하기 위해 상자 및 위스커 플롯 및 히스토그램과 같은 일변량 플롯을 사용하도록 제안합니다. 다변량 플롯의 경우 산점도는 입력 변수 간의 구조적 관계를 파악하고 특정 속성 쌍 간의 높은 상관 관계를 식별하는 데 도움이 될 수 있습니다. 그런 다음 비디오는 데이터 세트가 10개 부분으로 분할되고 서로 다른 분할에서 교육 및 테스트되는 10겹 교차 유효성 검사를 사용하여 테스트 도구를 통해 모델을 평가하는 프로세스에 대해 논의합니다. 이 비디오는 최상의 모델이 얼마나 정확한지에 대한 두 번째 및 독립적인 아이디어를 얻기 위해 검증 데이터 세트를 생성하는 것의 중요성을 강조합니다. 이 비디오는 6개의 서로 다른 기계 학습 모델을 평가하고 예측을 위해 가장 정확한 모델을 선택하고 분류 보고서, 혼동 매트릭스 및 정확도 추정을 통해 예측을 평가합니다. 이 섹션은 정규화 회귀와 회귀 모델의 복잡성을 최소화하기 위한 Lasso 및 Elastic Net 모델 구성에 대한 논의로 끝납니다.

  • 01:00:00 소나 광산 대 암석 데이터 세트를 사용하여 암석에서 금속을 예측하는 것이 목표인 기계 학습의 이진 분류 문제를 소개합니다. 데이터 세트에는 클래스 속성을 포함하여 61개의 속성이 있는 208개의 인스턴스가 포함되어 있습니다. 데이터를 분석하고 기술 통계를 살펴본 후 데이터가 동일한 범위에 있지만 다른 평균은 데이터를 표준화하는 것이 도움이 될 수 있음을 나타냅니다. 또한 히스토그램, 밀도 플롯, 속성 간의 상관 관계 시각화를 포함하여 단일 모드 및 다중 모드 데이터 시각화를 살펴봅니다. 그런 다음 검증 데이터 세트를 준비하고 선형 회귀, 로지스틱 회귀, 선형 판별 분석, 분류 회귀 트리, SVM, 나이브 베이즈 및 k-최근접 이웃을 포함한 다양한 모델의 성능에 대한 기준선을 만듭니다. 10-fold 교차 검증을 통해 계산된 각 알고리즘의 정확도를 비교합니다.

  • 01:05:00 동영상에서는 표준화된 데이터 및 튜닝을 사용하여 다양한 기계 학습 알고리즘을 평가하는 방법에 대해 설명합니다. 표준화는 각 속성의 평균이 0이고 표준 편차가 1이 되도록 데이터를 변환하여 일부 모델의 기술을 향상시킬 수 있습니다. 변환 프로세스 중 데이터 유출을 방지하려면 데이터를 표준화하고 교차 검증 테스트 도구의 각 접기에 대한 모델을 구축하는 파이프라인을 권장합니다. 이 동영상은 교육 데이터 세트의 표준화된 복사본에 대한 10배 교차 검증과 함께 그리드 검색을 사용하여 k-최근접 이웃(KNN) 및 지원 벡터 머신(SVM)을 조정하는 방법을 보여줍니다. KNN과 SVM의 최적 구성을 식별하고 모델의 정확도를 평가합니다. 마지막으로 동영상에서는 KNN, 의사 결정 트리 회귀 및 SVM을 비선형 기계 학습 모델로 간략하게 설명합니다.
A Fast Track Introduction to Python for Machine Learning Engineers
A Fast Track Introduction to Python for Machine Learning Engineers
  • 2022.03.23
  • www.youtube.com
Complete Course on Machine Learning with Python
 

기계 학습 엔지니어를 위한 응용 통계


기계 학습 엔지니어를 위한 응용 통계

비디오의 강사는 통계 분야를 소개하고 기계 학습에서 예측 모델링 문제를 다루는 작업의 중요성을 강조합니다. 그들은 통계가 간단한 요약 통계에서 시작하여 가설 테스트 및 추정 통계에 이르기까지 다양한 기술을 제공한다고 설명합니다. 이 과정은 Python의 실용적인 예제와 함께 통계 방법의 단계별 기초를 제공하도록 설계되었습니다. 기계 학습 통계의 6가지 핵심 측면을 다루고 실제 응용 프로그램에 중점을 두어 기계 학습 엔지니어에게 적합합니다.

강사는 기계 학습과 통계 간의 긴밀한 관계를 강조하고 프로그래머가 이 과정을 통해 통계 기술을 향상시키는 데 도움이 될 수 있다고 제안합니다. 그들은 통계 분야를 기술 통계와 추론 통계의 두 가지 범주로 분류합니다. 기술 통계에는 평균 및 그래픽 표현과 같은 측정을 사용하여 데이터를 요약하고 설명하는 것이 포함됩니다. 반면에 추론 통계는 샘플 데이터를 기반으로 더 큰 모집단에 대해 추론하는 데 사용됩니다.

데이터 손실, 손상 및 오류 해결을 포함하여 적절한 데이터 처리의 중요성도 강조됩니다. 그런 다음 비디오는 기계 학습 모델을 위한 데이터 준비와 관련된 다양한 단계를 자세히 설명합니다. 여기에는 표준화 및 정규화와 같은 통계적 방법을 사용한 데이터 정리, 데이터 선택, 데이터 샘플링 및 데이터 변환이 포함됩니다. 데이터 평가도 강조되며 비디오에서는 실험 설계, 데이터 리샘플링 및 모델의 기술을 추정하기 위한 모델 선택에 대해 설명합니다. 새로운 데이터를 예측하기 위해 비디오는 추정 통계를 사용하도록 권장합니다.

비디오는 통계에 사용되는 다양한 측정 척도, 즉 명목 척도, 서수 척도, 간격 척도 및 비율 척도에 대해 설명합니다. 각 척도에 적용할 수 있는 통계 기법과 머신 러닝에서 어떻게 구현할 수 있는지에 대해 설명합니다. 특히 샘플 세트로 작업할 때 모델링에서 불확실성을 이해하고 보고하는 것의 중요성이 강조됩니다. 그런 다음 비디오는 다양한 데이터 세트에서 일반적으로 관찰되는 정규 분포에 중점을 둡니다. 샘플 데이터를 생성하고 히스토그램을 사용하여 가우시안 분포에 대한 적합성을 시각적으로 평가하는 방법을 보여줍니다. 대부분의 데이터 세트에는 완벽한 가우시안 분포가 없지만 종종 가우시안과 같은 속성을 나타냅니다.

기본 가우스 분포를 노출하기 위해 세분화된 데이터 분할 방법을 선택하는 것의 중요성이 강조됩니다. 평균 및 중앙값과 같은 중심 경향의 척도는 분포 확산의 척도인 분산 및 표준 편차와 함께 탐구됩니다. 임의성은 기계 학습의 필수 도구로 논의되어 알고리즘이 더욱 강력하고 정확해집니다. 데이터 오류 및 노이즈를 포함하여 다양한 임의성의 소스에 대해 설명합니다.

비디오는 기계 학습 알고리즘이 종종 무작위성을 활용하여 더 나은 성능을 달성하고 더 최적의 모델을 생성한다고 설명합니다. 임의성을 통해 알고리즘은 다양한 가능성을 탐색하고 더 나은 데이터 매핑을 찾을 수 있습니다. 임의성의 제어 가능한 소스와 제어 불가능한 소스에 대해 논의하고, 모델 내에서 임의성을 일관되게 만드는 seed 함수의 사용에 대해 설명합니다. 비디오는 난수를 생성하기 위해 Python 임의 모듈을 사용하는 예제를 제공하고 numpy 라이브러리의 의사 난수 생성기와 표준 라이브러리의 의사 난수 생성기 간의 차이점을 강조합니다. 난수 생성기를 시드할 시기에 대한 두 가지 경우, 즉 데이터 준비 및 데이터 분할 중에도 설명합니다.

데이터를 일관되게 분할하고 알고리즘을 평가할 때 유사 난수 생성기를 사용하는 것이 강조됩니다. 비디오는 측정된 불확실성과 알고리즘의 성능을 통합하는 방식으로 모델을 평가할 것을 권장합니다. 데이터의 여러 분할에서 알고리즘을 평가하면 다양한 교육 및 테스트 데이터에 따라 성능이 어떻게 달라지는지에 대한 통찰력을 얻을 수 있습니다. 동일한 데이터 분할에서 알고리즘을 여러 번 평가하면 성능이 자체적으로 어떻게 달라지는지 이해하는 데 도움이 됩니다. 이 비디오는 또한 많은 수의 법칙과 중심 극한 정리를 소개하며 데이터가 많을수록 모델의 성능이 향상되고 샘플 크기가 증가함에 따라 평균 분포가 가우시안 분포에 가까워진다는 점을 강조합니다.

이 비디오는 주사위 굴림과 코드를 사용하여 중심 극한 정리를 보여 주며 샘플 크기가 증가함에 따라 샘플 평균이 가우시안 분포에 근접하는 방법을 보여줍니다.

이 비디오는 기계 학습 모델을 평가하고 예측과 관련된 불확실성을 이해하는 것의 중요성을 강조합니다. 분류 모델의 성능을 평가하는 데 일반적으로 사용되는 정확도, 정밀도, 재현율 및 F1 점수와 같은 평가 메트릭을 소개합니다. 비디오는 정확도가 예측의 전반적인 정확성을 측정하고, 정밀도가 모든 긍정적 예측에서 참 긍정 예측의 비율을 측정하고, 재현율이 모든 실제 긍정적 사례에서 참 긍정 예측의 비율을 측정하고, F1 점수가 정밀도와 재현율을 결합하여 다음과 같이 설명합니다. 단일 메트릭. 또한 참양성, 참음성, 거짓양성 및 거짓음성 예측의 수를 표시하여 분류 모델의 성능에 대한 보다 자세한 보기를 제공하는 혼동 행렬의 개념에 대해 설명합니다.

발표자는 Python의 scikit-learn 라이브러리를 사용하여 이러한 평가 메트릭을 계산하는 방법을 보여줍니다. 필요한 모듈을 가져오고, 데이터를 교육 및 테스트 세트로 분할하고, 분류 모델을 교육하고, 테스트 세트에서 예측하고, 정확도, 정밀도, 재현율 및 F1 점수를 사용하여 모델의 성능을 평가하는 방법을 보여줍니다. 이 비디오는 일반화 기능을 보장하기 위해 보이지 않는 데이터에 대한 모델 평가의 중요성을 강조합니다.

또한 이 비디오에서는 ROC(수신기 작동 특성) 곡선 및 곡선 아래 영역(AUC)의 개념을 이진 분류 모델에 대한 평가 메트릭으로 소개합니다. ROC 곡선은 다양한 분류 임계값에서 거짓 긍정률에 대한 참 긍정률을 표시하여 다양한 임계값에서 모델의 성능을 시각적으로 나타냅니다. AUC는 ROC 곡선 아래 영역을 나타내며 서로 다른 모델의 성능을 비교하기 위한 단일 메트릭을 제공합니다. 이 비디오는 Python의 scikit-learn 라이브러리를 사용하여 ROC 곡선을 플로팅하고 AUC를 계산하는 방법을 설명합니다.

오버피팅의 개념은 기계 학습에서 모델이 훈련 데이터에서 잘 수행되지만 보이지 않는 새로운 데이터로 일반화되지 않는 일반적인 문제로 논의됩니다. 비디오는 모델이 너무 복잡해지고 일반 모집단에서 유지되지 않는 훈련 데이터에 특정한 패턴을 학습할 때 과적합이 발생한다고 설명합니다. 이 동영상은 모델의 교육 및 테스트 성능을 비교하여 과적합을 시각화하는 방법을 보여줍니다. 과적합 모델은 훈련 오류는 낮지만 테스트 오류는 높아 일반화가 좋지 않음을 나타냅니다. 비디오는 모델의 목적 함수에 페널티 항을 추가하여 과적합을 완화하는 방법으로 릿지 회귀 및 라소 회귀와 같은 정규화 기술을 제안합니다.

기계 학습 모델의 성능 및 일반화를 평가하는 기술로 교차 검증의 개념을 도입합니다. 비디오에서는 교차 검증이 데이터를 여러 하위 집합으로 분할하고, 데이터의 일부에 대해 모델을 교육하고, 나머지 부분에 대한 성능을 평가하는 것과 관련이 있다고 설명합니다. 이 프로세스는 교육 및 테스트에 사용되는 서로 다른 하위 집합을 사용하여 여러 번 반복되며 결과는 모델 성능의 추정치를 제공하기 위해 평균화됩니다. 이 비디오는 Python의 scikit-learn 라이브러리, 특히 K-겹 교차 검증 방법을 사용하여 교차 검증을 수행하는 방법을 보여줍니다.

다음으로 동영상에서는 기능 선택의 개념과 머신 러닝의 중요성에 대해 설명합니다. 기능 선택에는 모델 성능에 기여하는 가장 관련성이 높은 기능 또는 변수를 식별하는 작업이 포함된다고 설명합니다. 이 비디오는 모델의 정확도를 개선하고 과적합을 줄이며 해석 가능성을 향상시키기 위해 정보 기능을 선택하는 것의 중요성을 강조합니다. 일변량 선택, 재귀적 특징 제거, 특징 중요도 점수와 같은 다양한 특징 선택 기술을 소개합니다. 동영상은 Python의 scikit-learn 라이브러리를 사용하여 기능 선택을 구현하는 방법을 보여줍니다.

차원 축소의 개념은 머신러닝에서 차원의 저주를 해결하는 기술로도 논의됩니다. 비디오에서는 차원 축소가 대부분의 관련 정보를 보존하면서 데이터 세트의 기능 또는 변수 수를 줄이는 것과 관련이 있다고 설명합니다. 일반적으로 사용되는 차원 축소 기술로 주성분 분석(PCA)을 소개합니다. PCA는 데이터의 최대 분산 방향을 식별하여 데이터를 저차원 공간으로 변환하는 것을 목표로 합니다. 비디오에서는 PCA가 원래 기능의 선형 조합인 주성분이라는 새로운 기능을 생성한다고 설명합니다. 이러한 주요 구성 요소는 데이터에서 가장 중요한 정보를 캡처하고 기계 학습 모델의 입력으로 사용할 수 있습니다.

이 비디오는 Python의 scikit-learn 라이브러리를 사용하여 PCA를 수행하는 방법을 보여줍니다. 필요한 모듈을 가져오고, 데이터를 표준화하고, PCA 개체를 초기화하고, PCA 모델을 데이터에 맞추고, 데이터를 저차원 공간으로 변환하는 방법을 보여줍니다. 비디오는 또한 설명된 분산 비율을 기반으로 유지할 최적의 주성분 수를 결정하는 방법을 설명합니다.

여러 개별 모델을 결합하여 기계 학습 모델의 성능을 향상시키는 기법으로 앙상블 학습(Ensemble Learning) 개념을 도입합니다. 비디오는 앙상블 학습이 각 개별 모델이 자체 예측에 기여하고 최종 예측이 투표 또는 평균 메커니즘을 기반으로 결정되는 군중의 지혜를 활용한다고 설명합니다. 이 비디오에서는 두 가지 인기 있는 앙상블 학습 방법인 배깅과 부스팅에 대해 설명합니다. 배깅은 데이터의 서로 다른 하위 집합에서 여러 모델을 교육하고 예측을 집계하는 것과 관련되며 부스팅은 모델을 순차적으로 교육하는 데 중점을 두며 각 모델은 이전 모델에서 잘못 분류된 인스턴스에 더 많은 중요성을 부여합니다.

동영상은 Python의 scikit-learn 라이브러리를 사용하여 앙상블 학습을 구현하는 방법을 보여줍니다. 배깅 및 부스팅에 필요한 모듈을 가져오고, 앙상블 모델을 초기화하고, 데이터에 피팅하고, 앙상블 모델을 사용하여 예측하는 방법을 보여줍니다. 이 비디오는 앙상블 학습이 종종 기계 학습 모델의 전반적인 성능과 견고성을 향상시킬 수 있음을 강조합니다.

마지막으로 이 비디오는 딥 러닝 및 자연어 처리(NLP)와 같은 머신 러닝의 고급 주제를 간략하게 다룹니다. 딥 러닝에는 데이터의 복잡한 패턴을 학습하기 위해 여러 계층으로 구성된 심층 신경망 훈련이 포함된다고 언급합니다. NLP는 인간의 언어를 이해하고 처리하기 위한 모델과 기술을 개발하는 데 중점을 두어 텍스트 분류, 감정 분석, 기계 번역과 같은 애플리케이션을 가능하게 합니다. 이 비디오는 기계 학습이 광범위하고 빠르게 발전하는 분야이며 추가 탐색 및 학습을 위한 수많은 응용 프로그램과 기회가 있음을 강조하며 끝을 맺습니다.

이 비디오는 모델 평가, 과적합, 정규화, 교차 검증, 기능 선택, 차원 축소, 앙상블 학습, 딥 러닝 및 NLP 소개를 포함하여 기계 학습의 필수 개념과 기술에 대한 포괄적인 개요를 제공합니다. Python과 scikit-learn 라이브러리를 사용한 실용적인 구현을 보여주므로 초보자와 기계 학습에 대한 이해를 높이고자 하는 사람들에게 유용한 리소스가 됩니다.

  • 00:00:00 강사는 기계 학습을 통한 예측 모델링 문제를 통해 통계 분야와 작업의 의미를 소개합니다. 그는 간단한 요약 통계에서 가설 테스트 및 추정 통계에 이르기까지 사용할 수 있는 통계 기법의 범위를 설명합니다. 이 과정은 기계 학습을 위한 통계의 6가지 핵심 측면을 다루는 Python의 실행 가능한 예제를 통해 통계 방법에 대한 단계별 기초를 제공하도록 설계되었습니다. 강사는 또한 이 과정이 응용 프로그램 중심이며 실제 사용 예를 제공하므로 기계 학습 엔지니어에게 적합하다고 강조합니다.

  • 00:05:00 기계 학습이 통계와 밀접한 관련이 있음을 강조하고 통계 기술을 향상시키려는 프로그래머에게 좋은 옵션으로 제공됩니다. 통계학 분야는 두 가지 범주로 분류되는데 첫 번째 범주는 기술통계이고 두 번째 범주는 추론통계이다. 기술 통계는 평균 및 그래픽 표현과 같은 측정을 사용하여 데이터를 설명하는 데 사용되는 반면 추론 통계는 더 큰 모집단에 대한 데이터에서 추론을 수행하는 데 사용됩니다. 마지막으로 데이터 손실, 손상 및 오류를 포함한 데이터 처리의 중요성이 강조됩니다.

  • 00:10:00 이 비디오는 기계 학습 모델을 위한 데이터 준비와 관련된 다양한 단계에 대해 설명합니다. 여기에는 표준화 및 정규화와 같은 통계적 방법을 사용한 데이터 정리, 데이터 선택, 데이터 샘플링 및 데이터 변환이 포함됩니다. 데이터 평가도 중요하며, 데이터 리샘플링 및 모델 선택을 포함한 실험 설계를 수행하여 모델의 기술을 추정해야 합니다. 새로운 데이터를 예측하기 위해 비디오는 추정 통계 접근 방식을 권장합니다. 또한 동영상에서는 통계에 사용되는 다양한 측정 척도와 정규 분포의 특성에 대해 설명합니다.

  • 00:15:00 화자는 명목, 서수, 간격 및 비율과 같은 다양한 측정 척도를 설명합니다. 계속해서 각 척도에 적용할 수 있는 통계와 머신러닝에서 어떻게 구현할 수 있는지에 대해 논의합니다. 우리가 거의 항상 샘플 세트로 작업한다는 점을 감안할 때 저자는 모델링과 관련된 불확실성을 이해하고 보고해야 한다고 강조합니다. 그런 다음 토론은 다양한 데이터 세트에서 매우 일반적인 샘플 정규 분포로 이동합니다. 마지막으로 샘플 데이터를 생성하고 히스토그램에 적용하여 가우시안 분포에 맞는지 확인하는 방법을 보여줍니다. 저자는 대부분의 데이터 세트가 완벽한 가우시안 분포를 갖지는 않지만 가우시안과 같은 속성을 가질 것이라고 설명합니다.

  • 00:20:00 기본 가우시안 분포를 더 잘 드러내기 위해 데이터를 분할하는 보다 세분화된 방법을 선택하는 것의 중요성이 강조되고 평균 및 중앙값과 같은 중심 경향의 척도가 탐색되며 분산 및 표준 편차도 논의됩니다. 분포의 확산 측정. 임의성은 기계 학습의 필수 도구이며 알고리즘이 보다 강력하고 정확하도록 돕는 데 사용됩니다. 데이터의 오류 및 관계를 모호하게 할 수 있는 노이즈와 같은 다양한 임의성의 원인에 대해 설명합니다.

  • 00:25:00 기계 학습 알고리즘은 더 나은 성능의 데이터 매핑을 달성하기 위해 종종 무작위성을 사용한다고 설명됩니다. 임의성을 통해 알고리즘은 보다 최적의 모델을 생성할 수 있습니다. 이 섹션에서는 제어 가능하거나 제어할 수 없는 임의성의 원인과 시드 함수를 사용하여 모델의 임의성을 일관되게 만드는 방법에 대해 설명합니다. 난수를 생성하기 위한 Python random 모듈과 벡터 및 숫자 행렬을 효율적으로 사용하기 위한 numpy 라이브러리를 사용하는 예가 제공됩니다. numpy 의사난수 생성기는 파이썬 표준 라이브러리 의사난수 생성기와 다르며 별도로 사용해야 합니다. 마지막으로 데이터 준비 및 데이터 분할을 포함하여 난수 생성기를 시드하는 두 가지 경우에 대해 설명합니다.

  • 00:30:00 알고리즘을 평가할 때 데이터를 일관되게 분할하고 의사 난수 생성기를 사용하는 것의 중요성에 대해 논의합니다. 보고된 성능에 측정된 불확실성과 알고리즘 성능이 포함되도록 모델을 평가하는 것이 좋습니다. 데이터의 여러 분할에서 알고리즘을 평가하면 교육 및 테스트 데이터의 변경 사항에 따라 알고리즘의 성능이 어떻게 달라지는지에 대한 통찰력을 얻을 수 있으며, 동일한 데이터 분할에서 알고리즘을 여러 번 평가하면 알고리즘의 성능이 단독으로 어떻게 달라지는지에 대한 통찰력을 얻을 수 있습니다. . 많은 수의 법칙과 중심 극한 정리도 논의되며, 데이터가 많을수록 모델 성능이 향상되고 샘플 크기가 증가함에 따라 평균 분포가 가우시안 분포에 가까워진다는 점을 강조합니다. .

  • 00:35:00 중앙 극한 정리는 주사위 굴림과 코드를 사용하여 시연됩니다. 데모는 샘플 크기가 증가함에 따라 샘플 평균이 가우시안 분포에 근접함을 보여줍니다. 데이터 해석은 통계에서 의미를 발견하는 데 중요합니다. 통계적 가설 테스트 또는 유의성 테스트는 기계 학습에서 데이터 분포에 대한 주장을 하거나 두 샘플을 비교하는 데 사용됩니다. 가설 0 또는 귀무 가설은 아무것도 변경되지 않았으며 통계적 가설 검정이 p-값 또는 임계값을 반환할 수 있다는 기본 가정입니다. p-값은 가설 검정의 결과를 해석하고 귀무 가설을 기각하거나 기각하지 못하는 데 사용되는 양이며 임계 값은 검정 통계량을 샘플링 분포와 비교하여 충분한 증거가 있는지 확인하는 데 사용됩니다. 귀무 가설을 기각합니다.

  • 00:40:00 통계적으로 유의미한 차이가 없다는 귀무가설과 함께 귀무가설을 기각하는 개념을 명확히 합니다. 통계 검정의 결과가 귀무 가설을 기각하면 통계적으로 유의미한 것이 있음을 의미합니다. 관측치의 그룹화 또는 밀도를 설명하고 종종 정규 분포라고도 하는 가우시안 분포에 대해서도 설명합니다. 분포는 표본 공간에 대한 관찰의 관계를 설명하는 수학적 함수입니다. 확률 밀도 함수 및 누적 밀도 함수를 포함한 밀도 함수는 분포에서 관찰 가능성을 설명하는 데 사용됩니다. 마지막으로 데이터의 표본이 무작위인지 확인하는 것의 중요성을 강조하고 정규분포 표본의 특징을 제시한다.

  • 00:45:00 발표자는 정규(가우시안) 분포, 확률 분포 함수(pdf) 및 누적 분포 함수(cdf)를 포함한 속성, 표준 편차와 관련된 68, 95 및 99.7 규칙에 대해 논의했습니다. 발표자는 정규 분포와 유사하지만 작은 표본에 사용되는 t-분포도 소개했습니다. 이어서 기사에서는 카이 제곱 분포, 적합도에 대한 사용 및 t-분포와의 관계를 소개했습니다. 마지막으로 연사는 카이 제곱 분포에 대한 통계를 계산하기 위해 Scipy에서 stats chi 2 모듈을 사용하는 방법을 시연했습니다.

  • 00:50:00 통계적 가설 검정에서 임계 값의 개념을 설명합니다. 임계값은 귀무가설이 수용되는지 또는 기각되는지를 결정하는 데 사용되는 임계값입니다. 정규 또는 가우시안 분포를 가정하고 허용 영역과 거부 영역이 있습니다. 해당 영역을 구분하는 선이 임계 값입니다. 단측 검정은 평균이 다른 평균보다 크거나 작은지 결정하지만 둘 다는 아님을 결정하는 반면, 양측 검정은 두 평균이 서로 다른지 결정합니다. 임계 값을 사용하면 신뢰도 및 공차 구간과 같은 추정 통계 또는 구간의 불확실성을 정량화할 수 있습니다.

  • 00:55:00 제품의 긍정적인 영향과 부정적인 영향을 모두 고려하는 양측 검정의 사용에 대해 논의합니다. 주어진 예는 유명 브랜드 제품에 대한 제네릭 의약품의 경우입니다. 여기서 양측 테스트는 제네릭 제품이 유명 브랜드 제품과 동등하거나 더 나쁜지를 결정할 수 있습니다. 퍼센트 포인트 함수 또는 분위수 함수의 사용도 일반적으로 사용되는 세 가지 분포인 표준 가우시안 분포, 표준 스튜던트 t 분포 및 표준 카이제곱 분포를 사용하는 예를 통해 설명하고 시연합니다. 마지막으로 상관관계의 개념과 두 변수 사이의 관계를 결정하는 상관관계의 중요성, 다중공선성의 잠재적인 문제와 이것이 알고리즘 성능에 미치는 영향에 대해 설명합니다.

  • 01:00:00 비디오는 각 변수가 가우시안 분포에서 도출되고 선형적으로 상관되는 고안된 데이터 세트를 사용하여 두 변수 사이의 강한 양의 상관관계를 보여주는 빠른 데모를 보여줍니다. 데모는 공분산 행렬을 계산하고 인쇄하여 두 변수가 동일한 방향으로 변경됨을 나타내는 양의 공분산을 보여줍니다. 그러나 통계 도구로서의 공분산의 문제는 해석하기가 어려워 Pearson의 상관 계수로 이어진다는 것입니다. 이 비디오는 Pearson의 r 상관 계수가 두 변수의 공분산을 각 샘플의 표준 편차의 곱으로 나눈 값을 계산하여 두 데이터 샘플 간의 선형 관계의 강도를 요약할 수 있는 방법과 상관 계수를 사용하여 평가할 수 있음을 설명합니다. 두 개 이상의 변수 사이의 관계.

  • 01:05:00 비디오는 데이터가 동일한 평균 및 표준 편차를 갖는 가우시안 분포에서 추출되었다고 가정하는 매개변수 통계적 유의성 테스트의 사용에 대해 설명합니다. 테스트 데이터 세트가 정의되고 독립 및 쌍 샘플에 대한 스튜던트 t-테스트와 분산 테스트 분석을 시연하는 데 사용됩니다. 비디오는 적절한 Scipy 기능을 사용하여 Python에서 이러한 테스트를 구현하는 방법을 보여줍니다. 예제는 이러한 테스트를 사용하여 서로 다른 데이터 샘플이 동일한 분포를 갖는지 확인하는 방법을 보여줍니다.

  • 01:10:00 통계학에서 효과크기의 개념은 통계적 가설 검정에서 얻은 결과를 보완할 수 있는 그룹 간 차이 또는 변수 간 연관성의 크기를 정량화하는 방법으로 논의됩니다. 효과크기 방법은 연관성(association)과 차이(difference)로 구분되며, 해석의 목적과 사용된 통계적 척도에 따라 표준화, 원래 단위 또는 단위 없음이 있을 수 있습니다. Pearson의 상관 계수는 단위가 없으며 Python의 pearsonr() 함수를 사용하여 계산할 수 있는 선형 연결을 결정하기 위해 일반적으로 사용되는 표준화된 측정입니다. 효과 크기, 표본 크기, 유의성, 검정력 수준에 영향을 받는 통계 검정력 역시 실험 설계에서 중요한 요소로 설명되며, 실험에 필요한 최소 표본 크기를 결정하기 위해 검정력 분석을 통해 추정할 수 있습니다.

  • 01:15:00 이 비디오는 예측 모델링에서 데이터 샘플링 및 데이터 리샘플링의 중요성에 대해 논의하며, 샘플링에는 모집단의 하위 집합을 선택하는 것이 포함되는 반면 리샘플링에는 정확도를 개선하고 불확실성을 정량화하기 위해 데이터 샘플에서 모집단 매개변수를 여러 번 추정하는 작업이 포함된다고 설명합니다. 이 비디오는 확률 샘플링 또는 비확률 샘플링으로 분류되는 일반적인 샘플링 방법을 설명하고 기계 학습 엔지니어가 접할 가능성이 있는 세 가지 샘플링 유형인 단순 무작위 샘플링, 체계적 샘플링 및 계층화 샘플링을 강조합니다. 또한 비디오는 샘플링 과정에서 발생할 수 있는 잠재적인 오류에 대해 경고하고 모집단에 대한 결론을 도출할 때 통계적 추론과 주의의 필요성을 강조합니다. 비디오는 계속해서 기계 학습에서 일반적으로 사용되는 샘플링 방법, 즉 k-겹 교차 검증 및 부트스트랩을 설명합니다. 후자는 모집단에 대한 강력한 추정치를 제공하지만 계산 비용이 많이 듭니다.

  • 01:20:00 부트스트랩 방법은 여러 작은 데이터 샘플의 추정치를 평균화하여 모집단에 대한 수량을 추정하는 도구로 논의됩니다. 샘플은 큰 데이터 세트에서 한 번에 하나씩 관측치를 추출하고 선택한 후 원래 샘플로 다시 반환하여 구성됩니다. 이 접근 방식을 대체 샘플링이라고 합니다. SciPy 라이브러리에서 제공되는 resample 함수는 단일 부트스트랩 샘플을 만드는 데 사용할 수 있으며 적합 모델을 평가하는 데 사용할 수 있는 외부 관찰을 쉽게 수집하는 메커니즘을 포함하지 않지만 외부 Bag 관찰은 여전히 Python list comprehension을 사용하여 수집할 수 있습니다. 또한 제한된 데이터에서 기계 학습 모델을 평가하는 데 사용되는 리샘플링 절차이므로 k-폴드 교차 검증 프로세스에 대해 설명합니다. 이 절차에는 K-폴드 사이클 학습 클래스를 사용할 수 있으며 일반적으로 사용되는 k-폴드 교차 검증의 네 가지 변형이 언급됩니다.

  • 01:25:00 연사는 기계 학습에서 리샘플링에 대한 두 가지 접근 방식인 k-겹 교차 검증과 훈련 테스트 분할에 대해 논의합니다. k-겹 교차 검증이 금본위제인 반면 훈련 테스트 분할은 이해하고 구현하기 더 쉬울 수 있습니다. 발표자는 Python에서 훈련-테스트 분할 접근 방식을 사용하는 방법을 시연하고 추정 통계의 사용에 대해서도 언급합니다. 추정 통계는 결과의 크기와 불확실성을 정량화하는 것을 목표로 하며 연구 문헌에서 점점 더 대중화되고 있습니다. 추정 통계의 세 가지 주요 클래스에는 효과 크기, 간격 추정 및 메타 분석이 포함됩니다. 연구 질문의 맥락에서 분석하고 해석하기가 더 쉽기 때문에 추정 통계로의 전환이 일어나고 있습니다.

  • 01:30:00 효과 크기 및 간격 추정을 측정하는 다양한 방법에 대해 설명합니다. 효과 크기는 표본이 함께 변화하는 정도인 연관성 또는 표본이 다른 정도인 차이를 통해 측정할 수 있습니다. 한편, 구간 추정은 관측치의 불확실성을 정량화할 수 있으며 공차 구간, 신뢰 구간 또는 예측 구간을 통해 수행할 수 있습니다. 공차 구간은 프로세스 출력의 특정 비율이 속하는 상한 및 하한을 지정하는 반면 신뢰 구간은 모집단 매개변수의 추정치에 대한 한계를 제공합니다. 마지막으로 가우시안 분포에서 추출한 관찰 샘플에 대한 공차 간격을 계산하는 방법에 대한 데모가 제공됩니다.

  • 01:35:00 추정치의 불확실성을 정량화하는 데 사용되는 구간 통계인 신뢰 구간의 개념에 대해 설명합니다. 신뢰 구간은 평균, 표준 편차 등과 같은 모집단 매개변수에 대한 범위를 제공합니다. 신뢰 구간의 값은 추정치의 불확실성을 정량화하는 능력입니다. 신뢰 구간이 작을수록 추정치가 더 정확하고 신뢰 구간이 클수록 추정치가 덜 정확합니다. 또한 분류 정확도 또는 오류의 개념에 대해 설명합니다. 이는 모델에 의해 만들어진 정확하거나 잘못된 예측의 비율을 설명하는 데 사용되는 비율입니다. 분류 오류 또는 정확도는 비율의 가우시안 분포를 가정하여 신뢰 구간을 쉽게 계산하는 데 사용할 수 있습니다.

  • 01:40:00 모델의 분류오차에 대한 신뢰구간 계산부터 신뢰구간 추정을 위한 비모수적 방법으로 부트스트랩 리샘플링 사용까지 신뢰구간의 개념을 설명합니다. 부트스트랩 리샘플링 방법에는 모집단 매개변수를 추정하기 위해 고정된 유한 데이터 세트에서 대체하여 샘플을 그리는 작업이 포함됩니다. 또한 예측 구간의 개념은 미래 관측값이 특정 신뢰 수준으로 떨어질 구간의 추정치로 도입되었으며, 이는 회귀 모델을 사용하여 예측하거나 예측하는 데 유용합니다.

  • 01:45:00 예측 간격의 개념은 이전에 관찰된 데이터가 주어졌을 때 미래의 관찰이 특정 신뢰 수준으로 떨어질 범위의 추정치로 설명됩니다. 모집단 표본 변수와 관련된 불확실성을 정량화하는 신뢰 구간과 구별됩니다. 예측 구간은 일반적으로 예측 또는 예측 모델에 사용됩니다. 이 기사는 변수 간의 관계가 산점도에서 볼 수 있는 두 개의 변수 데이터 세트에서 선형 회귀의 간단한 예를 제공합니다. 그런 다음 선형 회귀 모델을 사용하여 95% 확실성의 예측 간격으로 알려진 예상 값과 비교하여 단일 예측을 수행합니다. 예측 구간과 신뢰 구간의 차이는 물론 오류와 관련된 불확실성을 고려하기 때문에 예측 구간이 일반적으로 신뢰 구간보다 넓다는 사실도 강조됩니다.
Applied Statistics for Machine Learning Engineers
Applied Statistics for Machine Learning Engineers
  • 2022.03.24
  • www.youtube.com
Complete Course on Applied Statistics for Machine Learning Engineers. It's all the statistics you'll need to know for a career in machine learning.
 

기계 학습 엔지니어를 위한 응용 선형 대수학



기계 학습 엔지니어를 위한 응용 선형 대수학

이 영상은 기계 학습에 필수적인 미적분과 통계를 이해하기 위한 기본 빌딩 블록 역할을 하기 때문에 기계 학습 엔지니어에게 선형 대수학 학습의 중요성을 강조합니다. 선형 대수학에 대한 더 깊은 이해는 실무자에게 기계 학습 방법이 작동하는 방식에 대한 더 나은 직관을 제공하여 알고리즘을 사용자 지정하고 새로운 알고리즘을 개발할 수 있도록 합니다.

이 과정은 선형 대수학의 기초를 가르치기 위해 하향식 접근 방식을 취하며 구체적인 예와 데이터 구조를 사용하여 행렬 및 벡터에 대한 작업을 시연합니다. 선형 대수학은 행렬과 벡터의 수학으로 설명되며, 데이터 조작을 위한 언어를 제공하고 이러한 데이터 구조에 대한 작업을 통해 새로운 열이나 숫자 배열을 만들 수 있습니다. 선형 방정식 시스템을 풀기 위해 1800년대 후반에 처음 개발된 선형 대수학은 기계 학습을 이해하기 위한 핵심 전제 조건이 되었습니다.

연사는 선형 대수학을 컴퓨터에 적용하는 것과 관련된 수치 선형 대수학의 개념을 소개합니다. 여기에는 선형 대수 연산 구현과 디지털 컴퓨터에서 제한된 부동 소수점 정밀도로 작업할 때 발생하는 문제 해결이 포함됩니다. 수치 선형 대수는 기계 학습, 특히 그래픽 처리 장치(GPU)에 크게 의존하여 선형 대수 계산을 효율적으로 수행하는 딥 러닝 알고리즘에서 중요한 역할을 합니다. Fortran 기반 라이브러리를 기반으로 하는 다양한 오픈 소스 수치 선형 대수 라이브러리는 주로 Python과 같은 프로그래밍 언어와 함께 선형 대수 연산을 계산하는 데 일반적으로 사용됩니다.

특히 다변량 통계 분석, 주성분 분석 및 선형 회귀 문제 해결에서 통계에서 선형 대수학의 중요성이 강조됩니다. 비디오는 또한 선형 대수학의 한 유형인 텐서 및 텐서 미적분학을 활용한 알버트 아인슈타인의 상대성 이론과 같은 예와 함께 신호 처리, 컴퓨터 그래픽, 심지어 물리학과 같은 분야에서 선형 대수학에 대한 광범위한 응용 프로그램을 언급합니다.

이 비디오는 기계 학습 작업에서 선형 대수학의 실제 적용을 자세히 살펴봅니다. 자르기, 크기 조정 및 전단과 같은 선형 대수 연산을 사용하여 이미지를 조작하는 개념을 소개하고 이 컨텍스트에서 선형 대수학의 표기법 및 연산을 사용할 수 있는 방법을 보여줍니다. 또한 이 비디오는 범주형 변수에 대한 원-핫 인코딩이라는 널리 사용되는 인코딩 기술을 설명합니다. 기계 학습에 사용되는 주요 데이터 구조인 N차원 배열 또는 ND 배열이 도입되었으며 Python의 NumPy 라이브러리가 이러한 배열을 만들고 조작하기 위한 강력한 도구로 논의되었습니다. 비디오는 기존 어레이에서 새 어레이를 생성할 수 있는 v-stack 및 수평 스택과 같은 중요한 기능을 다룹니다.

기계 학습 데이터를 나타내는 데 일반적으로 사용되는 NumPy 배열의 데이터 조작 및 액세스에 대해 설명합니다. 비디오는 배열 함수를 사용하여 1차원 목록을 배열로 변환하고 목록 목록을 사용하여 2차원 데이터 배열을 만드는 방법을 보여줍니다. 또한 슬라이싱 및 네거티브 인덱싱을 위한 콜론 연산자 사용을 포함하여 NumPy 배열의 인덱싱 및 슬라이싱 작업을 다룹니다. 기계 학습에서 입력 및 출력 변수를 지정할 때 슬라이싱의 중요성이 강조됩니다.

기계 학습에서 다차원 데이터 세트로 작업하는 기술은 비디오에서 논의됩니다. 1차원 슬라이싱으로 시작하여 2차원 슬라이싱으로 진행하며 데이터를 교육 및 테스트를 위한 입력 및 출력 값으로 분리합니다. 배열 재구성을 다루며 하나 이상의 시간 단계 및 기능의 여러 샘플이 필요한 알고리즘을 위해 1차원 배열을 하나의 열이 있는 2차원 배열로 재구성하고 2차원 데이터를 3차원 배열로 변환하는 방법을 설명합니다. 배열 브로드캐스팅의 개념이 도입되어 다양한 크기의 배열을 산술 연산에 사용할 수 있으므로 다양한 크기의 데이터 세트를 효과적으로 처리할 수 있습니다.

이 비디오는 또한 NumPy의 배열 산술의 한계, 특히 산술 연산은 동일한 차원과 동일한 크기의 차원을 가진 배열에서만 수행할 수 있다는 점을 다룹니다. 그러나 이 제한은 NumPy의 내장 브로드캐스팅 기능으로 극복됩니다. 이 기능은 마지막 불일치 차원을 따라 더 작은 배열을 복제하여 모양과 크기가 다른 배열 간의 산술 연산을 가능하게 합니다. 영상은 스칼라와 1차원 배열, 2차원 배열 속의 스칼라, 2차원 배열 속의 1차원 배열 등 방송의 세 가지 예를 제공한다. 브로드캐스팅은 배열의 각 차원의 모양이 같거나 그 중 하나의 차원 크기가 1인 경우에만 산술을 수행할 수 있다는 엄격한 규칙을 따릅니다.

계속해서 화자는 스칼라라고 하는 하나 이상의 값의 튜플인 벡터의 개념을 소개합니다. 벡터는 종종 "v"와 같은 소문자를 사용하여 표시되며 n차원 공간에서 점 또는 좌표로 볼 수 있습니다. 여기서 "n"은 차원 수를 나타냅니다. Python에서 NumPy 배열로 벡터를 생성하는 방법을 설명합니다. 비디오는 또한 길이가 같은 벡터에 대해 요소별로 수행되어 길이가 같은 새 벡터를 생성하는 벡터 산술 연산(예: 벡터 더하기 및 빼기)을 다룹니다. 또한 발표자는 벡터에 스칼라를 곱하여 크기를 조정하는 방법을 설명하고 Python에서 NumPy 배열을 사용하여 이러한 작업을 수행하는 방법을 시연합니다. 스칼라를 산출하고 벡터의 가중 합을 계산하는 데 사용할 수 있는 두 벡터의 내적도 논의됩니다.

그런 다음 초점은 기계 학습에서 벡터 규범과 그 중요성으로 이동합니다. 벡터 노름은 벡터의 크기 또는 길이를 나타내며 벡터 공간의 원점에서 벡터까지의 거리를 요약하는 척도를 사용하여 계산됩니다. 모든 0 값의 벡터를 제외하고는 벡터 규범이 항상 양수임을 강조합니다. 이 비디오는 기계 학습에 사용되는 네 가지 일반적인 벡터 놈 계산을 소개합니다. 벡터 L1 노름으로 시작하여 L2 노름(유클리드 노름), 최대 노름이 이어집니다. 이 섹션은 또한 행렬을 정의하고 Python에서 행렬을 조작하는 방법을 설명합니다. 행렬-행렬 곱셈(내적), 행렬-벡터 곱셈 및 스칼라 곱셈을 포함한 행렬 산술에 대해 설명합니다. 행렬은 일반적으로 "A"와 같은 대문자로 표시되는 하나 이상의 열과 하나 이상의 행이 있는 스칼라의 2차원 배열로 설명됩니다.

다음으로 기계 학습을 위한 행렬 연산의 개념을 소개합니다. 여기에는 행렬 곱셈, 행렬 나누기 및 행렬 스칼라 곱셈이 포함됩니다. 행렬 내적이라고도 하는 행렬 곱셈에서는 첫 번째 행렬의 열 수가 두 번째 행렬의 행 수와 같아야 합니다. 동영상에서는 NumPy의 도트 기능을 사용하여 이 작업을 구현할 수 있다고 언급합니다. 원래 행렬의 행과 열의 수를 뒤집어 새 행렬을 만드는 행렬 전치의 개념도 설명합니다. 마지막으로, 원래 행렬과 곱했을 때 단위 행렬이 되는 또 다른 행렬을 찾는 것과 관련된 행렬 반전 프로세스에 대해 설명합니다.

역행렬에 대한 논의를 계속하면서 이 비디오는 이 개념을 더 자세히 살펴봅니다. 행렬 반전은 행렬 옆에 음수 1 위첨자로 표시됩니다. 비디오는 행렬 반전이 효율적인 수치 방법을 찾는 것과 관련이 있다고 설명합니다. 대각선 요소의 합을 계산하고 NumPy의 추적 기능을 사용하여 계산할 수 있는 정사각형 행렬의 추적 작업이 도입되었습니다. 정사각 행렬의 행렬식은 행렬의 부피를 스칼라로 표현한 것으로 정의되며 NumPy의 det 함수를 사용하여 계산할 수도 있습니다. 행렬의 순위는 행렬에서 선형으로 독립적인 행 또는 열의 수를 추정하고 일반적으로 특이값 분해를 사용하여 계산되는 행렬의 순위에 대해 간략하게 언급됩니다. 마지막으로 희소 행렬의 개념에 대해 설명하며 주로 0 값을 포함하고 표현하고 작업하는 데 계산 비용이 많이 들 수 있음을 강조합니다.

그런 다음 비디오는 주로 0 값으로 구성되고 대부분 0이 아닌 값을 갖는 조밀한 행렬과 다른 희소 행렬에 대해 자세히 설명합니다. 희소성은 0 값의 수를 행렬의 총 요소 수로 나눈 희소성 점수를 계산하여 정량화됩니다. 비디오는 희소성과 관련된 두 가지 주요 문제인 공간 복잡성과 시간 복잡성을 강조합니다. 희소 행렬을 표현하고 작업하는 것은 계산 비용이 많이 들 수 있습니다.

이러한 문제를 해결하기 위해 비디오에서는 Scipy가 희소 행렬을 만들고 조작하기 위한 도구를 제공한다고 언급합니다. 또한 NumPy 및 Scipy의 많은 선형 대수 함수가 희소 행렬에서 작동하여 희소 데이터에 대한 효율적인 계산 및 작업을 가능하게 한다는 점을 강조합니다.

희소 행렬은 일반적으로 데이터 관찰 및 데이터 준비를 위한 응용 기계 학습에 사용됩니다. 희소성 덕분에 많은 수의 0 값이 있는 대규모 데이터 세트를 보다 효율적으로 저장하고 처리할 수 있습니다. 희소성 구조를 활용함으로써 기계 학습 알고리즘은 메모리 사용량 감소와 계산 속도 향상의 이점을 누릴 수 있습니다.

계속해서 비디오에서는 선형 대수, 특히 기계 학습과 관련된 행렬에 일반적으로 사용되는 다양한 유형의 행렬에 대해 설명합니다. 행 수가 열 수와 같은 정사각형 행렬이 도입되었습니다. 행과 열의 수가 다른 직사각형 행렬도 언급됩니다. 동영상은 행 및 열 인덱스가 동일한 요소로 구성된 정사각 행렬의 주대각선에 대해 설명합니다. 행 또는 열의 수로 정의되는 정사각형 행렬의 순서도 다룹니다.

또한 비디오는 전치와 동일한 정사각형 행렬인 대칭 행렬을 소개합니다. 상삼각행렬과 하삼각행렬을 포함한 삼각행렬에 대해 설명한다. 대각선이 아닌 모든 요소가 0인 대각선 행렬에 대해서도 설명합니다. 주 대각선에 1이 있고 다른 곳에 0이 있는 정사각형 행렬인 항등 행렬은 곱셈 항등식의 역할과 관련하여 설명됩니다. 두 벡터의 내적이 0일 때 형성되는 직교 행렬도 도입됩니다.

비디오는 직교 행렬과 텐서에 대해 논의하면서 진행됩니다. 직교 행렬은 열과 행이 직교 단위 벡터인 특정 유형의 정사각형 행렬입니다. 이러한 행렬은 역 계산에 효율적이고 안정적이므로 딥 러닝 모델을 비롯한 다양한 응용 프로그램에서 유용합니다. 동영상에서는 TensorFlow에서 텐서가 기본 데이터 구조이자 벡터와 행렬의 일반화라고 언급합니다. 텐서는 다차원 배열로 표현되며 행렬과 유사한 n차원 배열을 사용하여 Python에서 조작할 수 있습니다. 비디오는 더하기 및 빼기와 같은 요소별 텐서 연산이 텐서, 행렬 및 벡터에서 수행될 수 있음을 강조하여 더 높은 차원에 대한 직관을 제공합니다.

다음으로 행렬을 구성 요소로 분해하는 방법인 행렬 분해를 소개합니다. 행렬 분해는 복잡한 행렬 연산을 단순화하고 효율적인 계산을 가능하게 합니다. 널리 사용되는 두 가지 행렬 분해 기술인 정사각형 행렬에 대한 LU(Lower-Upper) 분해와 직사각형 행렬에 대한 QR(QR 인수분해) 분해를 다룹니다.

LU 분해는 선형 회귀 문제의 맥락에서 선형 방정식을 단순화하고 행렬의 행렬식 및 역행렬과 같은 계산을 용이하게 할 수 있습니다. QR 분해는 선형 방정식 시스템을 푸는 데 응용됩니다. 두 가지 분해 방법은 Python의 NumPy 패키지에 내장된 함수를 사용하여 구현할 수 있으므로 다양한 선형 대수 문제에 대한 효율적이고 안정적인 솔루션을 제공합니다.

또한 비디오에서는 특히 대칭 및 양의 정부호 행렬에 사용되는 Cholesky 분해에 대해 설명합니다. 촐레스키 분해는 하부 삼각 행렬로 표현되며 대칭 행렬 분해에 있어 LU 분해보다 거의 2배 효율적이라고 간주됩니다.

비디오는 고유 분해를 포함한 행렬 분해 방법이 복잡한 작업을 단순화하기 위해 사용된다고 간략하게 언급합니다. 고유 분해는 행렬을 고유 벡터와 고유 값으로 분해합니다. 고유 벡터는 방향을 나타내는 계수이고 고유 값은 스칼라입니다. 고유 벡터와 고유 값 모두 차원 감소 및 복잡한 행렬 연산 수행과 같은 실용적인 응용 프로그램이 있습니다.

마지막으로 동영상은 SVD(Singular Value Decomposition)의 개념과 기계 학습에서의 응용에 대해 다룹니다. SVD는 기계 학습에서 다양한 행렬 연산 및 데이터 축소 방법에 사용됩니다. 최소 제곱 선형 회귀, 이미지 압축 및 데이터 노이즈 제거와 같은 계산에서 중요한 역할을 합니다.

동영상에서는 SVD를 통해 행렬을 U, Σ, V의 세 가지 개별 행렬로 분해할 수 있다고 설명합니다. U 행렬에는 왼쪽 특이 벡터가 포함되고 Σ는 특이 값이 포함된 대각 행렬이며 V에는 오른쪽 특이 벡터가 포함됩니다. 이러한 구성 요소에서 원래 행렬을 재구성하면 차원을 줄이면서 원래 데이터의 근사치를 얻을 수 있습니다.

SVD의 주요 응용 프로그램 중 하나는 차원 축소입니다. 가장 중요한 특이값과 해당 특이 벡터의 하위 집합을 선택하면 중요한 정보를 잃지 않고 저차원 공간에서 데이터를 표현할 수 있습니다. 이 기술은 보다 효율적인 저장 및 계산을 허용하므로 데이터의 차원이 높은 경우에 특히 유용합니다.

이 비디오는 SVD가 잠재 의미 체계 분석(LSA) 또는 잠재 의미 색인(LSI)이라는 기술을 사용하여 자연어 처리에 성공적으로 적용되었음을 강조합니다. 텍스트 문서를 행렬로 나타내고 SVD를 수행함으로써 LSA는 문서의 기본 의미 구조를 캡처하여 문서 유사성 및 주제 모델링과 같은 작업을 가능하게 합니다.

또한 이 동영상에서는 행렬의 차원을 줄이는 기능을 직접 구현하는 truncated SVD 클래스를 소개합니다. 잘린 SVD를 사용하면 가장 중요한 정보를 보존하면서 원본 행렬을 저차원 표현으로 변환할 수 있습니다. 이 기술은 보다 효율적인 처리 및 분석을 가능하게 하므로 대규모 데이터 세트를 처리할 때 특히 유용합니다.

요약하면 이 비디오는 기계 학습을 위한 선형 대수와 관련된 다양한 주제를 다루었습니다. 기계 학습의 맥락에서 미적분과 통계를 이해하기 위한 기본 빌딩 블록으로서 선형 대수 학습의 중요성을 강조했습니다. 이 비디오는 알고리즘의 사용자 지정 및 개발, 수치 선형 대수, 통계 분석 및 신호 처리 및 컴퓨터 그래픽과 같은 다양한 기타 분야와 같은 머신 러닝에서 선형 대수를 적용하는 방법에 대해 논의했습니다.

또한 비디오는 벡터, 행렬, 행렬 연산, 벡터 규범, 행렬 분해 기술 및 희소 행렬을 포함하여 선형 대수학의 주요 개념을 탐구했습니다. 이러한 개념이 기계 학습에서 어떻게 사용되는지 설명하고 실제 적용에 대한 통찰력을 제공했습니다.

기계 학습 실무자는 선형 대수학을 이해함으로써 기계 학습 알고리즘의 근본적인 수학적 기초에 대한 더 깊은 직관을 얻고 이를 실제 문제에 효과적으로 적용할 수 있습니다. 선형 대수학은 데이터 조작, 차원 감소 및 최적화를 위한 강력한 도구 역할을 하여 효율적이고 효과적인 기계 학습 솔루션을 가능하게 합니다.

  • 00:00:00 기계 학습 엔지니어에게 선형 대수학 학습의 중요성은 기계 학습에 필요한 미적분 및 통계를 이해하기 위한 구성 요소로 간주되기 때문에 강조됩니다. 선형 대수학에 대한 더 깊은 이해는 기계 학습 실무자에게 방법이 작동하는 방식에 대한 더 나은 직관을 제공하여 알고리즘을 사용자 지정하고 새로운 알고리즘을 고안할 수 있도록 합니다. 선형 대수학의 기초는 이 과정에서 하향식 접근 방식으로 가르치며 구체적인 예와 데이터 구조를 사용하여 행렬 및 벡터에 대한 연산을 시연합니다. 선형 대수학은 행렬과 벡터의 수학으로, 데이터에 대한 언어를 제공하고 이러한 데이터 구조에 대한 연산을 사용하여 새로운 열이나 숫자 배열을 만들 수 있습니다. 선형 대수학은 알려지지 않은 선형 방정식 시스템을 풀기 위해 1800년대 후반에 개발되었으며 이제 기계 학습을 이해하기 위한 핵심 전제 조건입니다.

  • 00:05:00 연사는 컴퓨터에 선형 대수학을 적용한 수치 선형 대수학에 대해 논의합니다. 여기에는 선형 대수 연산 구현과 디지털 컴퓨터에서 제한된 부동 소수점 정밀도로 작업할 때 발생할 수 있는 잠재적인 문제 처리가 포함됩니다. 많은 딥 러닝 알고리즘이 선형 대수 연산을 빠르게 계산하는 그래픽 처리 장치의 기능에 의존하기 때문에 수치 선형 대수는 머신 러닝의 필수 도구입니다. 몇 가지 인기 있는 오픈 소스 수치 선형 대수 라이브러리가 선형 대수 연산을 계산하는 데 사용되며, Fortran 기반 선형 대수 라이브러리는 Python과 같은 프로그래밍 언어를 사용하여 가장 현대적인 구현의 기반을 제공합니다. 선형 대수는 통계, 특히 다변량 통계 분석, 주성분 분석 및 선형 회귀 문제 해결에 필수적입니다. 또한 발표자는 텐서를 이용한 알버트 아인슈타인의 상대성 이론과 선형 대수학의 일종인 텐서 미적분학을 통해 신호 처리, 컴퓨터 그래픽, 심지어 물리학과 같은 분야에서 선형 대수학의 다양한 응용에 대해 논의합니다.

  • 00:10:00 선형 대수학의 표기법 및 연산을 사용하여 자르기, 크기 조정 및 전단과 같은 이미지에 선형 대수 연산을 사용하는 개념을 소개합니다. 또한 원 핫 인코딩이라고 하는 범주형 변수에 대한 인기 있는 인코딩 기술에 대해 설명합니다. 또한 기계 학습에 사용되는 주요 데이터 구조인 N차원 배열 또는 ND 배열과 Python에서 NumPy 라이브러리를 사용하여 생성하고 조작하는 방법에 대해 설명합니다. 마지막으로 기존 어레이에서 새 어레이를 생성하는 데 가장 많이 사용되는 두 가지 기능인 v-stack 및 수평 스택에 대해 설명합니다.

  • 00:15:00 발표자는 일반적으로 기계 학습 데이터를 나타내는 데 사용되는 numpy 배열의 데이터를 조작하고 액세스하는 방법에 대해 논의합니다. 배열 함수를 사용하여 1차원 목록을 배열로 변환할 수 있으며 목록 목록을 사용하여 2차원 데이터 배열을 만들 수 있습니다. 인덱싱을 통해 데이터에 액세스하는 것은 다른 프로그래밍 언어와 유사하지만 콜론 연산자를 사용하여 numpy 배열을 슬라이스할 수도 있습니다. 네거티브 인덱싱도 가능하며 슬라이싱을 사용하여 기계 학습에서 입력 및 출력 변수를 지정할 수 있습니다.

  • 00:20:00 이 비디오는 기계 학습에서 일반적으로 사용되는 다차원 데이터 세트로 작업하는 기술을 다룹니다. 1차원 슬라이싱으로 시작하여 2차원 슬라이싱으로 이동하고 교육 및 테스트를 위해 데이터를 입력 및 출력 값으로 분리합니다. 그런 다음 비디오는 하나 이상의 시간 단계와 하나 이상의 기능의 여러 샘플을 예상하는 알고리즘을 위해 1차원 배열을 하나의 열이 있는 2차원 배열로 재구성하고 2차원 데이터를 3차원 배열로 재구성하는 것을 포함하여 배열 재구성을 다룹니다. . 마지막으로 비디오는 크기가 다른 배열을 더하거나 빼거나 산술에 사용할 수 있는 배열 브로드캐스팅을 다룹니다. 이는 다양한 크기의 데이터 세트에 유용합니다.

  • 00:25:00 numpy에서 배열 산술의 제한 사항에 대해 설명합니다. 여기에는 크기가 같은 배열과 크기가 같은 배열에 대한 산술 연산만 포함됩니다. 그러나 이 제한은 마지막 불일치 차원을 따라 더 작은 배열을 복제하는 numpy의 내장 브로드캐스팅 기능으로 극복됩니다. 이 방법을 사용하면 모양과 크기가 다른 배열 간의 산술 연산이 가능합니다. 브로드캐스팅의 세 가지 예는 스칼라 및 1차원 배열, 2차원 배열의 스칼라 및 2차원 배열의 1차원 배열을 포함하여 제공됩니다. 배열의 각 차원의 모양이 같거나 하나의 차원 크기가 1인 경우에만 산술을 수행할 수 있다는 브로드캐스팅을 수행하기 위해 충족해야 하는 엄격한 규칙을 포함하여 브로드캐스팅의 한계도 언급됩니다.

  • 00:30:00 화자는 스칼라라고 하는 하나 이상의 값의 튜플이며 종종 "v"와 같은 소문자를 사용하여 표현되는 벡터의 개념을 소개합니다. 벡터는 n이 차원의 수인 n차원 공간의 점 또는 좌표로 생각할 수 있으며 Python에서 numpy 배열로 생성할 수 있습니다. 발표자는 또한 동일한 길이의 벡터에 대해 요소별로 수행되어 동일한 길이의 새 벡터를 생성하는 벡터 덧셈 및 뺄셈과 같은 벡터 산술 연산에 대해 설명합니다. 또한 발표자는 벡터에 스칼라를 곱하여 크기를 조정하고 Python에서 numpy 배열을 사용하여 이러한 작업을 수행하는 방법을 설명합니다. 마지막으로 스피커는 스칼라를 제공하는 두 벡터의 내적과 벡터의 가중 합을 계산하는 데 어떻게 사용될 수 있는지에 대해 이야기합니다.

  • 00:35:00 벡터 규범과 기계 학습에서의 중요성에 중점을 둡니다. 벡터 규범은 벡터 공간의 원점에서 벡터까지의 거리를 요약하는 측정값을 사용하여 계산된 벡터의 크기 또는 길이를 나타냅니다. 규범은 모두 0 값으로 구성된 벡터를 제외하고 항상 양수입니다. 기계 학습에 사용되는 네 가지 일반적인 벡터 놈 계산이 도입되었습니다. 벡터 L1 놈부터 시작하여 L2 및 최대 놈이 뒤따릅니다. 또한 이 섹션에서는 행렬을 정의하고 Python에서 행렬을 조작하는 방법을 정의하고 행렬 산술, 행렬-행렬 곱셈(내적), 행렬-벡터 곱셈 및 스칼라 곱셈에 대해 설명합니다. 행렬은 하나 이상의 열과 하나 이상의 행이 있는 스칼라의 2차원 배열이며 종종 A와 같은 대문자로 표시됩니다.

  • 00:40:00 행렬 곱셈, 행렬 나누기, 행렬 스칼라 곱셈을 포함하여 기계 학습을 위한 행렬 연산의 개념을 소개합니다. 행렬 내적이라고도 하는 행렬 곱셈에서는 첫 번째 행렬의 열 수가 두 번째 행렬의 행 수와 같아야 합니다. numpy의 도트 함수를 사용하여 이 작업을 구현할 수 있습니다. 원래 행렬의 행과 열의 수를 뒤집어 새 행렬을 만드는 행렬 전치의 개념도 도입됩니다. 마지막으로, 항등행렬을 생성하는 행렬과 곱할 또 다른 행렬을 찾는 행렬 반전 프로세스에 대해 설명합니다.

  • 00:45:00 역행렬의 개념을 다룹니다. 역행렬은 행렬 옆에 음수 1 위첨자로 표시됩니다. 행렬 반전 작업에는 효율적인 수치 방법 모음을 찾는 작업이 포함됩니다. numpy의 trace 함수를 사용하여 계산할 수 있는 정사각형 행렬의 추적 작업에 대해서도 설명합니다. 정사각 행렬의 행렬식은 행렬의 부피를 스칼라로 표현한 것으로 정의되며 numpy의 det 함수를 사용하여 계산할 수도 있습니다. 또한 행렬의 순위가 도입되어 행렬에서 선형으로 독립된 행 또는 열의 수를 추정하고 일반적으로 특이값 분해를 사용하여 계산됩니다. 마지막으로 희소 행렬의 개념에 대해 설명합니다. 희소 행렬은 대부분 0 값을 포함하고 표현하고 작업하는 데 계산 비용이 많이 드는 행렬입니다.

  • 00:50:00 희소 행렬에 대해 알아봅니다. 희소 행렬은 대부분 0 값으로 구성된 행렬이며 대부분 0이 아닌 값을 갖는 밀집 행렬과 다릅니다. 희소성은 0 값의 수를 행렬의 총 요소 수로 나눈 점수를 계산하여 정량화할 수 있습니다. 또한 희소성의 두 가지 큰 문제인 공간 복잡성과 시간 복잡성에 대해서도 배웁니다. Scipy는 희소 행렬을 만들기 위한 도구를 제공하며 많은 선형 대수 numpy 및 scipy 함수를 사용할 수 있습니다. 희소 행렬은 일반적으로 데이터 관찰 및 데이터 준비를 위한 응용 기계 학습에 사용됩니다.

  • 00:55:00 특히 기계 학습과 관련된 선형 대수학에서 일반적으로 사용되는 다양한 유형의 행렬에 대해 설명합니다. 사각형 행렬과 함께 행 수가 열 수와 같은 정사각형 행렬이 도입되었습니다. 정방행렬의 주대각선과 차수에 대해서도 다룹니다. 또한 대칭행렬, 삼각행렬(상하행렬 포함), 대각행렬, 항등행렬, 직교행렬에 대해 설명한다. 두 벡터의 내적이 0일 때 직교 행렬이 형성된다는 점에 유의하십시오.

  • 01:00:00 직교 행렬과 텐서에 대해 배웁니다. 직교 행렬은 열과 행이 직교 단위 벡터인 정사각 행렬의 한 유형입니다. 이러한 행렬은 계산 비용이 저렴하고 역을 계산하기에 안정적이며 딥 러닝 모델에 사용할 수 있습니다. Tensorflow에서 텐서는 기본 데이터 구조이자 다차원 배열로 표현되는 벡터와 행렬의 일반화입니다. 텐서는 더하기 및 빼기와 같은 요소별 텐서 연산과 함께 행렬과 유사한 n차원 배열을 사용하여 Python에서 조작할 수 있습니다. 또한 텐서 곱 연산은 텐서, 행렬 및 벡터에서 수행할 수 있으므로 더 높은 차원의 직관이 가능합니다.

  • 01:05:00 비디오는 행렬 분해, 행렬을 구성 부분으로 줄이고 분해 행렬에서 수행할 수 있는 더 복잡한 행렬 연산을 단순화하는 방법을 소개합니다. 다음 단원에서 다루는 두 가지 널리 사용되는 행렬 분해 기술은 정사각형 행렬에 대한 LU 행렬 분해와 직사각형 행렬에 대한 QR 행렬 분해입니다. LU 분해는 선형 회귀 문제에서 선형 방정식을 단순화하고 행렬의 행렬식과 역행렬을 계산하는 데 사용할 수 있는 반면, QR 분해는 선형 방정식 시스템을 푸는 데 사용됩니다. 두 분해 모두 Python의 NumPy 패키지에 내장된 함수를 사용하여 구현할 수 있습니다.

  • 01:10:00 비디오는 대칭 및 양의 정부호 행렬에 사용되는 Cholesky 분해에 대해 설명합니다. 이 방법은 LU 분해보다 거의 두 배 효율적이며 대칭 행렬 분해에 선호됩니다. 촐레스키 분해는 NumPy의 촐로스키 함수를 통해 쉽게 접근할 수 있는 하부 삼각 행렬로 표현됩니다. 비디오는 또한 고유 분해를 포함한 행렬 분해 방법이 복잡한 연산을 단순화하는 데 사용되며 고유 분해는 행렬을 고유 벡터와 고유 값으로 분해한다고 언급합니다. 마지막으로 고유 벡터는 단위 벡터이고 고유 값은 스칼라이며 둘 다 차원을 줄이고 복잡한 행렬 연산을 수행하는 데 유용합니다.

  • 01:15:00 고유 분해의 개념과 효율적인 반복 알고리즘을 사용한 계산에 대해 설명합니다. 고유 분해는 정사각 행렬을 각각 계수와 방향인 고유 값과 고유 벡터로 분해하는 방법입니다. 고유 분해는 eig 함수를 사용하여 NumPy에서 계산할 수 있으며 벡터가 실제로 행렬의 고유 벡터인지 확인하기 위해 테스트를 수행할 수 있습니다. 고유값과 고유벡터로부터 원래 행렬을 재구성할 수도 있습니다. 또한 이 섹션에서는 특정 후속 행렬 계산을 더 간단하게 만들기 위해 행렬을 구성 요소로 줄이는 행렬 분해 방법인 SVD(Singular Value Decomposition)와 압축, 노이즈 제거 및 데이터 감소와 같은 다양한 분야에서의 응용을 간략하게 소개합니다.

  • 01:20:00 SVD(Singular Value Decomposition)의 개념과 기계 학습에서의 응용에 대해 논의합니다. SVD는 최소 제곱 선형 회귀, 이미지 압축 및 노이즈 제거 데이터와 같은 기계 학습의 다른 행렬 연산 및 데이터 감소 방법 계산에 사용됩니다. 원래 행렬은 SVD에서 반환된 u, sigma 및 v 요소에서 재구성할 수 있습니다. SVD의 인기 있는 응용 프로그램은 데이터를 예측 문제와 가장 관련성이 높은 기능의 더 작은 하위 집합으로 축소할 수 있는 차원 축소를 위한 것입니다. 이것은 잠재 의미 분석 또는 잠재 의미 인덱싱이라는 기술을 사용하여 자연어 처리에 성공적으로 적용되었습니다. 이 기능을 직접 구현하는 잘린 SVD 클래스에 대해 설명하고 변환 버전이 뒤따르는 정의된 행렬을 사용하여 해당 응용 프로그램을 시연합니다.
Applied Linear Algebra for Machine Learning Engineers
Applied Linear Algebra for Machine Learning Engineers
  • 2022.03.26
  • www.youtube.com
This course will cover everything you need to know about linear algebra for your career as a machine learning engineer.
 

머신 러닝 엔지니어를 위한 XGBoost 완전 소개


머신 러닝 엔지니어를 위한 XGBoost 완전 소개

비디오에서 강사는 기계 학습 엔지니어를 위해 XGBoost에 대한 포괄적인 소개를 제공합니다. 그들은 XGBoost가 매우 정확한 분류 및 회귀 모델을 빠르게 구축하는 기능으로 알려진 오픈 소스 기계 학습 라이브러리라고 설명합니다. 특히 고도로 구조화된 데이터 세트를 다룰 때 실제 모델을 구축하기 위한 최고의 선택으로 인기를 얻었습니다. XGBoost는 Taiki Chen이 작성했으며 빠르고 효율적인 모델 구축을 가능하게 하는 그래디언트 부스트 결정 트리 기술을 기반으로 합니다.

강사는 XGBoost가 Python 및 scikit-learn 구현을 포함한 여러 인터페이스를 지원한다고 강조합니다. 그들은 데이터를 로드하고 모델을 구축하기 위한 다양한 모듈을 보여주는 XGBoost의 시연을 진행합니다.

그런 다음 비디오는 XGBoost 모델 교육을 위한 데이터 세트 준비에 중점을 둡니다. 강사는 데이터를 훈련 세트와 테스트 세트로 분리하는 것의 중요성을 강조합니다. 대상 변수를 이진 분류 문제로 식별하고 XGBoost 모델에 필요한 하이퍼파라미터를 설정하는 과정을 설명합니다. 모델이 훈련 데이터에 대해 훈련되면 정확도 점수를 메트릭으로 사용하여 테스트 데이터에 대한 정확도를 평가합니다.

XGBoost에 대한 더 나은 이해를 제공하기 위해 강사는 그래디언트 부스팅의 개념과 기존 기계 학습 모델의 더 넓은 범주에서의 역할에 대해 자세히 설명합니다. 그래디언트 부스팅은 약한 모델을 같은 유형의 다른 모델과 결합하여 더 정확한 모델을 만드는 기술이라고 설명합니다. 이 과정에서 각 연속 트리는 이전 트리의 예측 잔차에 대해 작성됩니다. 강사는 결정 트리가 주어진 조건에 따라 가능한 결정 솔루션을 그래픽으로 표시하기 때문에 그래디언트 부스팅에 사용된다고 강조합니다. 그들은 또한 의사 결정 트리를 설계하려면 잠재적 솔루션을 효과적으로 식별하기 위해 잘 문서화된 사고 프로세스가 필요하다고 언급합니다.

비디오는 재귀 이진 분할을 사용하여 이진 결정 트리를 생성하는 방법을 자세히 살펴봅니다. 이 프로세스에는 실제 값에 대한 예측 값의 근접성을 측정하는 비용 함수를 최소화하기 위해 모든 입력 변수 및 분할 지점을 그리디 방식으로 평가하는 작업이 포함됩니다. 강사는 비용이 가장 낮은 분할을 선택하고 결과 그룹을 재귀적으로 더 세분화할 수 있다고 설명합니다. 그들은 사용된 알고리즘이 각 단계에서 최선의 결정을 내리는 데 초점을 맞추기 때문에 탐욕적이라고 강조합니다. 그러나 더 나은 이해를 보장하고 데이터 과적합의 위험을 줄이기 위해 더 적은 수의 분할로 의사 결정 트리를 사용하는 것이 좋습니다. 강사는 XGBoost가 각 트리의 최대 깊이를 제한하고 관련 없는 가지를 잘라내는 등 과적합을 방지하는 메커니즘을 제공한다고 강조합니다. 또한 레이블 인코딩을 다루고 scikit-learn을 사용하여 홍채 데이터 세트를 로드하는 방법을 보여줍니다.

계속해서 비디오는 레이블 인코더 방법을 사용하여 대상 레이블을 숫자 변수로 인코딩하는 과정을 다룹니다. 데이터를 교육 및 테스트 데이터 세트로 분할한 후 강사는 교육 데이터에서 XGBoost 분류자를 정의하고 교육합니다. 그런 다음 훈련된 모델을 사용하여 테스트 데이터 세트에 대한 예측을 수행하여 90%의 정확도를 달성합니다. 앙상블 학습의 개념은 여러 모델을 결합하여 예측 정확도를 높이고 궁극적으로 학습 알고리즘의 효율성을 높이는 방법으로 도입되었습니다. 강사는 최적의 결과를 얻기 위해 분류 또는 회귀 문제에 적합한 모델을 선택하는 것이 중요하다고 강조합니다.

이 비디오는 기계 학습 모델의 편향과 분산 개념에 대해 자세히 설명하고 둘 사이의 균형이 필요함을 강조합니다. 앙상블 학습은 약한 학습자 그룹을 결합하여 더 복잡한 모델을 생성함으로써 이러한 균형을 해결하는 기술로 제시됩니다. 배깅(bagging)과 부스팅(boosting)의 두 가지 앙상블 기법이 소개됩니다. Bagging은 의사 결정 트리를 훈련하고 분산이 높고 바이어스가 낮은 모델의 앙상블을 생성하기 위해 데이터의 하위 집합을 생성하여 분산을 줄이는 것을 목표로 합니다. 반면에 부스팅은 결정 트리로 모델을 순차적으로 학습하여 이전 모델에서 발생한 오류를 수정할 수 있습니다. 강사는 그래디언트 부스팅이 회귀 트리 형태의 약한 학습자를 사용하여 미분 가능한 손실 함수를 최적화하는 특정 유형의 부스팅임을 강조합니다.

이 비디오는 그래디언트 부스팅의 개념을 자세히 설명하고 3단계 프로세스를 간략하게 설명합니다. 첫 번째 단계는 손실을 최소화하기 위해 약한 학습자(예: 결정 트리)를 반복적으로 추가하는 것입니다. 두 번째 단계는 트리를 순차적으로 추가하는 것이며 마지막 단계는 추가 반복을 통해 모델 오류를 줄이는 데 중점을 둡니다. 프로세스를 시연하기 위해 비디오는 k-겹 교차 검증을 사용하여 데이터를 분할하는 방법을 보여줍니다. XGBoost를 통해 각 폴드에 대한 점수를 얻습니다. 강사는 약한 학습자로 결정 트리를 선택하여 과적합을 방지하기 위해 얕은 깊이를 보장합니다. 마지막으로 손실 함수는 기계 학습 모델이 데이터에 얼마나 잘 맞는지 측정하는 것으로 정의됩니다.

손실 함수 최적화, 약한 학습자(종종 결정 트리) 활용, 앙상블 학습을 통해 여러 약한 학습자를 추가 방식으로 결합하는 그라디언트 부스팅의 핵심 단계에 대해 설명합니다. 이 비디오는 누락된 값 처리, 모델을 디스크에 저장, 조기 중지 사용과 같은 XGBoost 사용의 실용적인 측면도 다룹니다. XGBoost의 다양한 사용 사례를 설명하기 위해 Python 코드를 사용하는 데모가 제공됩니다. 또한 동영상은 평균값 대치와 같은 누락된 값을 처리하는 기술을 포함하여 데이터 정리의 중요성을 강조합니다.

연사는 작업을 수행하기 위해 알고리즘에만 의존하기보다는 데이터를 적절하게 정리하는 것의 중요성에 대해 논의합니다. 빈 값을 삭제하면 모델 정확도가 향상되고 빈 값을 처리하는 알고리즘에 대한 주의가 어떻게 향상되는지 보여줍니다. 나중에 사용할 수 있도록 훈련된 모델을 디스크에 저장하는 것과 관련된 피클링의 개념은 Python의 피클 라이브러리를 사용하여 도입되었습니다. 발표자는 모델을 저장하고 로드하는 방법을 보여줍니다. 또한 XGBoost 및 matplotlib 라이브러리의 중요도 표시 기능을 사용하여 데이터 세트에서 각 속성의 중요도를 표시하는 방법도 보여줍니다.

발표자는 기계 학습 모델을 구축할 때 다양한 시나리오를 분석하고 테스트하는 것의 중요성에 대해 논의하며 XGBoost의 기능 중요도 점수가 모델의 정확도에 대한 기능의 실제 영향을 항상 반영하지 않을 수 있음을 강조합니다. Titanic 데이터 세트의 예를 사용하여 기능 중요도 점수에서 낮은 순위에 있음에도 불구하고 "sex" 속성을 추가하면 모델 정확도가 어떻게 향상되는지 보여줍니다. 발표자는 기능 중요도 점수에만 의존하지 않고 다양한 시나리오를 테스트하는 것의 중요성을 강조합니다. 그들은 또한 XGBoost가 훈련 중에 테스트 세트의 성능을 평가하고 보고할 수 있다고 언급합니다.

이 비디오는 평가 메트릭을 지정하고 x 및 y 쌍의 배열을 전달하여 훈련 중에 XGBoost 모델의 성능을 모니터링하는 방법을 설명합니다. 각 평가 세트에 대한 모델의 성능은 저장되어 교육 후에 사용할 수 있습니다. 비디오는 모델의 동작에 대한 통찰력을 제공하고 학습을 조기에 중지하여 과적합을 방지하는 데 도움이 되는 학습 곡선을 다룹니다. 유효성 검사 점수에서 개선이 관찰되지 않는 경우 고정된 수의 에포크 후에 훈련을 중단하는 기술로 조기 중지가 도입되었습니다.

이 비디오는 XGBoost에서 조기 중지 라운드의 사용을 다루고 보스턴의 주택 가격을 평가하기 위한 회귀 모델 구축을 시연합니다. 그래디언트 부스팅에서 병렬 처리의 이점에 대해 논의하며 개별 트리의 구성과 입력 데이터의 효율적인 준비에 중점을 둡니다. 이 비디오는 시스템의 모든 코어를 활용하여 계산을 동시에 실행하여 프로그램 실행 속도를 높이는 멀티스레딩 지원 데모를 제공합니다. XGBoost는 주로 분류 문제에 맞춰져 있지만 비디오는 회귀 모델을 구축하는 데 탁월한 능력을 강조합니다.

발표자는 예제의 반복 횟수를 저장할 목록을 만들고 for 루프를 사용하여 스레드 수를 기반으로 모델의 실행 속도를 테스트합니다. 각 반복에 대한 빌드 속도를 인쇄하고 결과를 플로팅하여 스레드 수가 증가함에 따라 모델 속도가 어떻게 감소하는지 보여줍니다. 그런 다음 발표자는 모델의 매개변수를 조정하여 성능을 향상시키는 하이퍼파라미터 튜닝에 대해 논의합니다. 그들은 XGBoost 및 scikit-learn의 기본 매개변수를 탐색하고 하이퍼 매개변수 조정이 XGBoost 모델의 성능을 최적화하는 데 필수적이라고 언급합니다. 동영상에서는 하이퍼파라미터가 데이터에서 학습되지 않고 사용자가 수동으로 설정하는 설정이라고 설명합니다. 하이퍼파라미터 튜닝에는 최고의 모델 성능을 제공하는 최상의 파라미터 값 조합을 체계적으로 검색하는 작업이 포함됩니다.

하이퍼파라미터 튜닝을 수행하기 위해 비디오에서는 그리드 검색과 무작위 검색이라는 두 가지 일반적인 접근 방식을 소개합니다. 그리드 검색에는 하이퍼파라미터 값의 그리드를 정의하고 각 조합을 철저하게 평가하는 작업이 포함됩니다. 반면 임의 검색은 사전 정의된 검색 공간에서 하이퍼 매개변수 조합을 무작위로 샘플링합니다. 동영상은 검색 공간이 크거나 하이퍼파라미터의 수가 많을 때 임의 검색을 사용하는 것을 권장합니다.

동영상은 scikit-learn의 RandomizedSearchCV 클래스를 사용하여 하이퍼파라미터 튜닝을 보여줍니다. 학습률, 최대 깊이 및 하위 샘플 비율과 같은 하이퍼 매개변수에 대한 다양한 값을 포함하는 매개변수 그리드를 정의합니다. RandomizedSearchCV 클래스는 교차 검증을 통해 무작위 검색을 수행하여 각 매개변수 조합의 성능을 평가합니다. 튜닝 후 최상의 하이퍼파라미터가 선택되고 이 최적 값으로 모델이 학습됩니다.

발표자는 하이퍼파라미터 튜닝이 과소적합과 과적합 간의 최상의 절충점을 찾는 데 도움이 된다고 설명합니다. 당면한 문제와 특정 데이터 세트를 기반으로 하이퍼파라미터를 신중하게 선택하여 균형을 유지하고 과적합을 피하는 것이 중요합니다.

하이퍼파라미터 튜닝 외에도 비디오는 XGBoost 모델의 기능 중요성에 대해 설명합니다. 기능 중요도는 모델의 예측에 가장 큰 영향을 미치는 기능에 대한 통찰력을 제공합니다. 발표자는 특징 중요도가 결정 트리에서 사용될 때 특징이 가져오는 손실 함수의 개선을 측정하는 평균 이득에 의해 결정된다고 설명합니다. 평균 이득이 높을수록 중요도가 높음을 나타냅니다.

이 비디오는 XGBoost 라이브러리를 사용하여 기능 중요도를 추출하고 시각화하는 방법을 보여줍니다. 상위 기능과 해당 중요도 점수를 보여주는 막대 차트를 그립니다. 발표자는 기능 중요도가 기능 선택, 차원 축소 및 근본적인 문제에 대한 통찰력 확보에 도움이 될 수 있다고 언급합니다.

비디오가 끝날 무렵 연사는 XGBoost와 관련된 다른 고급 주제를 간략하게 언급합니다. 그들은 scale_pos_weight 하이퍼파라미터를 조정하고, XGBoost의 내장 기능을 사용하여 누락된 값을 처리하고, 원-핫 인코딩을 통해 범주 변수를 처리하거나 XGBoost의 범주 기능에 대한 기본 제공 지원을 사용하여 불균형 데이터 세트를 처리하는 방법을 다룹니다.

이 비디오는 핵심 개념, 구현, 하이퍼파라미터 조정 및 기능 중요도 분석을 다루는 XGBoost에 대한 포괄적인 개요를 제공합니다. 데모 및 코드 예제는 Python에서 XGBoost로 작업하는 실제적인 측면을 설명하는 데 도움이 됩니다. 분류 및 회귀 작업에 XGBoost를 활용하려는 기계 학습 엔지니어에게 귀중한 리소스 역할을 합니다.

  • 00:00:00 강사가 기계 학습 엔지니어를 위해 XGBoost를 소개합니다. XGBoost는 매우 정확한 분류 및 회귀 모델을 신속하게 구축하는 데 사용되는 오픈 소스 기계 학습 라이브러리로, 고도로 구조화된 데이터 세트에 대해 실제 모델을 구축하는 데 최고의 선택입니다. XGBoost의 저자는 Taiki Chen이며 속도와 성능을 위한 그래디언트 부스트 결정 트리를 구현한 것입니다. 강사는 또한 XGBoost가 Python 및 scikit-learn 구현과 같은 여러 인터페이스를 지원하고 여러 모듈을 사용하여 데이터를 로드하고 모델을 빌드하는 XGBoost의 데모를 제공한다고 강조합니다.

  • 00:05:00 강사가 데이터를 훈련 세트와 테스트 세트로 분리하는 데 중점을 두고 XGBoost 모델 훈련을 위해 데이터 세트를 준비하는 방법을 설명합니다. 대상 변수는 이진 분류 문제로 식별되고 XGBoost 모델에 필요한 하이퍼 매개변수가 설정됩니다. 훈련 데이터로 모델을 훈련하고 정확도 점수를 메트릭으로 사용하여 테스트 데이터에서 모델의 정확도를 평가합니다. 강사는 또한 그래디언트 부스팅, XGBoost의 기본 개념, 기존 기계 학습 모델의 더 넓은 범주에 어떻게 적용되는지에 대한 개요를 제공합니다.

  • 00:10:00 여러 약한 모델을 결합하여 예측 정확도를 높이는 재귀 이진 분할 및 앙상블 학습에 대해 배웁니다. 그래디언트 부스팅은 약한 모델을 동일한 유형의 다른 모델과 결합하여 더 정확한 모델을 생성함으로써 예측 모델을 구축하는 기술입니다. 각 연속 트리는 이전 트리의 예측 잔차에 대해 작성됩니다. 결정 트리는 그래디언트 부스팅에 사용되며 특정 조건을 기반으로 한 결정에 대한 모든 가능한 솔루션의 그래픽 표현을 수반합니다. 의사 결정 트리를 설계하려면 더 많은 잠재적 솔루션을 식별할 수 있도록 브레인스토밍 프로세스를 공식화하는 데 도움이 되는 잘 문서화된 사고 프로세스가 필요합니다.

  • 00:15:00 동영상은 이진 결정 트리가 생성되는 방법을 설명합니다. 이 프로세스를 재귀 이진 분할이라고 하며 예상 값이 해당 실제 값에 얼마나 가까운지 측정하는 비용 함수를 최소화하기 위해 모든 입력 변수와 분할 지점을 탐욕스러운 방식으로 평가하는 작업이 포함됩니다. 비용이 가장 낮은 분할이 선택되고 결과 그룹을 재귀적으로 세분화할 수 있습니다. 알고리즘은 각 단계에서 최선의 결정을 내리는 데 초점을 맞추는 탐욕적인 알고리즘입니다. 더 적은 수의 분할이 있는 의사 결정 트리는 이해하기 쉽고 데이터를 과대적합할 가능성이 적기 때문에 선호됩니다. 오버피팅을 방지하기 위해 XGBoost 알고리즘은 각 트리의 최대 깊이를 제한하고 관련 없는 가지를 잘라내는 등 트리의 성장을 중지하는 메커니즘을 허용합니다. 이 비디오는 scikit-learn을 사용하여 홍채 데이터 세트의 레이블 인코딩 및 로드에 대해서도 다룹니다.

  • 00:20:00 레이블 인코더 방법을 사용하여 대상 레이블을 숫자 변수로 인코딩하는 과정을 다루는 비디오입니다. 데이터가 교육 및 테스트 데이터 세트로 분할되면 XGBoost 분류자가 정의되고 교육 데이터에 대해 교육됩니다. 그런 다음 이 모델을 사용하여 90% 정확도를 달성한 테스트 데이터 세트에 대한 예측을 수행합니다. 그런 다음 예측의 정확도를 향상시키기 위해 여러 모델을 결합하는 방법으로 앙상블 학습을 도입하여 보다 효율적인 학습 알고리즘을 가능하게 합니다. 이 비디오는 최상의 결과를 얻으려고 할 때 분류 또는 회귀 문제에 대해 올바른 모델을 선택하는 것의 중요성을 강조합니다.

  • 00:25:00 기계 학습 모델의 편향과 분산의 개념에 대해 논의하고 둘 사이의 균형에 대한 필요성을 강조합니다. 앙상블 학습은 약한 학습자 그룹을 결합하여 더 복잡한 모델을 생성함으로써 이러한 균형을 해결하는 데 사용되는 기술로 도입되었습니다. 배깅과 부스팅은 두 가지 앙상블 기법으로, 배깅은 의사 결정 트리를 훈련하기 위해 데이터의 여러 하위 집합을 만들어 분산을 줄이고 고분산 및 저편향 모델의 앙상블을 생성하는 데 사용됩니다. 부스팅은 의사 결정 트리를 사용하여 모델을 순차적으로 학습하여 이전 모델의 오류를 수정할 수 있으며 약한 학습자 간의 팀워크를 통해 입력을 올바르게 분류합니다. 그래디언트 부스팅은 미분 가능한 손실 함수를 최적화하고 회귀 트리 형태의 약한 학습자를 사용하는 특정 유형의 부스팅입니다.

  • 00:30:00 그래디언트 부스팅의 개념을 소개하고 3단계 프로세스를 설명했습니다. 첫 번째 단계는 손실을 최소화하기 위해 반복 프로세스에서 결정 트리와 같은 약한 학습자를 추가하는 것입니다. 두 번째 단계는 트리를 순차적으로 추가하는 것이고 마지막 단계는 더 많은 반복을 통해 모델 오류를 줄이는 것을 목표로 합니다. 시연에는 k-겹 교차 검증을 사용하여 데이터를 분할하고 XGBoost를 통해 각 접기에 대한 점수를 얻었습니다. 결정 트리는 과적합을 피하기 위해 깊이가 얕은 선택의 약한 학습자로 사용되었습니다. 마지막으로 손실 함수는 기계 학습 모델이 특정 현상의 데이터에 얼마나 잘 맞는지 측정하는 것으로 정의되었습니다.

  • 00:35:00 그래디언트 부스팅의 핵심 단계에 대해 설명합니다. 여기에는 손실 함수 최적화, 약한 학습자(일반적으로 결정 트리) 사용, 앙상블 학습을 통해 추가 방식으로 많은 약한 학습자 결합이 포함됩니다. 또한 이 섹션에서는 누락된 값 처리, 모델을 디스크에 저장, 조기 중지 사용과 같은 XGBoost 사용의 다양한 실용적인 측면을 다룹니다. 이 섹션에서는 XGBoost의 다양한 사용을 보여주기 위해 제공되는 수많은 데모와 함께 코드 기반 접근 방식을 취합니다. 또한 이 섹션에서는 누락된 값을 평균값 대치로 대체하는 방법을 포함하여 데이터 정리의 중요성을 살펴봅니다.

  • 00:40:00 연사는 자신의 데이터를 정리하고 알고리즘에 의존하지 않고 작업을 수행하는 것의 중요성에 대해 논의합니다. 빈 값을 삭제하면 모델 정확도가 향상되고 알고리즘이 빈 값을 처리하지 않도록 주의할 수 있는 방법을 보여줍니다. 연사는 또한 훈련된 모델을 나중에 사용할 수 있도록 디스크에 저장하는 방법인 피클링의 개념을 소개하고 피클 라이브러리를 사용하여 Python에서 모델을 저장하고 로드하는 방법을 시연합니다. 마지막으로 XGBoost 및 matplotlib의 중요도 표시 기능을 사용하여 데이터 세트에서 각 속성의 중요도를 표시하는 방법을 보여줍니다.

  • 00:45:00 연사는 XGBoost에서 결정한 기능 중요도 점수와 기계 학습 모델을 구축할 때 다양한 시나리오를 분석하고 테스트하는 것의 중요성에 대해 논의합니다. 그들은 Titanic 데이터 세트의 예를 사용하고 기능 중요도 점수에서 낮은 순위에 있음에도 불구하고 "sex" 속성을 추가하면 모델의 정확도가 어떻게 향상되는지 보여줍니다. 발표자는 기능 중요도 점수에만 의존하지 않고 다양한 시나리오를 테스트하는 것의 중요성을 강조합니다. 또한 훈련 중에 테스트 세트의 성능을 평가하고 보고하는 XGBoost의 기능에 대해서도 언급합니다.

  • 00:50:00 이 동영상에서는 평가 메트릭을 지정하고 x 및 y 쌍의 배열을 전달하여 교육 중에 XGBoost 모델의 성능을 모니터링하는 방법에 대해 설명합니다. 각 평가 세트에 대한 모델의 성능은 저장되어 교육 후에 사용할 수 있습니다. 이러한 성능 측정을 사용하여 학습 곡선을 만들어 모델의 동작에 대한 추가 통찰력을 얻고 잠재적으로 조기에 학습을 중지하여 과적합을 방지할 수 있습니다. 비디오는 또한 유효성 검사 점수에서 개선이 관찰되지 않는 경우 고정된 수의 에포크 후에 교육이 중지되는 기술인 조기 중지에 대해서도 다룹니다.

  • 00:55:00 이 비디오는 XGBoost에서 조기 중지 라운드를 사용하고 회귀 모델을 구축하여 보스턴의 주택 가격을 평가하는 방법을 다룹니다. 그래디언트 부스팅에서 병렬 처리의 이점에 대해서도 개별 트리 구성과 입력 데이터의 효율적인 준비에 중점을 두고 논의합니다. 시스템의 모든 코어를 사용하여 동시에 여러 계산을 수행하여 더 빠른 프로그램 실행을 허용하는 다중 스레딩 지원 데모가 제공됩니다. 비디오는 또한 XGBoost가 분류 문제에 맞춰져 있지만 회귀 모델 구축에도 탁월할 수 있다고 언급합니다.

  • 01:00:00 화자는 예제의 반복 횟수를 저장할 목록을 만들고 for 루프를 사용하여 스레드 수를 기준으로 모델의 실행 속도를 테스트합니다. 두 가지 결과가 인쇄됩니다. 각 반복에 대한 빌드 속도와 스레드 수가 증가함에 따라 모델 속도가 어떻게 감소하는지 보여주는 플롯입니다. 그런 다음 스피커는 매개변수를 모델에 전달하여 성능을 향상시키는 것을 의미하는 하이퍼파라미터 튜닝에 대해 논의합니다. 그들은 xgboost 및 scikit-learn의 기본 매개변수를 탐색하고 하이퍼 매개변수를 조정하면 모델의 성능을 짜내기 위해 약간의 작업이 필요할 수 있음에 주목합니다. 마지막으로 그래디언트 부스트 모델을 구성하는 데 필요한 트리 또는 약한 학습자 또는 추정기의 수와 각 트리의 크기를 조사합니다.

  • 01:05:00 비디오는 XGBoost 모델을 최적화하기 위해 하이퍼파라미터를 조정하는 방법을 알려줍니다. 주어진 모델에서 추정기를 테스트하기 위해 일련의 값을 평가하는 n-추정기의 모델 매개변수에 대한 그리드 검색의 예를 보여줍니다. 또한 다양한 서브샘플 기술과 XGBoost 클래스의 두 번째 래퍼에서 행 샘플링을 지정하는 방법을 다룹니다. 또한 비디오는 시행 착오를 통해 수행되는 학습 속도 구성의 중요성을 강조합니다. 학습 속도는 최적화 프로세스의 다른 많은 측면과 상호 작용하는 것으로 표시되며 학습 속도가 작을수록 더 많은 교육 기간이 필요합니다. 마지막으로, 진단 플롯은 학습률이 학습률과 모델의 학습 역학에 어떤 영향을 미치는지 조사하는 데 유용합니다.

  • 01:10:00 발표자는 Titanic 데이터 세트에서 고득점 XGBoost 모델을 생성하는 방법을 시연합니다. 발표자는 pandas 및 훈련 테스트 분할 라이브러리를 사용하여 데이터를 전처리하고 XGBoost를 사용하여 모델을 훈련합니다. 모델의 정확도 등급은 80 이상이므로 다시 시작할 가치가 있습니다. 발표자는 또한 모델을 과대적합하거나 결과를 변조하여 Kaggle 순위표에 가짜 점수를 업로드하는 사람들에 대해 경고합니다. 마지막으로 발표자는 코드를 한 줄씩 살펴보며 데이터 정리, 레이블 인코딩, null 값 처리, X 및 Y축 정의, 모델 학습 및 테스트를 위한 데이터 분할을 시연합니다.

  • 01:15:00 응용 기계 학습은 주로 데이터에 관한 것이지 모델링에 관한 것이 아니기 때문에 누락된 데이터를 올바르게 처리하는 것의 중요성이 반복되었습니다. 또한 모델의 성능을 모니터링한 결과에 대해 설명하고, 복잡한 기계 학습 모델을 훈련하여 과적합을 방지하기 위한 접근 방식으로 조기 중지를 제시했습니다. 이 섹션에는 XGBoost에 대한 멀티스레딩 지원 구성과 XGBoost 및 Scikit-learn에 대한 기본 하이퍼파라미터에 대한 논의도 포함되어 있습니다.
A Complete Introduction to XGBoost for Machine Learning Engineers
A Complete Introduction to XGBoost for Machine Learning Engineers
  • 2022.03.28
  • www.youtube.com
This course will cover all the core aspects of the most well-known gradient booster used in the real-world.
 

기계 학습 엔지니어를 위한 Python의 기능 엔지니어링 사례 연구



기계 학습 엔지니어를 위한 Python의 기능 엔지니어링 사례 연구

강사는 기능 엔지니어링의 개념과 매일 생성되는 방대한 양의 데이터에서 가치를 추출하는 데 있어 중요한 역할을 소개하면서 과정을 시작합니다. 지저분한 데이터에서 추출한 가치를 극대화하는 기능 엔지니어링의 중요성을 강조합니다. 학습자는 NumPy, Pandas 및 Scikit-Learn 사용 경험과 함께 입문 수준의 Python 지식이 있다고 가정합니다.

강사는 기계 학습 모델을 구축하는 과정에서 탐색적 데이터 분석 및 데이터 정제의 중요성을 강조합니다. 그들은 이러한 단계가 과정의 주요 초점이 될 것이라고 설명합니다. 학습자는 마지막 장에서 전체 파이프라인을 거치지만 주요 강조점은 기능 엔지니어링입니다.

강사는 기능 엔지니어링이 모델 성능 향상에 필수적임을 강조합니다. 기능 엔지니어링에는 원시 데이터를 기계 학습 모델의 기본 신호를 더 잘 나타내는 기능으로 변환하는 작업이 포함된다고 설명합니다. 특징의 품질은 모델의 성능에 직접적인 영향을 미칩니다. 좋은 특징은 단순한 모델도 강력하게 만들 수 있기 때문입니다. 강사는 기능을 선택하고 관련 없는 기능을 제거하고 분석 중인 문제와 관련된 요소를 포함할 때 상식을 사용하도록 조언합니다.

청소 및 엔지니어링 기능에 대한 다양한 기술이 비디오에서 다룹니다. 이상값을 제거하고, 데이터를 정규화하고 왜곡을 해결하기 위해 변환하고, 기능을 결합하여 더 유용한 기능을 만들고, 범주형 변수를 연속 변수에서 만듭니다. 이러한 기술은 관련 없는 정보를 삭제하면서 데이터의 중요한 추세를 정확하게 캡처하는 기능을 얻는 것을 목표로 합니다. 예를 들어 배에 탑승한 승객에 대한 정보가 포함된 Titanic 데이터 세트를 소개합니다.

강사는 양성 사례가 음성 사례보다 훨씬 적은 기계 학습의 클래스 불균형 문제에 대해 논의합니다. 네거티브 클래스를 다운샘플링하는 것과 같이 두 경우 모두에서 신호를 더 잘 감지하도록 모델을 조정할 것을 제안합니다. 그러나 예제에서 사용된 데이터셋은 불균형이 심하지 않기 때문에 강사는 데이터 특징 탐색을 진행합니다. 연속적인 특징에 대해 기본적인 탐색적 데이터 분석을 수행하고 이름, 티켓, 성별, 선실 및 승선과 같은 숫자가 아닌 특징은 삭제합니다. 정리된 데이터 세트가 표시되고 기능의 분포 및 상관 관계가 검사됩니다. "p-class" 및 "fare" 특성이 생존 컬럼과 가장 강한 상관관계를 나타내는 것으로 밝혀져 예측에 잠재적 유용성을 나타냅니다.

연속 기능에 대해 추가 탐색 데이터 분석이 수행됩니다. 이름 및 티켓과 같은 숫자가 아닌 기능은 삭제되고 데이터 세트의 처음 5개 행이 인쇄됩니다. 데이터는 pandas 함수를 사용하여 설명되며 누락된 값과 "Survived"라는 이진 대상 변수를 나타냅니다. 상관 관계 매트릭스를 분석하여 기능 간의 상관 관계와 "생존"과의 관계를 결정합니다. 평균 또는 중앙값에만 의존하면 부정확한 결론이 나올 수 있으므로 데이터의 전체 분포를 살펴보는 것의 중요성이 강조됩니다. 플롯과 시각화를 사용하여 범주형 기능과 생존율 사이의 관계를 탐색하여 일등석 승객과 가족 구성원이 적은 승객 사이에서 더 높은 생존율과 같은 경향을 발견합니다.

강사는 기능 엔지니어링의 중요성을 강조하고 적절한 테스트 없이 기능을 과도하게 압축하지 말라고 조언합니다. 누락된 값 식별 및 각 기능의 고유한 값 수를 포함하여 범주 기능을 탐색하고 엔지니어링하는 프로세스에 대해 논의합니다. 피처를 그룹화하고 각 그룹의 대상 변수에 대한 평균값을 분석하는 것이 데이터 세트를 더 잘 이해하는 데 도움이 되는 접근 방식으로 제안됩니다. 누락된 객실 기능과 생존율 사이의 관계를 탐색하여 기능의 겉보기에 낮은 가치에도 불구하고 생존율에 대한 강력한 지표를 발견하게 됩니다.

기능 탐색을 통해 직함, 객실 표시기 및 성별이 생존과 강한 상관관계가 있는 반면 착수 기능은 중복됨을 알 수 있습니다. 선실과 생존율의 관계는 Cherbourg에서 승선한 사람이 선실을 소유한 사람이 많을수록 생존율이 높아진다는 관찰을 통해 설명된다. 탑승한 직계 가족의 수는 하나의 기능으로 결합되며, 이들의 상관 관계에 따라 승객 클래스 또는 요금이 제안됩니다.

강사는 다음 단계는 탐색적 데이터 분석에서 얻은 통찰력을 기반으로 기능을 엔지니어링하는 것이라고 설명합니다. "이름" 기능에서 "제목"이라는 새 기능을 만드는 것으로 시작합니다. "Title" 기능은 사회적 지위 및 생존율과 관련된 추가 정보를 제공할 수 있으므로 각 승객의 이름(예: Mr., Mrs., Miss)에서 제목을 추출합니다. 그런 다음 단순화를 위해 "제목" 기능이 숫자 값에 매핑됩니다.

다음으로 강사는 초기에 누락된 값이 많았던 "Cabin" 기능에 중점을 둡니다. 그러나 캐빈 정보가 있는 승객과 없는 승객의 생존율을 분석한 결과 캐빈 번호가 기록되어 있는 승객의 생존율이 더 높은 것으로 나타났다. 이 통찰력을 바탕으로 "HasCabin"이라는 새로운 바이너리 기능이 생성되어 승객에게 기록된 객실이 있는지 여부를 나타냅니다.

계속해서 강사는 "섹스" 기능을 다룹니다. 기계 학습 모델은 일반적으로 숫자 데이터에서 더 잘 작동하므로 "Sex" 기능은 이진 값으로 매핑되며 0은 남성을 나타내고 1은 여성을 나타냅니다.

"Sex" 기능을 엔지니어링한 후 강사는 승선 포트(C = Cherbourg, Q = Queenstown, S = Southampton)를 나타내는 "Embarked" 기능을 처리합니다. 그러나 "Embarked" 기능은 중복되며 생존 예측에 크게 기여하지 않는 것으로 이전에 결정되었습니다. 따라서 데이터 세트에서 삭제됩니다.

그런 다음 강사는 탐색적 데이터 분석 중에 생존과 강한 상관관계를 나타내는 "Pclass" 및 "Fare" 기능에 중점을 둡니다. 이러한 기능은 이미 기계 학습 모델에 적합한 형식이므로 그대로 둡니다.

이 단계에서 강사는 데이터 전처리 및 모델의 기능 준비의 중요성을 강조합니다. 데이터 세트는 학습 및 테스트 세트로 분할되어 모델의 성능을 정확하게 평가합니다. "연령" 특성의 누락된 값은 승객의 중간 연령을 사용하여 귀속되며 모든 특성은 Scikit-Learn의 전처리 기능을 사용하여 평균 및 단위 분산이 0이 되도록 표준화됩니다.

마지막으로 강사는 범주형 기능에 대한 원-핫 인코딩의 개념에 대해 간략하게 설명하고 다음 비디오에서 더 자세히 다룰 것이라고 언급합니다. 원-핫 인코딩은 모델이 변수를 올바르게 해석할 수 있도록 범주형 변수를 이진 벡터로 나타내는 데 사용되는 일반적인 기술입니다.

요약하자면, 과정의 이 부분에서 강사는 기능 공학의 개념을 소개하고 기계 학습에서 그 중요성을 설명했습니다. 그들은 탐색적 데이터 분석을 수행하고, 데이터 세트를 정리하고, 얻은 통찰력을 기반으로 기능을 설계했습니다. 강사는 새 기능을 만들고 범주 기능을 숫자 값에 매핑하고 중복 기능을 제거하는 방법을 시연했습니다. 다음 단계에는 데이터 전처리 및 기계 학습 모델의 기능 준비가 포함되었습니다.

위의 요약은 기능 엔지니어링 과정에서 일반적으로 다루는 일반적인 주제를 기반으로 한 가상의 연속입니다. 실제 내용 및 예시는 특정 과정 및 강사에 따라 다를 수 있습니다.

  • 00:00:00 강사는 매일 생성되는 방대한 양의 데이터에서 가치를 추출하는 기능 엔지니어링 및 그 중요성에 대한 과정을 소개하여 학습자에게 지저분한 데이터에서 최대 가치를 추출하는 데 필요한 툴킷을 제공합니다. 학습자는 NumPy, Pandas 및 Scikit-Learn 사용 경험뿐만 아니라 어느 정도의 기초 수준 Python 지식이 있다고 가정합니다. 강사는 또한 높은 수준에서 기계 학습 모델을 구축하는 과정을 거치며 이 과정에서 독점적으로 집중할 중요한 단계인 탐색적 데이터 분석 및 데이터 정제의 중요성을 강조합니다. 학습자는 마지막 장에서 전체 파이프라인을 살펴보지만 주로 기능 엔지니어링에 초점을 맞춥니다.

  • 00:05:00 기능 엔지니어링의 중요성과 모델 성능에 미치는 영향에 대해 설명합니다. 기능 엔지니어링은 원시 데이터를 기계 학습 모델의 기본 신호를 더 잘 나타내는 기능으로 변환하여 보이지 않는 데이터에 대한 정확도를 개선하는 프로세스입니다. 양질의 데이터가 없으면 머신 러닝 모델은 본질적으로 가치가 없기 때문에 머신 러닝의 숨은 영웅입니다. 그러나 뛰어난 기능을 사용하면 간단한 모델도 매우 강력할 수 있습니다. 또한 기능을 선택할 때 상식을 사용하는 것이 중요합니다. 관련 없는 기능은 제거하고 분석 중인 문제와 관련된 요소를 포함해야 합니다. 궁극적으로 모델에 제공되는 기능의 품질은 모델 성능에 대한 주요 제한 요소입니다.

  • 00:10:00 이 비디오는 기계 학습 모델이 유용한 신호만 사용하도록 기능을 정리하고 엔지니어링하는 다양한 기술을 다룹니다. 여기에는 이상값 제거, 데이터 정규화, 왜곡된 데이터 변환, 기능을 더 유용한 기능으로 결합, 연속 변수에서 범주형 변수 생성이 포함됩니다. 이러한 기술의 목적은 데이터에서 중요한 추세를 정확하게 캡처하고 대표성이 없는 항목을 폐기하는 기능을 얻는 것입니다. 비디오는 또한 이름, 연령, 클래스, 티켓 번호, 선실 번호 및 승선 포트를 포함하여 배에 탑승한 승객에 대한 정보가 포함된 Titanic 데이터 세트를 소개합니다. 비디오는 계속해서 대상 변수의 분포를 탐색하는데, 이는 배에 있는 개인이 생존하는지 여부입니다.

  • 00:15:00 연사는 머신 러닝의 클래스 불균형 문제에 대해 논의합니다. 여기서 양성 사례의 수가 음성 다수 사례보다 훨씬 적기 때문에 모델이 양성 사례에서 신호를 감지하기 어렵습니다. 화자는 네거티브 클래스를 다운샘플링하는 것과 같이 두 경우 모두 신호를 더 잘 포착하도록 모델을 조정할 것을 제안합니다. 그러나 예제에서 사용된 데이터셋은 심하게 불균형하지 않기 때문에 화자는 연속적인 특징에 대한 기본 탐색 데이터 분석부터 시작하여 데이터 특징 탐색을 진행합니다. 화자는 이름, 티켓, 성별, 객실, 승선과 같은 숫자가 아닌 기능을 삭제하고 정리된 데이터 세트의 처음 5개 행을 인쇄합니다. 그런 다음 화자는 특성의 분포와 상관 관계를 조사하고 p-class 및 fair가 생존 열과 가장 강한 상관 관계가 있으므로 예측에 유용할 수 있음을 확인합니다.

  • 00:20:00 비디오는 데이터의 연속적인 특징에 대한 몇 가지 기본적인 설명 데이터 분석을 검토합니다. 비디오는 이름 및 티켓과 같은 숫자가 아닌 기능을 삭제하고 처음 5개 행을 인쇄합니다. 데이터는 내장된 pandas 함수를 사용하여 설명되며 누락된 값과 "Survived"라는 이진 대상 변수가 있음을 알 수 있습니다. 상관관계 매트릭스가 분석되며 각 기능이 "생존" 및 기타 기능과 얼마나 상관관계가 있는지 기록하는 것이 중요합니다. 강한 음의 상관관계는 양의 상관관계만큼 유용할 수 있다고 명시되어 있습니다. "p-class" 및 "Fare" 특성은 "Survived"와 가장 강한 상관 관계를 갖는 것으로 관찰되지만 "Fare" 및 "p-class"는 특성 간의 상관 관계가 높아 모델을 혼동할 수 있습니다.

  • 00:25:00 강사가 대상 변수에 대한 유용한 예측 변수가 될 수 있는 기능을 식별하는 방법에 대해 설명합니다. 이 방법은 대상 변수별로 그룹화하고 살아남은 사람과 살아남지 못한 사람에 대한 각 기능의 분포를 분석하고 통계적 유의성을 결정하기 위해 t-테스트를 실행하는 작업을 포함합니다. 강사는 잠재적으로 좋은 생존 지표로 눈에 띄는 두 가지 기능인 공정함과 등급을 강조하지만 상관관계가 해석에 미치는 영향에 대해 주의를 줍니다. 또한 강사는 연령 특성의 결측값에 대해 설명하고 그룹 기준을 사용하여 임의로 결측인지 여부를 확인합니다. 또한 강사는 대상 변수와의 분포 및 관계를 시각화하기 위해 연속 기능을 플로팅하는 방법을 설명합니다.

  • 00:30:00 이 비디오는 생존율을 결정할 때 연속 기능에 대한 평균 또는 중앙값에 의존하는 대신 데이터의 전체 분포를 살펴보는 것의 중요성에 대해 논의합니다. 이 비디오는 평균에만 의존할 때 취해야 할 주의를 강조하면서 살아남은 사람과 살아남지 못한 사람의 나이와 운임에 대한 겹쳐진 히스토그램을 플로팅하는 예를 제공합니다. 또한 이 동영상은 seaborn의 범주 도표를 사용하여 승객 등급 및 가족 수와 같은 다양한 범주 기능의 각 수준에 대한 생존율 백분율을 표시합니다. 생존하다. 또한 비디오는 형제자매, 배우자, 부모 및 자녀 기능을 단일 기능으로 결합하는 방법을 살펴보고 모델이 효과적으로 일반화되도록 지표 변수를 생성할 때 건전한 논리를 사용하는 것의 중요성에 대해 설명합니다.

  • 00:35:00 연사는 기계 학습에서 기능 엔지니어링의 중요성을 강조합니다. 발표자는 때때로 개별 기능이 단일 기능보다 더 효과적일 수 있으므로 테스트 없이 기능을 너무 많이 압축하지 말라고 조언합니다. 범주형 기능으로 이동하면서 화자는 누락된 값과 각 기능의 고유한 값 수를 찾아보라고 조언합니다. 기능을 그룹화하고 각 그룹의 대상 변수에 대한 평균값을 살펴보는 것이 데이터 세트를 더 잘 이해하는 데 어떻게 도움이 될 수 있는지 논의합니다. 특히 화자는 누락된 객실 기능과 생존율 사이의 관계를 탐색하는 데 시간을 보냅니다. 그들은 이러한 방식으로 데이터를 탐색하여 기능의 가치가 낮아 보이는데도 불구하고 생존율에 대한 강력한 지표를 발견하게 된 방법을 설명합니다.

  • 00:40:00 발표자가 기계 학습을 위한 기능 탐색 및 엔지니어링 프로세스에 대해 논의합니다. 탐색 기능에는 캐빈, 티켓 및 이름이 포함됩니다. 오두막 변수는 생존율에 영향을 미칠 것으로 가정되는 오두막의 존재에 대한 지표 변수를 생성하는 데 사용됩니다. 티켓 변수는 무작위로 할당되는 것으로 결정되어 기능으로 삭제됩니다. 이름 변수는 사회적 지위를 나타내고 생존율과 상관 관계가 있는 제목에 대해 탐색됩니다. 피벗 테이블은 각 타이틀의 생존율을 조사하는 데 사용되며 이상값은 어린 소년의 "마스터" 타이틀입니다. 마지막으로 화자는 다양한 수준의 기능과 생존율 간의 관계를 탐색하기 위해 범주형 기능을 플로팅하는 방법에 대해 설명합니다.

  • 00:45:00 추가 기능 탐색에 따르면 제목, 선실 표시기 및 성별은 생존과 강한 상관 관계가 있는 반면 착수 기능은 많은 정보를 제공하지 않으며 중복됩니다. 피벗 테이블을 사용하여 Cherbourg에서 탑승한 사람들이 Queenstown 또는 Southampton에서 탑승한 사람들에 비해 더 많은 사람들이 선실을 가지고 있는 것으로 밝혀져 Cherbourg에서 더 높은 생존율을 설명했습니다. 마지막으로 탑승한 직계 가족의 수를 하나의 기능으로 통합하고, 이들의 연관성으로 인해 승객 등급 또는 운임 중 하나의 사용을 제안했습니다.

  • 00:50:00 강사가 기능 엔지니어링 프로세스와 기계 학습에서 누락된 값을 처리하는 방법에 대해 설명합니다. 누락된 값을 대체하는 세 가지 일반적인 접근 방식, 즉 기능의 평균 또는 중앙값으로 채우기, 합리적인 값을 예측하기 위한 모델 구축 또는 기본값 할당에 대해 설명합니다. 강사는 편향을 피하면서 모델을 만족시키는 평균값으로 누락된 연령 값을 대체하기로 결정합니다. 범주형 변수인 착수된 기능도 누락된 값을 나타내기 위해 다른 값을 추가하여 정리됩니다. 또한 데이터에서 이상값을 제거하는 방법으로 캡핑 프로세스가 도입되었습니다. 이는 이상값을 추적하는 대신 모델이 데이터의 실제 추세에 맞는지 확인하는 데 중요합니다.

  • 00:55:00 발표자는 다양한 임계값을 사용하여 이상값을 식별하는 방법에 대해 설명합니다. 이상값을 탐지하는 기능을 정의하고 값의 분포에 따라 각 기능에 대한 임계값을 설정하고 조정합니다. 형제자매, 배우자, 부모, 자녀 및 연령에 대한 최대값은 합리적이므로 제한할 필요는 없지만 공정한 기능은 99번째 백분위수로 제한됩니다. 연령 및 공정한 기능은 기능에 상한선을 설정하는 "클립" 방법을 사용하여 변환됩니다. 그런 다음 발표자는 왜곡된 데이터와 긴 꼬리를 쫓는 모델을 포함하여 잠재적인 문제에 대해 논의합니다. 프리젠터는 연속 기능의 분포를 시각화하고 이를 보다 간결하고 이해하기 쉬운 분포로 변환합니다.

  • 01:00:00 이 비디오는 머신 러닝 모델을 개선하기 위해 데이터를 더 잘 작동하고 압축되도록 변환하는 프로세스를 살펴봅니다. 사용되는 특정 변환은 지수가 특정 기능의 각 데이터 포인트에 적용되는 Box-Cox 거듭제곱 변환입니다. 이 비디오는 다른 지수로 변환을 테스트하고 QQ 플롯 및 히스토그램과 같은 기준을 사용하여 가장 잘 작동하는 데이터를 생성한 변환을 결정하는 프로세스를 설명합니다. 최종 결과는 긴 꼬리와 이상값으로 기계 학습 모델을 산만하게 하지 않는 관심 기능에 대한 보다 압축된 분포입니다. 변환된 데이터는 나중에 사용할 수 있도록 데이터 프레임에 기능으로 저장됩니다.

  • 01:05:00 비디오는 기존 텍스트 데이터에서 새 기능을 만드는 방법을 탐색합니다. 이름 특징을 분석한 후 화자는 사람의 칭호를 분석하고 새로운 칭호 특징을 만드는 방법을 보여줍니다. 제목 기능은 누군가가 생존했는지 여부를 나타내는 강력한 지표로 밝혀졌으며 모델링 준비를 위해 데이터에 추가됩니다. 비디오는 또한 승객에게 객실이 있는지 여부를 나타내는 객실 기능에 대한 이진 표시기를 만드는 방법을 다룹니다. 마지막으로 발표자는 탑승한 형제자매, 배우자, 부모 및 자녀 수와 같은 기존 기능을 탑승한 직계 가족 수를 나타내는 새로운 기능으로 결합하여 모델링을 위한 데이터를 준비하는 방법을 시연합니다.

  • 01:10:00 발표자는 기계 학습 모델을 위해 범주형 기능을 숫자 기능으로 변환하는 것의 중요성에 대해 논의합니다. 그들은 모델이 문자열 값이 아닌 숫자 값만 이해할 수 있기 때문에 이것이 필요하다고 설명하고 두 번째 학습 패키지의 레이블 인코딩 예를 제공합니다. 그런 다음 루프를 통해 이 변환을 Titanic 데이터 세트의 숫자가 아닌 기능에 적용합니다. 마지막으로 발표자는 보이지 않는 데이터에 대한 기계 학습 모델의 성능을 평가하기 위해 데이터를 교육, 검증 및 테스트 세트로 분할하는 것의 중요성에 대해 논의합니다. 사이클 학습에서 분할된 훈련 테스트를 사용하여 데이터를 이러한 세트로 분할하는 방법을 보여줍니다.

  • 01:15:00 비디오는 훈련 테스트 분할 방법을 사용하여 데이터를 훈련, 검증 및 테스트 세트로 분할하는 방법을 다룹니다. 이 메서드는 하나의 데이터 세트를 두 개로 분할하는 것만 처리할 수 있으므로 세 개의 개별 데이터 세트를 얻으려면 메서드를 두 번 통과해야 합니다. 이 비디오는 또한 데이터를 표준화하는 것의 중요성 또는 척도가 다른 기능을 정규화하기 위해 값이 평균보다 높거나 낮은 표준 편차의 수를 나타내는 숫자로 변환하는 것의 중요성에 대해 설명합니다. 프로세스를 설명하기 위해 제공된 예제와 함께 표준 스칼라를 가져와서 데이터 크기를 조정하는 데 사용합니다.

  • 01:20:00 강사가 일부 머신 러닝 모델에 대한 스케일링 데이터의 중요성에 대해 논의하고 타이타닉에서 생존을 예측하는 네 가지 기능 세트의 성능을 비교합니다. 랜덤 포레스트와 같은 일부 알고리즘에는 확장된 데이터가 반드시 필요한 것은 아니지만 확장을 통해 다른 알고리즘을 더 빠르게 훈련하고 더 나은 성능을 발휘할 수 있습니다. 또한 강사는 네 가지 기능 집합을 정의합니다. 원본 기능, 정리된 원본 기능, 새 기능에 정리된 원본 기능 및 축소된 기능을 추가하여 각각에 대해 모델을 구축하고 성능을 비교하여 정리, 변형 및 생성의 가치를 이해합니다. 마지막으로 강사는 교육, 검증 및 테스트 세트에서 동일한 예제가 사용되도록 CSV 파일에 데이터를 기록합니다.

  • 01:25:00 joblib, matplotlib, seaborn, numpy, pandas, random forest classifier 및 grid search cv와 같은 패키지를 사용하여 원시 원본 기능에 모델을 맞추는 프로세스에 대해 설명합니다. 특징들 간의 상관관계는 상관관계 매트릭스로부터 생성된 히트맵을 이용하여 가시화되었으며, 승객 등급과 캐빈은 0.7의 높은 상관관계를 가지는 것으로 나타났다. 그리드 검색 cv는 추정기 수 및 트리의 최대 깊이와 같은 모델에 대한 최상의 하이퍼파라미터를 찾는 데 사용됩니다. 가장 좋은 모델은 최대 깊이가 8인 약 512개의 추정기가 있는 것으로 확인되어 평균 점수가 약 84.5%이므로 다음 데이터 집합으로 이동할 수 있습니다.

  • 01:30:00 비디오는 랜덤 포레스트 모델의 기능 중요성과 그리드 검색 cv 사용의 이점을 탐색합니다. 모델의 특성 중요도는 성별이 가장 중요한 특성인 반면 연령은 이전에 생존의 강력한 지표로 여겨졌던 승객 등급보다 더 중요함을 보여줍니다. 그러나 승객 클래스는 객실이 있는지 여부 또는 지불한 요금과 같은 다른 기능과 높은 상관관계가 있을 수 있으므로 대상 변수와의 관계를 진정으로 구동하는 요소에 대해 모델이 혼동될 수 있습니다. 모델이 훈련 데이터의 100%에 대해 최상의 하이퍼파라미터 설정에 적합하면 검증 세트에서 평가할 준비가 된 것입니다. 그런 다음 모델은 깨끗한 기능에 적합하여 누락된 값과 이상값이 기본 추세를 파악하는 능력에 상당한 영향을 미쳤는지 확인합니다. 이 모델에 대한 최상의 하이퍼파라미터 설정은 원시 기능에 대한 모델보다 간단하며 기능 중요도는 이전 모델과 거의 동일합니다. 마지막으로 모델은 변환된 기능을 포함한 모든 기능에 적합하여 단순한 기능 외에 얼마나 많은 가치를 제공하는지 확인합니다.

  • 01:35:00 이 비디오는 성능을 기반으로 최상의 모델을 선택하기 위해 검증 데이터 세트에 대해 각 기능 세트에서 생성된 최상의 모델을 평가하는 프로세스를 탐색합니다. 이 비디오는 최상의 모델을 결정할 때 모델 대기 시간을 고려하는 것의 중요성에 대해 논의하고 정확도, 정밀도 및 재현율 점수 계산에 사용되는 패키지를 언급합니다. 이전에 저장된 모델은 루프를 사용하여 읽어들여 모델 이름을 키로 하고 모델 객체를 값으로 하는 사전으로 저장됩니다. 검증 세트의 성능을 기반으로 최상의 모델이 선택되고 홀드아웃 테스트 세트의 성능이 편향되지 않은 성능 보기로 평가됩니다.

  • 01:40:00 발표자는 모델 사전에 저장된 모델을 로드하고 "모델 평가" 기능을 사용하여 성능을 평가하는 방법에 대해 설명합니다. 발표자는 이 사례 연구에서 유효성 검사 세트에서 가장 성능이 좋은 모델은 모든 기능을 기반으로 구축된 모델인 반면 감소된 기능을 기반으로 구축된 모델은 대기 시간이 가장 짧고 가장 단순하다고 설명합니다. 발표자는 해결 중인 문제에 따라 정밀도와 재현율 사이의 장단점을 강조합니다. 마지막으로 발표자는 예측 시간 요구 사항이 없으므로 모든 기능에 구축된 모델을 배포하고 테스트 세트에서 평가할 것이라고 말합니다.

  • 01:45:00 화자는 테스트 세트가 모델 선택에 사용되지 않은 방법과 최종 선택된 모델의 성능을 평가하는 편견 없는 방법을 설명합니다. 선택한 모델은 64개의 추정기와 최대 깊이가 8인 4개의 다른 기능을 기반으로 구축되었습니다. 정확도는 확인되지 않은 데이터에 대해 견고하게 테스트 및 평가되었으며 교차 검증에서 83.7%, 검증 세트에서 83%, 테스트 세트에서 81%의 정확도를 생성했습니다. 이 정보를 통해 화자는 이 모델을 타이타닉호에 탑승한 사람들의 생존 여부를 예측하는 데 가장 적합한 모델로 제안할 자신이 있습니다. 발표자는 또한 이 과정에서 학습한 기술을 모든 새로운 기능 세트로 일반화하여 가장 강력한 기계 학습 모델을 구축하기 위해 모든 가치를 추출할 수 있다고 언급합니다.
Feature Engineering Case Study in Python for Machine Learning Engineers
Feature Engineering Case Study in Python for Machine Learning Engineers
  • 2022.04.06
  • www.youtube.com
Another free course to help you become a machine learning engineer in the real-world.LogikBot - Affordable, Real-World and Comprehensive - https://www.logikb...
 

Google 클라우드 플랫폼에서 BigQuery를 사용한 기계 학습



Google 클라우드 플랫폼에서 BigQuery를 사용한 기계 학습

이 동영상은 기계 학습을 위한 BigQuery 사용에 중점을 둔 과정의 내용을 다룹니다. BigQuery는 처음에 Google에서 내부적으로 사용되었고 나중에 클라우드 서비스가 된 엔터프라이즈 데이터 웨어하우스입니다. 확장성이 뛰어나고 서버리스이며 페타바이트의 데이터를 수용하고 빠른 쿼리 결과를 제공할 수 있습니다. 과정 지침은 실제 사례 연구를 기반으로 하며 데이터 소싱에서 모델 생성에 이르기까지 기계 학습 모델을 구축하는 프로세스를 통해 학습자를 안내합니다. 과정 전반에 걸쳐 학습자는 BigQuery를 활용하여 모델을 구성하고 BigQuery 전용 Google Cloud Platform(GCP) 계정을 설정해야 합니다.

이 동영상은 하드웨어 리소스 확장에 대한 Google의 지침 원칙을 설명하고 확장보다는 확장 결정을 강조합니다. Google은 하드웨어가 언제든지 고장날 수 있음을 인식하므로 설계 시 잠재적인 고장을 고려해야 합니다. 또한 Google은 저렴하고 공급업체 유연성을 허용하는 상용 하드웨어를 사용합니다. 하드웨어 비용이 높기 때문에 확장보다 확장이 선호됩니다. Google은 GFS, MapReduce 및 Bigtable과 같은 기술을 개발하여 하드웨어 아키텍처를 확장했습니다. Colossus는 GFS를 대체했으며 BigQuery를 비롯한 Google 기술의 기본 분산 하위 시스템 역할을 합니다.

강사는 Google의 데이터베이스 솔루션인 Spanner에 대한 개요를 제공합니다. 이 솔루션은 전 세계적으로 배포되며 Colossus를 사용하여 분산 트랜잭션을 관리합니다. 동영상은 또한 Google Cloud Platform 내에서 결제 계정에 가입하고 관리하는 과정을 보여줍니다. 사용자는 플랫폼 웹사이트를 방문하여 약관에 동의하고 필요한 정보를 제공하여 GCP 계정을 만들 수 있습니다. 신규 사용자에게는 GCP에서 사용할 수 있는 $300 크레딧이 부여되며 청구 섹션을 통해 모니터링할 수 있습니다. 강사는 특정 청구 목표에 도달하면 알림을 받도록 예산 알림을 설정하도록 조언합니다.

BigQuery의 생성 및 목적에 대해 자세히 설명합니다. Google의 기하급수적인 데이터 증가로 인해 대용량 데이터 세트에 대한 대화형 쿼리를 허용하는 BigQuery의 개발이 필요했습니다. BigQuery는 50행 또는 500억 행과 관계없이 쿼리를 처리할 수 있습니다. 비표준 SQL 언어는 짧은 학습 곡선을 용이하게 하며 수천 대의 시스템에서 SQL 실행을 병렬화할 수 있습니다. BigQuery는 구조화된 데이터를 저장하지만 테이블 내에서 중첩된 레코드 유형을 지원하여 중첩된 구조를 저장할 수 있다는 점에서 관계형 데이터베이스와 다릅니다.

BigQuery의 아키텍처를 설명하고 병렬화에 대한 접근 방식을 강조합니다. 코어당 하나의 쿼리를 실행하는 대부분의 관계형 데이터베이스 시스템과 달리 BigQuery는 수천 개의 코어에서 단일 쿼리를 실행하도록 설계되어 기존 접근 방식에 비해 성능이 크게 향상되었습니다. Dremel 엔진은 쿼리 파이프라이닝을 가능하게 하여 일부 쿼리가 I/O를 기다리는 동안 다른 쿼리가 사용 가능한 코어를 활용할 수 있도록 합니다. BigQuery는 다중 테넌시 접근 방식을 채택하여 여러 고객이 다른 위치에 영향을 주지 않고 동일한 하드웨어에서 동시에 쿼리를 실행할 수 있도록 합니다. BigQuery 인터페이스는 테이블 및 뷰에 대한 액세스를 구성하기 위한 쿼리 기록, 저장된 쿼리, 작업 기록 및 리소스 섹션을 포함하여 세 가지 핵심 창으로 구성됩니다.

이 동영상은 BigQuery와 관련된 Google Cloud Console 내의 화면과 패널에 대한 자세한 설명을 제공합니다. 탐색 메뉴에는 데이터 세트 및 테이블과 같은 BigQuery 리소스가 표시되며 SQL 작업공간 섹션에서는 사용자가 쿼리를 만들고 테이블로 작업하며 작업 기록을 볼 수 있습니다. Explorer 패널은 현재 프로젝트와 해당 리소스를 나열하고 세부 정보 패널은 선택한 리소스에 대한 정보를 제공하고 테이블 스키마, 데이터 내보내기 및 기타 기능을 수정할 수 있습니다. BigQuery는 빈번한 소규모 행 수준 업데이트에 대한 지원 부족으로 인해 OLTP 애플리케이션에 적합하지 않음이 명확해졌습니다. NoSQL 데이터베이스는 아니지만 BigQuery는 SQL 방언을 사용하고 OLAP 데이터베이스에 더 가깝기 때문에 많은 OLAP 사용 사례에 유사한 이점과 적합성을 제공합니다.

Google의 BigQuery에 대한 정의에 대해 자세히 설명하며 완전 관리형, 고도로 확장 가능하고 비용 효율적이며 빠른 클라우드를 강조합니다.

비디오에서 논의된 추가 사항은 다음과 같습니다.

  1. BigQuery의 저장소 형식: BigQuery는 쿼리 성능에 최적화된 열 기반 저장소 형식을 사용합니다. 데이터를 압축 및 열 방식으로 저장하여 불필요한 데이터에 액세스하지 않고 쿼리의 특정 열을 효율적으로 처리할 수 있습니다. 이 형식은 집계 및 필터링과 관련된 분석 워크로드에 특히 유용합니다.

  2. 데이터 수집: BigQuery는 다양한 데이터 수집 방법을 지원합니다. Google Cloud Storage, Google Sheets 및 Google Cloud Bigtable과 같은 소스에서 데이터를 직접 로드할 수 있습니다. 또한 ETL(Extract, Transform, Load) 작업을 위해 Dataflow 및 Dataprep과 같은 다른 데이터 처리 도구와의 통합을 제공합니다.

  3. 데이터 파티셔닝 및 클러스터링: 쿼리 성능을 최적화하기 위해 BigQuery는 파티셔닝 및 클러스터링과 같은 기능을 제공합니다. 파티셔닝에는 선택한 열(예: 날짜)을 기준으로 큰 데이터 세트를 더 작고 관리 가능한 부분으로 나누는 작업이 포함됩니다. 클러스터링은 하나 이상의 열을 기준으로 각 파티션 내에서 데이터를 추가로 구성하여 검색된 데이터의 양을 줄여 쿼리 성능을 향상시킵니다.

  4. 데이터 액세스 제어 및 보안: BigQuery는 데이터 보안을 관리하기 위한 강력한 액세스 제어를 제공합니다. Google Cloud Identity and Access Management(IAM)와 통합되어 사용자가 프로젝트, 데이터 세트 및 테이블 수준에서 세분화된 액세스 권한을 정의할 수 있습니다. BigQuery는 저장 및 전송 중 암호화도 지원하여 민감한 데이터를 보호합니다.

  5. 데이터 가격 책정 및 비용 최적화: 동영상에서는 BigQuery의 가격 책정 모델을 간략하게 다룹니다. 쿼리에서 처리한 데이터 양에 따라 사용자에게 요금을 부과하는 종량제 방식으로 운영됩니다. BigQuery는 중복 데이터 처리를 방지하여 비용을 절감할 수 있는 쿼리 캐싱과 같은 기능을 제공합니다. 쿼리를 최적화하고 불필요한 데이터 검색을 피하여 비용을 최소화하는 것이 중요합니다.

  6. BigQuery를 사용한 기계 학습: 이 과정에서는 기계 학습 작업에 BigQuery를 사용하는 방법을 다룹니다. BigQuery는 AutoML 및 TensorFlow와 같은 Google Cloud의 기계 학습 서비스와 통합되어 사용자가 기계 학습 모델을 교육하기 전에 데이터 준비 및 기능 엔지니어링에 BigQuery의 기능을 활용할 수 있습니다.

  7. 사용 사례 및 예: 강사는 대용량 로그 데이터 분석, 시장 조사 수행, 고객 세분화 수행, 대규모 데이터 세트에서 복잡한 분석 쿼리 실행 등 BigQuery가 뛰어난 다양한 실제 사용 사례를 언급합니다.

전반적으로 이 동영상은 BigQuery의 기능, 아키텍처 및 주요 기능에 대한 개요를 제공하며 대규모 데이터 분석 및 기계 학습 작업에 대한 적합성을 강조합니다. 방대한 양의 데이터를 효율적으로 처리하기 위해 BigQuery와 같이 확장성이 뛰어난 완전 관리형 클라우드 기반 솔루션을 사용할 때의 이점을 강조합니다.

  • 00:00:00 동영상에서는 기계 학습에 BigQuery를 사용하는 데 중점을 둔 과정 콘텐츠에 대해 설명합니다. BigQuery는 원래 클라우드 서비스가 되기 전에 Google에서 내부적으로 사용되었던 확장성이 뛰어난 서버리스 엔터프라이즈 데이터 웨어하우스입니다. 페타바이트의 데이터를 수용하고 단 몇 초 만에 데이터를 반환할 수 있으므로 특히 대규모 데이터 세트가 있는 감독 기계 학습에 유용한 리소스가 됩니다. 이 과정의 지침은 실제 사례 연구를 기반으로 하며, 학습자는 데이터 소싱에서 모델링에 이르기까지 기계 학습 모델을 구축하는 프로세스를 통해 고도로 예측 가능한 모델을 생성합니다. 과정 전반에 걸쳐 학습자는 BigQuery를 활용하여 모델을 구축하게 됩니다. 즉, BigQuery에만 적용되는 GCP 계정을 설정하는 것입니다.

  • 00:05:00 이 동영상은 Google에서 하드웨어 리소스를 확장하는 기본 원칙, 특히 확장이 아닌 확장으로 이동하기로 한 결정을 설명합니다. 하드웨어와 관련하여 Google의 기본 원칙은 모든 것은 언제든지 실패할 수 있으며 설계는 이를 설명해야 한다는 것입니다. 두 번째 원칙은 저렴하고 쉽게 구할 수 있는 상용 하드웨어를 사용하는 것과 관련이 있으므로 Google이 어떠한 불이익 없이 공급업체를 전환할 수 있습니다. 마지막으로 하드웨어는 비싸므로 목표는 확장이 아닌 확장입니다. Google은 GFS, MapReduce 및 Bigtable과 같은 핵심 기술을 설계하여 스케일 아웃 하드웨어 아키텍처로 이동합니다. 또한 Colossus는 GFS를 대체했으며 Colossus에 의존하는 BigQuery를 포함하여 Google 기술의 대부분이 구축되는 기본 분산 하위 시스템입니다.

  • 00:10:00 강사는 전 세계적으로 배포되고 Colossus를 사용하여 분산 트랜잭션을 관리하는 Google의 데이터베이스 솔루션인 Spanner에 대한 개요를 제공하는 동시에 Google Cloud Platform 내에서 결제 계정에 가입하고 관리하는 방법을 시연합니다. Google Cloud 서비스를 사용하려면 사용자는 GCP에서 계정을 만들어야 합니다. 브라우저로 이동하여 'GCP' 또는 'Google Cloud Platform'을 입력하면 됩니다. 약관에 동의하고 적절한 정보를 제공하면 신규 사용자에게 GCP에서 사용할 수 있는 300달러의 크레딧이 제공되며 결제 섹션의 개요 및 예산 기능을 통해 모니터링할 수 있습니다. 강사는 사용자가 특정 청구 목표에 도달했을 때 알림을 받을 수 있도록 예산 알림을 설정하도록 권장합니다. 이는 "예산 만들기"를 클릭하고 지출할 총 달러 금액을 지정하고 프로젝트 및 예산 알림을 선택하여 달성할 수 있습니다. 사용할 수 있습니다.

  • 00:15:00 BigQuery의 생성 및 목적에 대해 논의합니다. Google의 기하급수적인 데이터 증가로 인해 문제가 발생하여 대규모 데이터 세트에 대한 대화형 쿼리를 지원하는 도구인 BigQuery가 개발되었습니다. 50개의 행을 쿼리하든 500억 개의 행을 쿼리하든 상관없이 동일한 작업을 수행할 수 있는 옵션을 제공합니다. SQL 기반의 비표준 방언 덕분에 학습 곡선이 짧고 수천 대의 시스템에서 SQL 실행을 병렬화하는 기능이 내장되어 있습니다. 구조화된 데이터는 BigQuery가 저장할 수 있는 데이터이지만 관계형 데이터베이스와 달리 이러한 필드는 테이블 내의 중첩된 레코드를 포함하여 레코드 유형을 보유할 수 있습니다. 이러한 중첩 구조는 기본적으로 미리 조인된 테이블입니다.

  • 00:20:00 이 동영상은 BigQuery의 아키텍처와 병렬화에 대한 접근 방식을 설명합니다. 대부분의 관계형 데이터베이스 시스템은 코어당 하나의 쿼리만 실행할 수 있지만 BigQuery는 수천 개의 코어에서 단일 쿼리를 실행하도록 설계되어 기존 쿼리 코어 접근 방식에 비해 성능을 크게 극대화합니다. 이는 일부 쿼리가 I/O를 기다리는 동안 다른 쿼리가 사용 가능한 코어를 사용할 수 있도록 쿼리를 파이프라인할 수 있는 Dremel 엔진으로 인해 가능합니다. 이 다중 테넌시 접근 방식은 많은 고객이 동일한 하드웨어에서 동시에 쿼리를 실행할 수 있으며 BigQuery는 다양한 데이터 사용 패턴을 활용하므로 한 지리적 위치에서 사용량이 많아도 다른 위치에 영향을 미치지 않습니다. 이 동영상은 또한 각 프로젝트에 특정한 쿼리 기록이 있는 BigQuery 인터페이스의 세 가지 핵심 창에 대해 설명하고 테이블 및 보기에 대한 액세스를 구성하는 데 사용할 수 있는 쿼리, 작업 기록 및 리소스 섹션을 저장합니다.

  • 00:25:00 발표자가 BigQuery 전용 Google Cloud Console을 구성하는 다양한 화면과 패널에 대해 설명합니다. 탐색 메뉴에는 데이터 세트 및 테이블과 같은 BigQuery 리소스가 표시되며 SQL 작업공간 섹션에서는 사용자가 쿼리를 만들고 테이블로 작업하며 작업 기록을 볼 수 있습니다. 탐색기 패널에는 현재 프로젝트 및 리소스 목록이 표시되고 세부 정보 패널은 선택한 리소스에 대한 정보를 제공하며 사용자가 테이블 스키마를 수정하고 데이터를 내보내고 기타 기능을 수행할 수 있도록 합니다. 발표자는 또한 BigQuery가 아닌 것에 대해 설명하면서 빈번한 소규모 행 수준 업데이트를 지원하지 않기 때문에 OLTP 애플리케이션에 적합하지 않으며 SQL 언어를 사용하기 때문에 NoSQL 데이터베이스가 아니라고 설명합니다. . 대신 BigQuery는 OLAP 데이터베이스에 더 가깝고 동일한 이점을 많이 제공하므로 많은 OLAP 사용 사례에 적합합니다.

  • 00:30:00 Google의 BigQuery 정의에 대해 논의했습니다. 머신 러닝이 내장된 분석을 위한 완벽하게 관리되고 확장성이 뛰어나며 비용 효율적이고 빠른 클라우드 데이터 웨어하우스입니다. 또한 BigQuery는 Megastore 및 Colossus와 같은 다른 많은 구성 요소로 구성됩니다. BigQuery에는 데이터를 열에 저장하고 성능을 개선하며 반환된 데이터를 기준으로 사용자에게 요금을 부과하는 데이터 저장용 알고리즘인 열 IO가 있습니다. Google의 네트워크는 세부 사항에 대한 관심이 높기 때문에 빠릅니다. 따라서 네트워크 아키텍처의 대부분은 미스터리로 남아 있습니다. 마지막으로 BigQuery는 BigQuery 2.0 출시와 함께 표준 SQL에 대한 지원을 출시했으며, BigQuery SQL의 이름을 Legacy SQL로 변경하고 BigQuery에 저장된 쿼리 및 데이터에 대해 선호하는 SQL 언어를 사용했습니다.

  • 00:35:00 동영상은 BigQuery에서 쿼리를 저장하고 여는 과정과 보기를 만들고 쿼리하는 과정을 다룹니다. 내레이터는 보기가 가상 테이블이라고 설명하고 새 데이터 세트에서 보기를 만들고 저장하는 방법을 보여줍니다. 이 동영상에서는 쿼리 형식 지정 및 쿼리 설정 액세스와 같은 쿼리 편집기 내의 다양한 옵션에 대해서도 설명합니다. 또한 이 비디오는 기계 학습 및 데이터 과학 경력의 폭발적인 성장을 다루고 데이터 분석가와 데이터 과학자와 같은 역할 간의 차이점에 대해 설명합니다. 마지막으로 내레이터는 이 과정의 초점이 해당 분야의 표준으로 간주되는 Python을 사용하는 지도 머신 러닝에 맞춰질 것이라고 설명합니다.

  • 00:40:00 데이터 과학자, 기계 학습 엔지니어 및 데이터 엔지니어를 포함하여 기계 학습 분야의 다양한 역할에 대해 논의합니다. 순전히 학문적 또는 연구용 응용 프로그램이 아닌 문제 해결을 위해 기계 학습 원리를 실제 세계에 적용하는 응용 기계 학습에 중점을 둡니다. 구조화된 데이터 세트, 특히 관계형 데이터베이스에서 발견되는 데이터 세트의 중요성도 강조됩니다. 그래디언트 부스터와 같은 기존 모델이 고도로 구조화된 데이터 세트를 모델링하는 데 탁월하고 인공 신경망을 통해 많은 경쟁에서 승리한 것으로 나타났기 때문입니다.

  • 00:45:00 매우 프로세스 지향적인 기계 학습 프로세스를 다룹니다. 이 기사에서는 기계 학습 엔지니어가 해결해야 할 문제가 주어졌을 때 동일한 핵심 단계를 따라야 하는 방법을 설명합니다. 첫 번째 단계는 데이터를 살펴보고 데이터를 소싱하는 것입니다. 대부분의 응용 기계 학습은 감독되기 때문에 먼저 데이터를 정리(또는 "랭글링")해야 합니다. 여기에는 데이터를 숫자로 지원되는 형식으로 마사지하는 작업이 포함됩니다. 이를 위해서는 기계 학습 엔지니어가 데이터 랭글링에 대부분의 시간을 할애해야 합니다. 데이터가 정리되면 모델링 단계가 시작됩니다. 이 단계에서는 정리된 데이터 세트에서 패턴을 학습하는 모델이나 알고리즘을 개발해야 합니다. 기계 학습의 목표는 새로운 데이터에 대해 매우 정확한 예측을 할 수 있도록 하는 것입니다. 새로운 데이터에 대해 모델을 조정하고 테스트한 후에는 소비자가 사용할 수 있도록 프로덕션에 투입됩니다.

  • 00:50:00 이 비디오는 Mac에서 Anaconda 배포를 사용하여 Python 3.7 버전을 설치하는 과정을 설명합니다. Anaconda 배포판은 Windows와 Mac 모두에서 사용할 수 있으며 그래픽 설치 프로그램이 있습니다. 설치 프로그램을 다운로드하고 비밀번호를 입력하면 기본 설치 유형이 권장되며 설치 프로세스는 몇 분 정도 걸릴 수 있습니다. 설치가 완료되면 Anaconda Navigator를 시작할 수 있고 새로운 Python 3 노트북을 열어 코딩을 시작할 수 있습니다.

  • 00:55:00 강사가 Google Cloud Platform에서 BigQuery로 기계 학습에 사용되는 Jupyter Notebook IDE를 탐색하는 방법을 설명합니다. 첫 번째 단계는 CMD를 입력하고 Anaconda 명령 프롬프트에 액세스하여 노트북에서 노트북을 찾는 것입니다. 여기에서 "Jupyter Notebook"을 입력하면 로컬 컴퓨터에 Python 엔진이 로드됩니다. 로드되면 페이지를 닫는 방법을 포함하여 노트북 탐색에 대해 설명합니다.

  • 01:00:00 "새 노트북"으로 이동하고 Python 3을 선택하는 것부터 시작하여 Jupyter Notebook 사용에 대한 단계별 가이드가 제공됩니다. 이 자습서에서는 라이브러리 가져오기, 셀 생성, 실행 및 이름 바꾸기, 변경 방법도 보여줍니다. 셀 순서, 노트북 자동 저장, 삽입, 복사, 잘라내기, 붙여넣기, 모두 실행 및 커널 다시 시작, Markdown을 사용하여 노트북에 주석 달기. 또한 노트북의 단순성이 강조되고 기계 학습 파이프라인 작업에 충분하다고 보입니다.

  • 01:05:00 동영상은 데이터 세트 및 테이블을 포함하여 BigQuery에서 데이터 작업의 기초를 다룹니다. 실제 모델을 만들 때 규모가 주요 문제가 될 수 있으므로 기계 학습 엔지니어가 BigQuery에서 데이터를 만들고 업로드하고 랭글링할 수 있는 것이 얼마나 중요한지 설명합니다. BigQuery ML을 사용하면 SQL 지식만 있으면 되기 때문에 SQL에 정통한 사용자가 간단하고 쉽게 액세스할 수 있으며 노련한 기계 학습 전문가가 모든 규모에서 모델을 구축할 수 있습니다. 또한 비디오는 데이터 랭글링 및 조작을 위한 라이브러리인 Pandas, Python을 사용한 과학 컴퓨팅을 위한 기본 패키지인 Numpy, 2D 그래프 생성을 위한 Matplotlib, Scikit-Learn은 기존 모델을 구축하는 데 사용되는 라이브러리입니다.

  • 01:10:00 비디오 자습서는 pandas 및 numpy라는 두 가지 핵심 라이브러리를 사용하여 기계 학습을 위한 데이터 랭글링 및 데이터 조작의 기본 사항을 살펴봅니다. pandas 라이브러리는 Titanic 데이터 세트라는 기계 학습을 위한 유명한 장난감 데이터 세트를 로드하고 별칭을 만드는 데 사용됩니다. 모델을 이해할 수 있도록 배열을 만들고 승객 등급, 성별, 연령, 생존 등 모델에 필요한 속성을 식별합니다. 예측 대상 변수는 1 또는 0인 생존 속성입니다. 살아남았다는 것은 1을 의미하고 살아남지 못했다는 것은 0을 의미합니다. 다음 단계는 기계가 이해할 수 있는 Python 코드를 사용하여 속성의 값을 숫자로 변환하는 것입니다. null 또는 nand 값이 있는 모든 관측값이 제거되고 생존 속성이 x축에서 삭제되어 모델이 부정 행위를 방지합니다. 마지막으로 데이터 세트는 scikit-learn이라는 기계 학습용 범용 라이브러리를 사용하여 테스트 및 교육 섹션으로 나뉩니다.

  • 01:15:00 이 비디오는 거대한 데이터 세트로 기계 학습을 사용하는 방법과 실제 시나리오에서 대부분의 모델이 관계형 데이터베이스에서 소싱되는 방식에 대해 설명합니다. SQL Server Management Studio 인터페이스는 일반적으로 SQL 서버 데이터베이스를 관리하는 데 사용되므로 도입되었습니다. 작업이 미래 판매를 예측하는 데 사용할 수 있는 데이터 세트를 생성하는 가상 시나리오가 제시됩니다. 이 동영상은 쿼리를 작성하고 테이블을 조인하여 유명인의 주문 내역을 만드는 방법과 이 정보를 보기로 저장하여 쉽게 쿼리하고 CSV 파일로 내보내 다른 사람들과 공유할 수 있도록 하는 방법을 안내합니다. 팀.

  • 01:20:00 비디오는 SQL Server를 사용하여 클라우드 데이터베이스에서 CSV 파일로 데이터를 내보내는 과정을 안내합니다. 그들은 데이터 분석이라고도 하는 탐색적 데이터 분석이 기계 학습에서 중요한 역할을 한다고 설명하고 데이터 시각화를 위한 Matplotlib 및 Seaborn 라이브러리를 소개합니다. 비디오는 계속해서 이러한 라이브러리를 사용하여 Titanic 데이터 세트를 탐색하고, 누락된 값의 백분율을 계산하고, 히스토그램 및 막대 그래프를 만드는 방법의 예를 보여줍니다. 그들은 Seaborn이 단순성 때문에 종종 선호된다는 점에 주목합니다.

  • 01:25:00 발표자는 다양한 유형의 기계 학습 모델과 해당 응용 프로그램을 탐색합니다. 딥 러닝 모델은 이미지 및 음성 인식에서 탁월하지만 고도로 구조화된 데이터 세트를 기반으로 하는 대부분의 경우 감독 기계 학습에 가장 적합하지 않을 수 있습니다. 그래디언트 부스터와 같은 기존 모델은 더 정확하고 덜 계산 집약적이며 설명하기 쉽고 분류 및 회귀 문제를 가속화할 수 있습니다. 그런 다음 연사는 Python, 데이터 랭글링을 위한 Pandas, 많은 경쟁 모델링 대회에서 우승한 그래디언트 부스터 라이브러리인 XGBoost를 사용하여 기존 모델을 구축하는 과정을 통해 청중을 안내합니다. 이 모델은 데이터 세트에서 83%의 점수를 얻었고 발표자는 Pickle 라이브러리를 사용하여 모델을 저장하는 방법을 설명합니다.

  • 01:30:00 영상은 분류가 무엇이며 등급, 시험 점수, 경험과 같은 특성에 따라 관찰을 그룹으로 구분하는 방법을 설명합니다. 또한 이진 분류와 데이터를 예 또는 아니오 출력이 있는 두 그룹으로 분류하는 것과 관련된 방법을 다룹니다. 그런 다음 비디오는 인공 신경망과 딥 러닝 모델을 소개하고 선형 회귀를 선을 기반으로 값을 예측하는 것으로 정의하고 암 진단이나 주가와 같은 임의의 데이터 포인트를 예측하기 위해 예측에 어떻게 사용되는지 설명합니다. Python의 선형 회귀에 대한 데모는 pandas 라이브러리를 사용하여 데이터를 마사지하는 반면 numpy 라이브러리는 최적화된 배열 컨테이너에 데이터를 보관하고 matplotlib 라이브러리는 데이터 시각화에 사용됩니다. 이 비디오는 공부한 시간과 달성한 점수 사이의 양의 선형 관계를 찾기 위해 그래프를 그리는 방법을 보여주고 결국 Python 스크립트에서 선형 회귀에 사용되는 분류기 모델을 가져옵니다.

  • 01:35:00 화자는 지도 머신 러닝 기법으로서 분류의 기본 사항을 살펴보고 특성에 따라 관찰을 그룹으로 구분하는 단순화된 정의를 제공합니다. 주어진 예는 이메일이 스팸과 스팸이 아닌 두 가지 범주로 구분되는 스팸 감지입니다. 더 복잡한 예는 Titanic 기계 학습 프로젝트로, 모델의 출력이 살아남은 경우 1이거나 살아남지 못한 경우 0인 이진 분류 문제입니다. 섹션의 다음 부분에서는 라이브러리 가져오기, iris 데이터 세트 사용, 레이블 인코딩을 사용하여 텍스트 값을 숫자로 변환, 임의 포리스트 분류기 모델 교육 및 완성된 모델을 97% 정확도를 달성하기 위한 훈련 데이터.

  • 01:40:00 데이터 세트 및 테이블을 포함하여 BigQuery를 사용한 데이터 작업의 기초에 대해 설명합니다. 기계 학습 엔지니어에게는 BigQuery에서 데이터를 생성, 업로드 및 랭글링할 수 있는 능력이 중요합니다. 이 섹션에서는 페타바이트 규모의 데이터를 처리하는 방법과 Cloud Datalab이라는 Google의 클라우드 Jupyter 노트북을 사용할 때의 이점을 포함하여 BigQuery의 데이터 랭글링에 대해 설명합니다. SQL 이외의 프로그래밍 지식이 필요하지 않은 BigQuery ML도 다루어 데이터 전문가가 기계 학습 모델을 쉽게 만들 수 있습니다. 마지막으로 이 섹션에서는 BigQuery에서 데이터 세트를 만들고 여기에 테이블을 추가하는 방법을 포함하여 데이터 세트와 테이블의 미묘한 차이를 다룹니다.

  • 01:45:00 발표자가 BigQuery에서 테이블을 생성할 때 빈 테이블, 외부 데이터 소스, CSV, JSON, Arvo, Parquet 및 ORC와 같은 읽을 수 있는 소스에서 데이터 업로드를 포함하여 다양한 소스 옵션에 대해 논의합니다. 대부분의 기계 학습 엔지니어는 CSV 파일을 사용하는 것을 선호하지만 Arvo는 인코딩 문제 없이 로드가 더 빠르고 구문 분석이 더 쉬우며 Parquet 및 ORC는 Apache Hadoop 에코시스템에서 널리 사용됩니다. 그런 다음 연사는 Datalab이라는 Jupyter Notebook과 유사한 인터페이스가 포함된 GCP에서 호스팅되는 가상 머신(VM)인 Google의 Cloud Data Lab을 소개합니다. 사용자는 Jupyter 노트북에서 로컬로 코드를 가져오고 GCP에서 사용할 수 있으며 새 Datalab 인스턴스를 만들 때 사용자는 스토리지 지역을 선택하고 SSH 키를 만들라는 메시지가 표시될 수 있습니다.

  • 01:50:00 강사가 BigQuery에 대한 연결을 만들고 랭글링된 타이타닉 데이터세트를 클라우드 데이터랩 인스턴스로 가져오는 방법을 시연합니다. BigQuery를 가져오고 이에 대한 연결을 생성함으로써 사용자는 쿼리 데이터에 SQL 코드를 작성할 수 있습니다. Pandas, 의사 결정 트리 분류기, 학습 테스트 분할과 같은 사전 패키징된 라이브러리의 도움으로 사용자는 데이터를 분할하고 학습 데이터에 맞추고 모델에 점수를 매길 수 있습니다. 또한 사용자는 셀 내부에서 직접 쿼리를 변경하고 실행하여 쿼리의 데이터 세트를 저장하는 새로운 pandas 데이터 프레임을 생성할 수 있습니다. 마지막으로 강사는 BigQuery를 사용하여 클라우드 데이터랩 인스턴스에서 다른 데이터세트인 홍채 데이터세트를 업로드하고 쿼리하는 방법을 보여줍니다.

  • 01:55:00 발표자가 BigQuery 라이브러리에서 Google 클라우드 플랫폼의 Jupyter 노트북으로 데이터를 가져오는 방법을 보여줍니다. 홍채 데이터 세트를 가져와 교육 및 테스트 세트로 분할하고 임의 포리스트 분류기를 교육에 사용합니다. 모델에 대한 예측 값이 출력됩니다. 발표자는 또한 Google 홈페이지에서 액세스하고 "편집"을 클릭하여 클라우드 데이터 랩 인스턴스의 리소스를 업그레이드하는 방법을 보여줍니다.

  • 02:00:00 연사는 SQL 실무자가 기존 SQL 기술 및 도구를 사용하여 대규모 기계 학습 모델을 구축하여 기계 학습을 민주화할 수 있게 해주는 도구인 BigQuery ML에 대해 설명합니다. BigQuery ML은 현재 선형 회귀, 이진 로지스틱 회귀, 다중 클래스 로지스틱 회귀의 세 가지 유형의 모델을 지원합니다. 발표자는 SQL 언어를 사용하여 BigQuery에서 이진 로지스틱 회귀 모델을 만드는 방법도 설명합니다. 모델 생성에는 모델 정의, 옵션 지정 및 SQL 문을 사용하여 대상 변수 전달이 포함됩니다. 모델을 평가할 수 있으며 SQL을 통해 정확도 메트릭도 표시할 수 있습니다. 마지막으로 발표자는 모델이 이전에 본 적이 없는 새로운 데이터를 전달받는 예측 단계를 설명합니다.

  • 02:05:00 발표자가 BigQuery ML을 사용하여 이진 분류 모델을 구축하고 평가하는 방법에 대해 설명합니다. 데이터는 CSV 파일에서 BigQuery로 업로드되고 대상 변수를 제외한 모든 열이 모델에 전달됩니다. 평가가 완료되면 모델은 생존을 예측하는 출력의 첫 번째 열을 사용하여 각 가족 구성원에 대한 예측을 수행합니다(살아남은 경우 1개, 생존하지 못한 경우 0개). 그런 다음 발표자는 gsutil이라는 명령줄 도구를 설치합니다. 이 도구는 GCP에서 Google 저장소를 사용하는 데 사용되는 명령줄 도구입니다. 이 도구는 접근성과 가격이 다른 세 가지 수준의 스토리지를 제공합니다.

  • 02:10:00 발표자가 gsutil을 사용하여 Google Cloud Storage에서 파일을 업로드하고 관리하는 방법을 시연합니다. 먼저 사용자는 작업할 프로젝트를 설정하고 gsutil mb를 사용하여 버킷을 만들어야 합니다. 단, 모든 버킷 이름은 고유해야 합니다. 그런 다음 연사는 데이터를 읽고 쓸 수 있는 사람을 제어하기 위해 ACL(액세스 제어 목록)을 사용하여 파일을 버킷에 복사하고 공용 액세스 권한을 부여하는 방법을 설명합니다. 연사는 또한 gsutil을 사용하여 파일을 다운로드하고 다른 버킷에 복사하는 방법과 -m 스위치를 사용하여 업로드 프로세스 속도를 높이는 방법을 시연합니다. 연사는 관계형 데이터베이스에서 두 개의 파일로 데이터를 내보내고 Cloud Storage를 사용하여 GCP에 업로드하는 방법을 보여주며 마무리합니다.

  • 02:15:00 연사는 Google Cloud Platform의 BigQuery에 두 개의 데이터 세트를 업로드하고 SQL을 사용하여 조인하고 머신 러닝 모델을 빌드하기 위한 보기를 만드는 방법을 시연합니다. SQL Server에서 데이터를 내보내고 CSV 파일로 저장한 후 발표자는 데이터를 GCP의 클라우드 스토리지 버킷에 업로드하고 BigQuery에 다운로드한 다음 간단한 조인 문을 사용하여 결합합니다. 마지막으로 발표자는 기계 학습 모델에서 사용할 이 더 큰 데이터 세트의 보기를 만드는 방법을 보여줍니다.

  • 02:20:00 발표자가 타이타닉 프로젝트 데이터 세트용 Cloud Platform의 Google BigQuery에서 테이블을 만드는 과정을 안내합니다. 로컬 소스에서 데이터 세트를 업로드하고, CSV 파일에서 스키마를 자동 감지하고, 헤더 정보가 포함된 첫 번째 행을 건너뜁니다. 테이블을 성공적으로 생성한 후 쿼리를 수행하고 데이터와 헤더가 올바르게 표시되는지 확인합니다. 발표자는 데이터 세트가 이제 프로젝트의 다음 단계를 위해 준비되었다고 말합니다.
Machine Learning with BigQuery on Google's Cloud Platform
Machine Learning with BigQuery on Google's Cloud Platform
  • 2022.04.25
  • www.youtube.com
A complete look at BigQuery for machine learning.LogikBot - Affordable, Real-World and Comprehensive - https://www.logikbot.comThere are two core paths on Lo...