답변:
모든 데이터 세트로 수행 할 수있는 기본 작업이 있습니다.
오류를 식별하기 위해 데이터를 이해하는 것은 완전히 다른 볼 게임이며 매우 중요합니다.
예를 들어, 일련 번호가 지정된 데이터 세트에 있어야하며 해당 일련 번호는 최대 문자열 길이가 255이고 최소 문자열 길이가 5 인 영숫자 여야한다는 규칙이있을 수 있습니다.
데이터를 살펴보면 하나의 특정 일련 번호 값을 읽을 수 "PLEASE ENTER SERIAL"
있습니다. 완벽하게 유효하지만 잘못되었습니다.
그것은 분명한 것이지만 주식 데이터를 처리하고 있으며 1000 달러의 가격 범위가 1 달러 미만이라고 가정합니다. 많은 사람들은 너무 낮은 주가가 특정 거래소에서는 유효하지 않으며 다른 거래소에서는 완벽하게 유효하다는 것을 알지 못합니다. 보고있는 내용에 문제가 있는지 이해하려면 데이터에 대한 지식이 필요합니다.
실제 세계에서 데이터를 완벽하게 이해하는 데 항상 도움이되는 것은 아닙니다.
내가 문제를 피하는 방법은 내 주변 사람들을 활용하는 것입니다. 소규모 데이터 세트의 경우 누군가에게 데이터 전체를 검토하도록 요청할 수 있습니다. 큰 샘플의 경우 임의의 샘플 세트를 가져 와서 누군가에게 데이터의 상태 확인을 요청하는 것이 더 적합합니다.
또한 데이터 소스와 해당 데이터 소스를 얼마나 잘 신뢰할 수 있는지에 대한 질문이 필수적입니다. 나는 종종 여러 개의 상충되는 데이터 소스를 가지고 있으며 "진리 소스"를 결정하는 규칙을 만듭니다. 주어진 측면에서 하나의 데이터 세트에 큰 데이터가있는 경우도 있지만 다른 영역에서는 다른 데이터 세트가 더 강력합니다.
수동으로 입력 한 데이터는 일반적으로 내가 가장 회의적인 것이지만 경우에 따라 자동화를 통해 얻을 수있는 것보다 강력합니다.
나는 @Kallestad가 매우 대답하는 것을 좋아하지만 메타 단계를 추가하고 싶습니다. 데이터가 수집되는 방법과 제약 유형이 무엇인지 이해해야합니다. 나는 데이터가 수집 될 때 명백한 단계가없는 곳이 없다고 생각하는 것이 매우 일반적이라고 생각하지만, 그렇지 않습니다. 데이터의 모양에 영향을줍니다.
두 가지 예 : 최근 전 세계의 다양한 콘 트랙터에서 데이터를 수집 한 연구가있었습니다. 나는 브리핑에 없었기 때문에 그것은 불투명했다. 불행하게도, 프랑스의 일부 지역에서는 측정이 실패했습니다. 사람들은 모두 얼음 덩어리를 좋아했지만 무작위 분포를 기대했습니다. 이 균일성에 대한 분명한 이유는 없었으므로 오류를 찾기 시작했습니다. 계약자를 쿼리 할 때 브리핑을 잘못 이해하고 데이터베이스에서 아이스크림 애호가 만 선택했습니다.
두 번째 오류는 더 어려웠습니다. 지리 분석을 할 때 많은 사람들이 매우 큰 운동 패턴을 가지고 있다는 것을 알았습니다. 이는 많은 사람들이 뮌헨에서 함부르크까지 몇 분만에 여행했음을 암시합니다. 내가 ppeople을 업스트림과 이야기했을 때, 그들은 데이터 집계 소프트웨어에서 미묘한 버그를 발견했습니다.
결론 :
나는 보통 2 단계 접근을한다
각 변수에 대한 평균, 범위, 분산, 누락 수, 카디널리티 등과 같은 일 변량 (변수에 따라 다름) 요약 통계를 계산하고 홀수를 찾습니다 (예 : 변수의 의미를 고려할 때 범위가 적절하지 않음). 홀수 변수에 대한 히스토그램을 플로팅합니다.
데이터를 관리 가능한 부분 집합으로 나누고 (유의 한 변수를 선택하고 데이터를 모든 긍정적 인 예와 모든 부정적인 예에 따라 분할) 시각적으로 (예 : ggobi ) 탐색 하십시오. 특히 브러싱 및 산점도 같은 도구를 사용하여 변수가 서로 연결되는 방식을 이해하십시오.
그리고 모델을 구축 할 때 잔차를 플로팅하고 특이 치로 인해 발생할 수있는 극단적 인 오류를 찾거나 혼동 행렬을보고 균형을 유지해야합니다. k- 폴드 교차 검증을 사용하여 모델을 최적화하고 각 폴드에 대한 훈련 오차의 분산을 살펴보십시오. 한 폴드가 다른 폴드보다 훨씬 나쁘면 이상 값을 포함 할 수 있습니다.
아래에서 Data Science StackExchange ( /datascience//a/722/2452 ) 에 대한 관련 (데이터 정리 측면에 중점을 둔) 질문에 대한 내 답변의 사본을 찾을 수 있습니다. 독자의 편의성. 나는 이것이 귀하의 질문에 부분적으로 답변한다고 생각하며 도움이되기를 바랍니다. 답변이 집중되는 동안R
생태계에 다른 데이터 분석 환경을 위한 유사한 패키지 및 / 또는 라이브러리를 찾을 수 있습니다 . 두 사람이 동시에 또한, 논문 인용되는 데이터 준비에 또한 R의 예를 포함,이 논문이 제시 일반적인 워크 플로우 (프레임 워크) 및 모범 사례 에 적용 할 수있는 어떤 데이터 분석 환경.
R 일부 포함 표준 그것의 데이터 세정에 사용될 수있는 데이터 조작 기능, 기본 패키지 ( gsub
, transform
예컨대, 등)뿐만 아니라 다양한 외부 패키지 stringr , 모양 변경 , reshape2 및 plyr를 . 예를 들면 이러한 패키지에 대한 사용의 모범 사례와 그 기능은 다음 종이에 설명되어 있습니다 http://vita.had.co.nz/papers/tidy-data.pdf .
또한 R은 데이터 정리 및 변환에 특별히 초점 을 맞춘 일부 패키지를 제공합니다 .
에 대한 포괄적이고 일관성있는 접근 청소 데이터 예와의 사용을 포함하여 R에, editrules 및 deducorrect 패키지뿐만 아니라 설명 워크 플로우 ( 워크 R에 청소 데이터)를, 내가보기 엔 추천하는 다음과 같은 논문에서 제시 : HTTP : //cran.r-project.org/doc/contrib/de_Jonge+van_der_Loo-Introduction_to_data_cleaning_with_R.pdf .
여기에 많은 사람들이 훌륭한 단계를 언급했지만 다음 링크에 훌륭한 정보가 있다고 생각합니다 에는 트윗을 통해 새로운 데이터 세트를 얻을 때 무엇을하는지 합니다. 새로운 데이터 세트를 사용할 때 가장 먼저하는 일은 무엇입니까? "
도움이 되길 바랍니다.