데이터 과학을위한 Python Sklearn 데이터 전처리

최상위 데이터 탐색, 데이터 배포, 데이터 정규화 및 / 또는 표준화, 기본 시각화 및 가설 테스트는 데이터 과학자에게 중요한 기술입니다.

Python 배너를 사용한 배포 확률

이 게시물에서는 다음에 대해 설명합니다.

  • 데이터를 탐색하는 것이 중요한 이유
  • 데이터 배포가 중요한 이유
  • 분포 함수가 가설 검정에 도움이되는 방법
  • Python을 사용하여 z- 점수를 계산하는 방법과 유용성
  • 가우스 (정규) 분포 란 무엇이며 데이터를 정규 분포로 변환하려는 이유와 표준화를 사용하여이 변환을 수행하는 방법

숙련 된 데이터 과학자라도 데이터 탐색 및 가설 테스트는 때때로 어려울 수 있습니다.

데이터 탐색은 모든 데이터 과학 프로젝트에서 매우 중요한 부분입니다. 데이터가 귀하와 귀하의 비즈니스에 무엇을 알려줄 수 있는지 이해하는 데 도움이됩니다. 잠재적 인 문제와 기회를 보여줄 수 있습니다. 추가 조사를위한 아이디어와 고려해야 할 사항을 제공 할 수도 있습니다.

데이터 이해는 데이터 마이닝을위한 산업 간 표준 프로세스 (CRISP-DM) 프로세스의 주요 단계에 공간이있을 정도로 매우 중요하며 시각화하지 않고는 데이터를 이해할 수 없습니다. 프로세스의 다음 단계는 "데이터 준비"이며이 단계에서는 데이터 변환이 필요한지 여부와 변환 방법을 결정해야합니다.

CRISP-DM 방법

데이터 탐색의 일부는 가설 테스트이기도합니다. 가설 테스트는 절름발이 용어로 하나의 가설이 참인지 아닌지 테스트하는 것입니다. 즉, 앱 사용자를 위해 구성된 데이터를 가져와 보겠습니다. 앱의 첫 번째 버전 (web_client)은 웹 기반 앱이며 기본 플랫폼 앱 (new_client)을 시작했습니다. 가설 테스트 시나리오를 만들어 보겠습니다.

h0 : 새 클라이언트를 사용하고 하나 이상의 허브에 가입 한 사용자의 비율이 이전 웹 클라이언트를 사용하고 하나 이상의 허브에 가입 한 사용자의 비율보다 큽니다.
h1 : 새 클라이언트를 사용하고 하나 이상의 허브에 가입 한 사용자의 비율이 이전 웹 클라이언트를 사용하고 하나 이상의 허브에 가입 한 사용자의 비율보다 크지 않습니다.

다음은 변수를 시각적으로 볼 수 있도록 데이터 세트의 헤드가있는 스크린 샷입니다.

원시 데이터의 스크린 샷

우리는 데이터에서 at_least_one_hub를 사용한 사용자 수로 총 사용자 수를 단순히 나눌 수 없습니다. 이것은 샘플에 대한 비율을 제공 할 것입니다.

이 질문에 더 정확하게 답하려면 분포와 P (hat)를 조사해야합니다. 분포는 변수가 취할 수있는 가능한 값과 발생 빈도를 계산하는 데 도움 이되는 함수 입니다. 분포 매개 변수 (즉, 평균, 분산, 표준 편차)를 계산하면 z- 점수를 계산할 수 있습니다. z 점수를 바탕으로 h0을 증명할 수 있는지 확인할 수 있습니다.

z 점수를 찾고 h0을 증명하기위한 코드가 포함 된 Jupyter Notebook을 만들었습니다. 아래에서 확인할 수 있습니다.

분포

통계에서 분포를 언급 할 때 일반적으로 확률 분포를 의미합니다. 좋은 예는 정규 분포, 이항 분포 및 균일 분포입니다.

정의 : 분포는 변수의 가능한 값과 발생 빈도를 보여주는 함수입니다 (365 데이터 과학) .

확률 분포 (출처 : 365datascience.com)

통계학자가 확률을 설명하려고 할 때 가장 일반적인 예는 주사위를 굴릴 때 숫자를 얻을 수있는 확률입니다.

주사위에는 6 개의 숫자 (1, 2, 3, 4, 5, 6)가 있습니다. 주사위를 굴릴 때마다 6 개의 숫자 중 하나를 얻을 확률은 1/6 또는 P = 0.17입니다.이를 District Uniform이라고합니다. 모든 결과가 발생할 확률이 동일하기 때문에 분포.

