[Performance] 프로그래머 (또는 컴퓨터 과학자)는 어떤 통계를 알아야합니까?



Answers

평론가가 아닌 지적으로 다른 질문으로 작성해야합니다. "어떤 통계를 알고 있어야합니까?"

사실 불행히도 우리는 모두 통계를 다루고 있습니다. 그것은 삶의 사실입니다. 설문 조사, 일기 예보, 약물 효과, 보험, 그리고 물론 컴퓨터 과학의 일부. 제시된 데이터를 비판적으로 분석 할 수 있다는 것은 그것이 의미하는 바가 무엇이든간에 올바른 이해를 선택하거나 사기당하는 것을 의미합니다.

그 점을 이해하기 위해서는 다음 사항들이 중요하다고 생각합니다.

  • 평균, 중간 값, 표본 표준 편차, 표본모집단 간의 차이 (매우 중요 함)
  • 분포, 왜 가우스 분포가 중요한지 (중심 극한 정리)
  • 그것은 Null 가설 테스트를 의미합니다.
  • 변수 변환, 상관 관계, 회귀 분석, 다 변수 분석이란 무엇입니까?
  • 베이지안 통계 란 무엇입니까?
  • 작도법.

이러한 모든 사항은 컴퓨터 과학자로서뿐만 아니라 인간으로서도 중요합니다. 몇 가지 예를 드리겠습니다.

  • 귀무 가설의 평가는 방법의 유효성을 시험하는 데 중요합니다. 예를 들어 약물이 효과가 있거나 하드웨어에 대한 수정 사항이 구체적인 결과를 가져 오거나 우연의 문제 일 경우. 컴퓨터의 속도를 향상시키고 하드 드라이브를 변경하려고한다고 가정 해보십시오. 이 점이 중요합니까? 이전 하드 디스크와 새 하드 디스크로 성능 샘플링을하고 차이점을 확인할 수 있습니다. 새 디스크의 평균값이 낮더라도 하드 디스크가 전혀 효과가 없다는 것을 의미하지는 않습니다. 여기서 Null 가설 테스트를 시작하면 하드 드라이브를 변경하면 컴퓨터 성능에 영향을 미칠 확률이 90 %가되는 등 확률 적 대답이 아닌 신뢰 구간을 제공합니다.

  • 상관 관계는 두 엔티티가 "동일하게 변경되는지"를 알아내는 데 중요합니다. 인터넷 만트라의 "상관 관계는 인과 관계가 아니므로"가르치기 때문에 조심스럽게 다루어야합니다. 두 개의 무작위 변수가 상관 관계를 나타내는 것이 실제로 다른 변수가 발생한다는 것을 의미하지 않으며 세 번째 변수 (측정하지 않음)와 관련이 있음을 의미하지 않습니다. 그들은 단지 같은 방식으로 행동 할 수 있습니다. 요점을 이해하기 위해 해적과 지구 온난화를 찾아보십시오. 상관 관계 분석은 가능한 신호를보고하고 결과를보고하지 않습니다.

  • 베이지안. 우리 모두는 스팸 필터를 알고 있습니다. 그러나 더 많은 것이 있습니다. 건강 검진을 받고 그 결과가 암에 걸렸다 고 가정 해 봅시다 (진지하게 바라지는 않지만 요점을 설명하는 것입니다). 사실 :이 시점에서 대부분의 사람들은 "나는 암에 걸렸다"고 생각합니다. 그건 사실이 아니야. 암에 대한 긍정적 인 테스트는 암에 걸릴 확률을 모집단의 기준에서 (예를 들어, 수천명의 사람들이 암에 걸렸고 암이 얇은 것으로 나타남) 100 %가 아닌 높은 값으로 옮깁니다. 이 수치는 시험의 정확도에 따라 다릅니다. 검사가 형편없는 경우 가양 성일 수 있습니다. 이 방법이 정확할수록 스큐가 높지만 여전히 100 %는 아닙니다. 물론, 여러 개의 독립적 인 검사가 모두 암을 가지고 있다는 것을 확인하면, 실제로 당신이 실제로 암에 걸릴 확률은 높지만 여전히 100 %가 아닙니다. 어쩌면 99.999 %입니다. 이것은 많은 사람들이 베이지안 통계에 대해 이해하지 못하는 점입니다.

  • 작도법. 그것은 항상 무인 상태로 남아있는 또 다른 것입니다. 데이터 분석은 단순한 음모를 통해 그들이 의미하는 바를 효과적으로 전달할 수 없다면 아무런 의미가 없습니다. 초점에 넣으려는 정보 나 보유한 데이터의 종류에 따라 xy 플롯, 막대 그래프, 바이올린 플롯 또는 원형 차트를 선호합니다.