주사위 두 개를 굴리면 어떻게 되나요?

확률 분포 통계 — 주사위 굴리기 (Unsplash의 Jonathan Petersson 사진)

두 개의 주사위를 굴리는 경우 1을 얻을 확률은 0이고,이 시나리오에서 얻을 수있는 최소 합은 2입니다. 2 개를 얻으려면 두 주사위 모두 1을 굴려야합니다. 이런 일이 일어날 확률은 얼마입니까?

두 개의 주사위를 굴릴 때 가능한 결과는 36 개이므로 2 개를 얻는 것은 36 (1/36) 또는 0.03 중 1입니다. 3의 합계를 얻을 확률은 0.06입니다. 그 이유는 (1, 1)의 조합이있을 때만 발생할 수있는 2의 합계와 달리 3을 얻으려면 두 가지 가능한 조합 (1, 2)이 있기 때문입니다. ) & (2, 1). 나는 그것이 똑같은 것처럼 보인다는 것을 알고 있지만, 통계적으로 말하면 이것은 (1, 1)을 얻는 것보다 일어날 가능성이 두 배나 높습니다.

롤링 2 주사위 결과의 확률 분포

위의 확률 분포 차트에서 우리는 2 개의 주사위를 굴릴 때 7을 얻을 확률이 가장 높다는 것을 쉽게 이해할 수 있습니다.