자, 이제 질문에 가자. 제 생각에 제가 지나치게 간과 한 것 같아요.하지만 제 대답이 상당히 많이 표명 된 이후로, 제 지식만큼이나 당신의 질문에 올바르게 대답하면 더 나을 것 같아요. (여기 휴가라서 너무 기쁘다. 나는 그걸로 원한다)

프로그래밍, 소프트웨어 공학 및 컴퓨터 과학에서 어떤 종류의 문제가 통계적 방법으로 적합합니까? 가장 큰 보수는 어디에서 받습니까?

일반적으로 신뢰할 수없는 출처에서 수치 입력 (또는 숫자로 축소)되는 데이터 비교와 관련이있는 모든 것. 악기의 신호, 많은 페이지 및 포함 된 단어의 수. 이 데이터를 얻었을 때 증류 된 대답을 찾아야 할 때 통계가 필요합니다. 아이폰에서 클릭 탐지를 수행하는 알고리즘을 생각해보십시오. 스타일러스 자체보다 훨씬 작은 아이콘을 지칭하기 위해 떨리는 뚱뚱한 스타일러스를 사용하고 있습니다. 분명히 하드웨어 (용량 성 스크린)는 손가락에 관한 많은 데이터와 무작위 노이즈 (공기? 작동 원리를 모르는)에 관한 많은 데이터를 전송합니다. 운전자는이 난장판을 이해하고 화면에서 도끼, y 좌표를 부여해야합니다. 그 (많은) 통계가 필요합니다.

어떤 종류의 통계 방법을 배워야합니까?

내가 너에게 말한 것들은 충분하다. 왜냐하면 그것들을 이해하기 위해서는 다른 것들을 거쳐야하기 때문이다.

이것을 배우기 위해 어떤 자원을 사용해야합니까? 책, 논문, 웹 사이트. 나는 각 책 (또는 다른 자료)이 무엇에 관한 것인지, 왜 그것이 관련성이 있는지에 대한 토론에 감사 할 것입니다.

나는 주로 표준 대학 과정에서 통계를 배웠다. 내 첫 번째 책은 " 기차 잔해 책 "이었고 아주 좋습니다. 나는 또한 R에 초점을 맞춘 것을 시도했지만 특히 만족하지 못했습니다. 당신은 그것을 알기 위해 물건과 R을 알아야합니다.

프로그래머는 종종 자연어로 된 대형 텍스트 데이터베이스를 처리하고 분류, 분류, 검색 및 기타 처리하는 데 도움이됩니다. 어떤 통계 기법이 유용할까요?

이는 데이터 세트를 사용하여 대답해야하는 질문에 달려 있습니다.

프로그래머는 종종 부하가 걸리는 고성능 시스템을 생산해야합니다. 그러나 당신이 그것을 측정 할 수 없다면 당신은 성능에 대해 정말로 말할 수 없습니다. 어떤 종류의 실험적 설계 및 통계 도구가 결과가 의미있는 것이라고 확신 할 수 있어야합니까?

측정에는 많은 문제가 있습니다. 측정은 훌륭하고 섬세한 예술입니다. 적절한 측정은 거의 인간을 초월합니다. 사실 샘플링은 시료 채취기에서 또는 시료에서 또는 자연의 본성으로부터 바이어스를 유도합니다. 좋은 샘플러는 이러한 것들을 알고 있으며 원하지 않는 바이어스를 무작위 배분으로 줄이려고합니다.

게시 한 블로그의 예는 적합합니다. 데이터베이스 시작 시간이 있다고 가정 해보십시오. 그 시간 내에 성과 측정을하면 모든 조치가 편향 될 것입니다. 이 사실을 알 수있는 통계적 방법은 없습니다. 시스템 지식 만 있습니다.

통계적 접근으로 이익을 얻을 수있는 프로그래머가 흔히 접하게되는 다른 문제가 있습니까?

데이터 생성자의 앙상블이있을 때마다 통계가 있으므로 과학적 컴퓨팅 및 데이터 분석이 분명히 한 곳입니다. Folksonomy와 소셜 네트워킹은 거의 모든 통계입니다. stackoverflow조차 어떤 의미에서는 통계적입니다. 답변이 높게 투표되었다고해서 그것이 올바른 답변이라는 것을 의미하지는 않습니다. 독립 평가자의 통계 앙상블을 평가할 때 높은 확률이 맞음을 의미합니다. 이 평가자들이 어떻게 동작하는지 stackoverflow, reddit 및 digg의 차이점을 만듭니다.

Question

저는 수학 및 컴퓨터 과학에 대해 훌륭한 배경을 가진 프로그래머입니다. 나는 computability, 그래프 이론, 선형 대수학, 추상 대수학, 알고리즘, 그리고 약간의 확률 및 학부 수준의 통계 (몇 가지 CS 수업을 통해)를 공부했습니다.

그러나 통계에 대해서는 충분히 알지 못합니다. 통계는 통계적 자연어 처리를 통해 하드웨어, 소프트웨어 및 네트워크의 성능 분석이 모두 신뢰할 수있는 적절한 통계적 근거가 필요한 생물 정보학 분야와 같은 분야에서 검색 및 기계 번역을위한 Google의 알고리즘에 도움이되는 데 점점 더 유용합니다 더 보편적 인 매일.

나는 "Google이 if 문을 사용하는 방식을 필터링하는 베이지안 방식을 사용 하는 방법 " 에 대해 읽었으며 Paul Graham의 스팸더 나은 베이지안 필터링 계획 의 문제에 대한 비교적 순진하고 간단한 통계적 접근 방법의 힘을 알고 있습니다. 그 이상으로 가고 싶습니다.

나는 더 많은 통계를 배우려고 노력했지만, 조금 잃어 버렸습니다. Wikipedia 기사 에는 관련 주제에 대한 긴 목록이 있지만 어느 부분을 조사해야하는지 잘 모르겠습니다. 내가 본 것 같은 느낌, 많은 통계는 모든 것이 선형 적으로 결합하는 요소의 조합이며, 가우스 분포의 임의의 잡음을 더한 것으로 가정합니다. 나는 선형 회귀를 넘어서 무엇을 배워야하는지, 아니면 다른 기술로 넘어 가기 전에 내가 그것을 정말로 이해할 시간을 보내야하는지 궁금합니다. 나는 몇 권의 책을 보았습니다. 어디에서 시작해야합니까?

그래서 나는 여기서 어디로 가야할지 궁금해. 배우는 것, 배우는 곳. 특히, 나는 알고 싶다 :

  1. 프로그래밍, 소프트웨어 공학 및 컴퓨터 과학에서 어떤 종류의 문제가 통계적 방법으로 적합합니까? 가장 큰 보수는 어디에서 받습니까?
  2. 어떤 종류의 통계 방법을 배워야합니까?
  3. 이것을 배우기 위해 어떤 자원을 사용해야합니까? 책, 논문, 웹 사이트. 나는 각 책 (또는 다른 자료)이 무엇에 관한 것인지, 왜 그것이 관련성이 있는지에 대한 토론에 감사 할 것입니다.

내가 무엇을 찾고 있는지 명확히하기 위해 프로그래머 가 대처해야하는 문제가 통계적 접근의 이점을 누리고 어떤 종류의 통계 도구가 유용 할 수 있는지에 관심이있다. 예를 들면 :

  • 프로그래머는 종종 자연어로 된 대형 텍스트 데이터베이스를 처리하고 분류, 분류, 검색 및 기타 처리하는 데 도움이됩니다. 어떤 통계 기법이 유용할까요?
  • 보다 일반적으로, 인공 지능은 개별적이고 상징적 인 접근 방식에서 통계 기법으로 옮겨 가고 있습니다. 인공 지능 인공 지능 접근법은 현재 작업 프로그래머에게 (구체적인 결과를 제공 할 수도 있고하지 않을 수도있는 지속적인 연구와는 달리) 가장 많은 것을 제공 할 것입니다.
  • 프로그래머는 종종 부하가 걸리는 고성능 시스템을 생산해야합니다. 그러나 당신이 그것을 측정 할 수 없다면 당신은 성능에 대해 정말로 말할 수 없습니다. 어떤 종류의 실험적 설계 및 통계 도구가 결과가 의미있는 것이라고 확신 할 수 있어야합니까?
  • 컴퓨터 그래픽과 같은 물리적 시스템의 시뮬레이션은 종종 확률 론적 접근을 수반합니다.
  • 통계적 접근으로 이익을 얻을 수있는 프로그래머가 흔히 접하게되는 다른 문제가 있습니까?



프로그래밍에 대한 좋은 리소스 중 하나는 Russell과 Norvig의 "인공 지능 : 현대 접근"입니다. 통계 기반 기계 학습 기술을 이해하는 데 매우 유용한 자료가 될 수 있습니다.