위의 예는 이산 변수라고 부르는 것을 사용하고 있습니다. 현실 세계에서 우리는 연속 변수를 접할 가능성이 더 큽니다. 이산 변수는 한정된 시간 내에 셀 수 있습니다. 연속 변수는 (문자 그대로) 영원히 계산할 수 있습니다 ( https://www.statisticshowto.com/probability-and-statistics/statistics-definitions/discrete-vs-continuous-variables/ ).

제 경험상, 연속적인 변수와 이산적인 변수를 가진 데이터 세트를 다룰 수도 있습니다. 일부 변수는 척도가 다르므로 이러한 모든 차이를 처리하는 방법을 알아야합니다.

지금까지 간단히 말해서 :

데이터 세트의 분포는 간격 내에서 가능한 값이 발생하는 빈도를 보여줍니다.

배포에 대한 짧은 참고 사항

앞서 우리는 배포 유형이 다양하다고 간략히 언급했습니다.

  • 표준
  • 이항식
  • 제복
  • 지수
  • 기타…
  • 다양한 랜덤 변수를 근사합니다.
  • 표본 크기가 충분히 큰 표본 분포는 정규 분포에 근접 할 수 있습니다.
  • 계산 가능한 모든 통계는 우아합니다. 정규 분포는 간단하고 잘 이해되어 설명하기가 간단하고 우아합니다.
  • 정규 분포 통찰력을 기반으로 한 결정은 좋은 실적을 가지고 있습니다.
  • 특히 데이터 과학 및 기계 학습 프로젝트에서 사용됩니다 (간단히 말하면 데이터 과학자는 정규 분포 사용을 선호합니다).

데이터 탐색은 데이터 과학 프로젝트의 큰 부분입니다. 본질적으로 과학은 본질적으로 실험적입니다. 즉, 과학자들은 자신이 찾고있는 것이 무엇인지 모르고 그것을 발견하면 그것이 무엇인지 알게 될 것입니다. 이러한 이유로 데이터를 이해하기 시작할 때까지 데이터 분석에 대한 접근 방식이 올바른지 종종 알 수 없습니다.

이를 염두에두고 대상 변수의 확률 분포를 그릴 때 값이 어떻게 분포되어 있는지 확인한 다음 발생하는 다양한 이벤트의 확률을 추정 할 수 있습니다. 이벤트 확률을 추정하는 데 도움이되는 공식 (확률 분포 함수)을 사용할 수 있지만 분포가 어떻게 보이는지에 대한 아이디어가 있으면 다른 함수의 결과가 무엇인지 알 수 있습니다.

연구 과학자와 기업 환경에서 일하는 데이터 과학자의 차이점은 연구원은 일반적으로 자신의 분야를 이해하는 데 수년을 소비한다는 것입니다. 비즈니스 데이터 과학자는 자신이 전문가가 아닐 수도있는 분야의 문제를 해결해야 할 수도 있습니다. 시장에서 발생하는 다양한 이벤트의 확률을 빠르게 평가하고 이해하는 것은 귀중한 기술이 될 수 있습니다.

또한 수십 또는 수백 개의 변수가있는 데이터 세트에서 다른 변수가 다르게 분포 될 수 있습니다. 모델링을 위해 데이터를 준비 할 때 모든 변수에 대한 분포를 표준화할지 여부를 결정해야 할 수 있습니다.

가우스 (정규) 분포

플로팅 된 분포의 모양이 종 모양이고 평균, 최빈값 및 중앙값이 같으면 정규 분포가 있습니다.

'matplotlib'및 'scipy.stats'Python 패키지를 사용하여 몇 가지 정규 분포도를 그렸습니다. 참고로 플롯 아래에있는 코드를 공유하겠습니다.

정규 분포도

위의 정규 분포 예제를 만드는 코드는 다음과 같습니다.

논리를 더 잘 이해하려면 평균, 분산 및 표준 편차 통계를 이해해야합니다. 따라서 필요한 경우 이해하는 데 도움이되도록 아래에서 살펴 보겠습니다. 통계를 이해하는 것이 얼마나 혼란 스러울 수 있는지 알고 있기 때문에 이해하는 방식으로 설명하려고합니다 (PS 데이터 분포를 시각화하는 코드를 작성할 수 있다면 이해한다는 의미는 아닙니다. 시각화가 아니라 데이터 포인트가 평균 주위에 얼마나 멀리 퍼져 있는지, 그리고 각 표준 편차에 속하는 데이터 포인트의 수입니다).

평균, 최빈값, 중앙값이 같으면 정규 분포가 있다고 말했습니다.

  • 평균 — 단순 평균입니다. 변수의 모든 성분을 더한 다음 그 합을 성분의 수로 나누어 변수의 평균을 찾을 수 있습니다 ( x̄ = (Σ xi) / n )
  • 표준 편차 ( 샘플의 데이터가 샘플의 평균에서 얼마나 벗어 났는지 보여줍니다. 아래에서 모집단 (σ) 및 샘플 (s) 표준 편차에 대한 공식 참조)
모집단 표준 편차 공식
샘플 표준 편차 공식

혼란스러워도 괜찮습니다. 통계를 정기적으로 실행하지 않는 사람이나 전에 공부 한 적이없는 사람에게는 혼란 스러울 수 있습니다. 이러한 인구 통계에 속하는 경우 게시물의이 부분이 귀하를위한 것입니다. 그렇지 않은 경우 게시물의이 섹션을 건너 뛰고 다음 섹션으로 이동할 수 있습니다.

그 말로 표준 편차 공식을 설명해 봅시다. 공식은 매우 간단하며 분산의 제곱근입니다 (σ = √σ²). 따라서 더 잘 이해하려면 분산이 무엇인지 이해하면됩니다.

분산은 무엇입니까?

분산 : 평균과의 차이 제곱 평균입니다. 계산하려면 :

  • 평균 (숫자의 단순 평균) 계산
  • 그런 다음 각 숫자에 대해 : 평균을 빼고 결과를 제곱합니다 (제곱 차이). 이렇게하면 음수 값을 양수로 변환하는 데 도움이됩니다.
  • 그런 다음 제곱 차이의 평균을 계산하십시오.
  • 형제 1 = 180cm
  • 형제 2 = 172cm
  • 형제 3 = 185cm
  • 형제 4 = 193cm

분산 (σ²)을 계산하기 위해 각 차이 (각 높이에서 평균을 뺀 값)를 취하고 제곱 한 다음 결과를 평균화합니다.

  • 차이 1 = 180–182.5 = -2.5
  • 차이 2 = 172–182.5 = -10.5
  • 차이 3 = 185–182.5 = 2.5
  • 차이 4 = 193–182.5 = 10.5

표준 편차 (σ)는 분산의 제곱근입니다.

σ = √58.25 ≈7.63

모집단과 표본에 대한 표준 편차 공식의 차이는 분산 (σ²)을 계산할 때 차이 제곱의 합을 표본 총 관측치 수 (N)로 나누는 대신 다음으로 나눈다는 것입니다. 샘플 총계 (n)- "1"(n-1)

따라서 예제가 샘플 인 경우 다음을 수행합니다.

σ² = 233 / (4–1) = 233/3 ≈ 77.66

따라서 표본의 표준 편차는 다음과 같습니다.

σ = √77.66 ≈ 8.81

(설명과 예제는이 게시물에서 영감을 얻었습니다 : https://www.mathsisfun.com/data/standard-deviation.html )

이제 정규 분포를 살펴 보겠습니다.

그리드가있는 정규 분포도

정규 분포 경험적 규칙은 68 % –95 % –99.7 %입니다. 즉, 정규 분포 데이터의 68 %는 1 표준 편차 이내, 95 %는 2 표준 편차 이내, 99.7 %는 3 표준 편차 이내입니다.

그래서 뭐? 데이터 과학자가 데이터 분포를 아는 것이 어떻게 유용합니까?

게시물의이 부분에 도달했다면 지금 쯤 마음에 떠오르는 질문이있을 것 같습니다. 데이터 분포를 알면 몇 가지 이점이 있습니다.

  • 목표 변수의 분포는 그 행동과 잠재적 인 예측 값을 이해하는 데 도움이 될 수 있습니다.
  • 변수의 분포는 변수를 정규화하거나 표준화해야하는지 결정하는 데 도움이 될 수 있습니다.
  • 변수의 분포는 어떤 모델이 데이터와 더 잘 작동 할 수 있는지 생각하는 데 도움이 될 수 있습니다.

표준화 및 정규화

일부 머신 러닝 및 딥 러닝 모델은 데이터의 규모와 분포가 일관된 경우 더 나은 성능을 얻을 수 있습니다.

표준화:

서로 다른 단위를 측정 할 때 중심 0과 표준 편차 1을 중심으로 특성을 표준화하는 것이 중요합니다. 다른 단위는 일반적으로 다른 척도에 있습니다. 예를 들어 100cm는 대략 3.28ft입니다. 다른 단위로 측정 한 경우 데이터를 표준화하는 것이 좋으므로 100cm가 분석에서 3.28ft보다 더 가중치를주지 않으므로 편향이 발생합니다.

표준화는 선형 회귀, 로지스틱 회귀 등과 같은 모델에 도움이 될 수 있습니다. 이러한 모델은 데이터에 가우스 분포 (정규 분포)가 있다고 가정하므로 더 나은 결과를 얻고 편향을 피할 수 있습니다.

정규화 : 표준화와 의 차이점은 데이터를 표준화 할 때 0과 1 사이의 범위가된다는 것입니다. 특성을 정규화해도 값 범위의 차이가 왜곡되지는 않지만 표준화와 유사하게 데이터 세트의 숫자 열 값이 변경됩니다. 일반적인 규모로. 연령 및 소득과 같은 예를 들어 데이터를 정규화합니다. 연령 변수의 범위는 0 ~ 100이고 소득 범위는 0 ~ 100,000입니다. 다변량 선형 회귀와 같은 모델을 실행할 때 정규화하지 않으면 소득이 더 큰 값 (x1000> 연령)으로 인해 결과에 더 많은 영향을 주지만 이것이 예측 변수로서 더 중요하다는 의미는 아닙니다.

거리 계산 및 다변량 회귀를 사용하는 k- 최근 접 모델, 입력 값에 가중치를 부여하는 인공 신경망은 데이터가 정규 분포를 따른다고 가정하지 않으므로 정규화의 이점을 누릴 수 있습니다.

값을 정규화하는 수학적 논리는 다음과 같습니다.

y = (x- 분) / (최대-최소)

x 위에는 정규화되는 값이 있습니다. 이를 위해서는 데이터 세트에있는 값의 최소 및 최대 데이터 포인트를 알고 있거나 추정 할 수 있어야합니다 (이상적으로는 표본 수준의 최소 및 최대가 아닌 모집단 수준).

Python 및 Scikit-Learn을 사용한 표준화 및 정규화 (sklearn)

Sklearn은 Python 용 무료 소프트웨어 기계 학습 라이브러리입니다. 분류, 회귀, 클러스터링, 지원 벡터 머신 등과 같은 다양한 알고리즘을 제공합니다.

모델 외에도 sklearn 소프트웨어에는 원시 특징 벡터를 다운 스트림 추정기에 더 적합한 표현으로 변경하기 위해 몇 가지 공통 유틸리티 함수 및 변환기 클래스를 제공 하는 sklearn.preprocessing 패키지 가 포함 되어 있습니다.

Jupyter Notebook을 모아서 GitHub에 요점으로 게시했습니다. 아래에서 확인할 수 있습니다.

위의 Jupyter 노트북에서 사용 된 변환 방법은 표준화 및 정규화를위한 것입니다. 구체적으로 다음과 같은 예가 표시됩니다.

  • StandardScaler (표준화 용)
  • RobustScaler (표준화 용)
  • PowerTransformer (표준화 용)
  • 정규화 (정규화 용)
  • Normazlizer (정규화 용)
  • MinMaxScaler (정규화 용)

표준화와 정규화는 매우 비슷해 보이므로 데이터에 어떤 접근 방식을 사용해야하는지 알기가 어려운 경우가 많으므로 개인적으로 다음과 같이 생각합니다.

  • 내 변수의 단위가 다른 경우 표준화 사용 (예 : cm 대 ft)
  • 성격이 다른 변수 (예 : 연령과 소득이 완전히 다른 두 변수)의 경우 정규화를 사용하여 차이를 10 배 이상 조정합니다.
  • Python 및 Sklearn을 사용할 때 설명서에 따라 모범 사례에 따라 다른 기술을 사용하십시오.
  • 다양한 방식으로 데이터를 처리하고 변경 사항을 관찰합니다. 그런 다음 "내가 목표로하는 예측과 다른 방식으로 데이터를 변환하는 데 사용하려는 모델이 합리적입니까?"라고 자문합니다.

추가 읽기 :

Python을 사용하여 통계 가설 테스트를 수행하는 더 많은 방법을 탐색 할 수 있습니다. 이 경우 "치트 시트"와 함께이 게시물을 읽는 것으로 시작하는 것이 좋습니다.https://machinelearningmastery.com/statistical-hypothesis-tests-in-python-cheat-sheet/

Suggested posts

통계 데이터 분석 — 기본 도구, 기술 및 프로세스

숫자를 보는 것이 문제를 이해하고 해결책을 찾는 가장 좋은 방법입니다.

통계 데이터 분석 — 기본 도구, 기술 및 프로세스

통계 데이터 분석 — 기본 도구, 기술 및 프로세스 데이터 과학은 통계, 수학, 프로그래밍, 컴퓨터 과학 및 비즈니스 분야의 지식을 포함하는 다 학문 영역으로, 통계를 데이터 과학의 기본 기둥 중 하나로 사용합니다. 통계 분석의 몇 가지 기본 개념에 대해 간략하게 설명합니다. 통계 정의 통계는 데이터에서 배울 수있는 과학입니다.

베이지안 확산 모델링을 사용한 고급 예측

베이지안 확산 모델링을 사용한 고급 예측

데이터 과학의 모든 영역에서 동적 현상을 예측하고 설명하기위한 혁신적인 모델링 솔루션에 대한 수요가 많습니다. 모델링 및 동적 현상 예측의 높은 프로필 사용 사례는 다음과 같습니다. 오픈 소스 데이터 세트에 적용된 베이지안 확산 모델링을 보여주는 종단 간 예제가 제공됩니다.

Related posts

데이터 과학을위한 필수 수학 : 기초 및 기초 변경

데이터 과학을위한 필수 수학 : 기초 및 기초 변경

고유 분해 및 SVD에 유용한 기저의 선형 대수 개념 이해이 기사에서는 고유 분해 또는 특이 값 분해 (SVD)와 같은 행렬 분해 방법을 이해하는 흥미로운 방법 인 기저 개념에 대해 알아 봅니다. 정의 기본은 벡터 공간 (벡터 집합)을 설명하는 데 사용되는 좌표계입니다.

판다와 에라스무스 연구 교환 분석

판다와 에라스무스 연구 교환 분석

Erasmus 프로그램 2011-12에서 발생한 20 만 개의 연구 교환으로 데이터 세트를 분석 한 결과 1987 년 이후 Erasmus 프로그램은 매년 수십만 명의 유럽 학생들에게 한 학기 또는 1 년을 해외에서 보낼 기회를 다른 유럽에서 보낼 수있는 기회를 제공합니다. 경제적 인 지원뿐만 아니라 쉬운 교환 과정을 제공합니다. 유럽의 다양한 사람, 언어 및 문화에 대한 마음과 마음을 열어주는 정말 귀중한 경험입니다.

데이터 과학을위한 8 가지 기본 통계 개념

… 평범한 영어로 설명

데이터 과학을위한 8 가지 기본 통계 개념

통계는 "수량 데이터의 수집, 분석, 해석 및 표현을 다루는 수학의 한 분야"입니다. 프로그래밍과 기계 학습을 혼합하면 데이터 과학의 핵심 기술에 대해 꽤 잘 설명 할 수 있습니다.

데이터 과학의 9 가지 거리 측정

일반적인 거리 측정의 장점과 함정

데이터 과학의 9 가지 거리 측정

감독되거나 감독되지 않는 많은 알고리즘은 거리 측정을 사용합니다. 유클리드 거리 또는 코사인 유사성과 같은 이러한 측정은 종종 k-NN, UMAP, HDBSCAN 등과 같은 알고리즘에서 찾을 수 있습니다.