나의 짧은 대답은 구조 방정식 모델링과 유한 혼합 모델링 (잠재 클래스 / 프로파일)을 포함하는 잠재 변수 통계입니다. 여기에는 인상적인 통계 모델이 포함됩니다.




아마도 (무료) 책인 Think Stats : 프로그래머의 확률 및 통계를 살펴 보십시오 . 통계적 개념을 보여주기 위해 파이썬을 사용하지만 다른 프로그래밍 언어에서 경험이있는 사람은 따라 할 수 있어야합니다.

사이트 설명 :

Think Stats는 Python 프로그래머의 확률 및 통계에 대한 소개입니다.

파이썬에서 기본적인 기술을 가지고 있다면,이를 사용하여 확률 및 통계의 개념을 배울 수 있습니다. 이 새로운 책은 실제 데이터 세트를 탐색하고 흥미로운 통계적 질문에 대답하는 데 사용할 수있는 간단한 기술을 강조합니다.




래리 와서 만 (Larry Wasserman)의 "모든 통계학"(2004)의 내용을 말하고 싶습니다. 또한 통계와 컴퓨터 사이의 격차를 가져 오는 아이디어가 제시되는 장점이 있습니다.

희망이 도움이됩니다.




좋은 질문입니다! 나는 실제로 그것이 잠시 뒤로 물러나서 더 넓은 그림에 도달하는 것이 가치 있다고 생각한다. 예를 들어 내가 좋아하는 Zed의 폭언은 처음에 가까웠다.

나는 그들의 통계에 의문을 제기하고 통계적 추론에 불충분 한 시도로 그것을 백업하려고합니다. 나는 논리와 이성이 증거와 관찰보다 우월하다는 것을 대학에서 아마도 들었 기 때문에 정말로 그들을 비난 할 수는 없다.

나는 경험주의 의 필요성을 강조한다. 물론, 나는 당신이 말하는 것을 듣는다. 당신은 그것을 알았다 . 그래서 그것이 당신의 프로파일이다. 글쎄, 네,하지만 그 이상이 실제로 있습니다. Zed는 평균에 대한 호언 장담으로 돌아 왔고, 나는 이것이 사실이라고 생각합니다 : 분포를 보여주고, 데이터를 플롯하고, 꼬리 거동을 봅니다.

그래서 제가 얻으려고하는 것은 답은 단 한 권의 책에 그다지 많지는 않지만 문제 에 대해 생각하고 , 세상을 확률 론적으로 보는 것에 관한 것입니다.

또한 R 은 데이터와 관련하여 생각하고 프로그래밍 하는 데 많은 도움이됩니다.




나는 우리 대부분이 프로그래머가 통계 나 확률 또는 많은 수학에 대해 전혀 알 필요가 없다면 Shaw 씨와 다른 모든 사람들이 괜찮 으면 좋겠다.

수학에서 우수한 성적을 받았음에도 불구하고 지난 30 년 동안의 경험이었습니다.

따라서이 질문의 제목은 "통계를 알아야하는 경우 프로그래머는 어떤 통계를 알아야합니까?"




소년,이 답변 중 일부는 훌륭합니다. 나는 거의 같은 배경에서 왔고 주로 책으로 그리고 동료로부터의 삼투에 의해 생체 통계학에 들어가야 만했다. 여기 내 권장 사항은 다음과 같습니다.

  • 조건부 확률, 베이 즈 정리, 마르코프 모델 및 기본 통계 분포 중 일부를 포함하여 확실한 확률로 시작하십시오.

  • 당신이 그것을 가지고 있지 않다면, 선형 대수학을 얻으십시오, 그래서 당신은 행렬에 의해 무서워하지 않습니다. 까다로운 대수학 및 미적분학에 직면 해 있다면 그것을 숙고하십시오. 그것은 가치.

  • 통계 이론은 빈민가와 베이지안의 두 진영으로 나뉩니다. Frequentist는 오래되고 단단합니다. 베이지안은 더 새롭고 유연하며 흥미 진진합니다. 특히 Markov Chain Monte Carlo 및 관련 기술로 할 수있는 흥미로운 것들이 있습니다.

내 영역에서 약물 계측법은 희소하고 값 비싼 데이터에서 의미있는 결과를 추출 할 수있는 높은 보수가 있기 때문에 통계 능력이 매우 중요합니다.

올린 날짜 : 다음은 좋아하는 책입니다 (전체 목록이 아님).




Links