애자일 데이터 과학-퀵 가이드

애자일 데이터 과학은 웹 애플리케이션 개발을 위해 애자일 방법론과 함께 데이터 과학을 사용하는 접근 방식입니다. 조직의 변화에 ​​영향을 미치는 데 적합한 데이터 과학 프로세스의 출력에 중점을 둡니다. 데이터 과학에는 분석, 대화 형 시각화 및 현재 적용된 기계 학습을 통해 연구 프로세스를 설명하는 애플리케이션 구축이 포함됩니다.

애자일 데이터 과학의 주요 목표는 다음과 같습니다.

설명 데이터 분석을 문서화하고 안내하여 매력적인 제품에 대한 중요한 경로를 발견하고 따르십시오.

애자일 데이터 과학은 다음과 같은 원칙으로 구성됩니다.

연속 반복

이 프로세스에는 생성 테이블, 차트, 보고서 및 예측에 대한 지속적인 반복이 포함됩니다. 예측 모델을 구축하려면 통찰력을 추출하고 생성하는 기능 엔지니어링을 여러 번 반복해야합니다.

중간 출력

생성 된 출력의 트랙 목록입니다. 실패한 실험에도 결과가 있다고합니다. 모든 반복의 출력을 추적하면 다음 반복에서 더 나은 출력을 생성하는 데 도움이됩니다.

프로토 타입 실험

프로토 타입 실험에는 작업 할당 및 실험에 따라 출력 생성이 포함됩니다. 주어진 작업에서 통찰력을 얻기 위해 반복해야하며 이러한 반복은 실험으로 가장 잘 설명 될 수 있습니다.

데이터 통합

소프트웨어 개발 수명주기에는 다음에 필요한 데이터가 포함 된 여러 단계가 포함됩니다.

  • customers

  • 개발자 및

  • 사업

데이터 통합은 더 나은 전망과 결과를위한 길을 열어줍니다.

피라미드 데이터 값

위의 피라미드 값은 "애자일 데이터 과학"개발에 필요한 계층을 설명합니다. 요구 사항을 기반으로 한 레코드 수집과 개별 레코드 연결로 시작합니다. 차트는 데이터를 정리하고 집계 한 후에 생성됩니다. 집계 된 데이터는 데이터 시각화에 사용할 수 있습니다. 보고서는 적절한 구조, 메타 데이터 및 데이터 태그로 생성됩니다. 꼭대기에서 두 번째 피라미드 층에는 예측 분석이 포함됩니다. 예측 계층은 더 많은 가치가 생성되지만 기능 엔지니어링에 초점을 맞춘 좋은 예측을 생성하는 데 도움이됩니다.

최상위 계층에는 데이터의 가치가 효과적으로 추진되는 작업이 포함됩니다. 이 구현의 가장 좋은 예는 "인공 지능"입니다.

이 장에서는 "애자일"이라고하는 소프트웨어 개발 수명주기의 개념에 초점을 맞출 것입니다. 애자일 소프트웨어 개발 방법론은 변화하는 비즈니스 요구 사항에 맞춰 개발이 이루어 지도록 1-4주의 짧은 반복으로 증분 세션을 통해 소프트웨어를 구축하는 데 도움이됩니다.

Agile 방법론을 자세히 설명하는 12 가지 원칙이 있습니다.

고객 만족

귀중한 소프트웨어를 조기에 지속적으로 제공하여 요구 사항에 중점을 둔 고객에게 가장 높은 우선 순위를 부여합니다.

새로운 변화를 환영합니다

소프트웨어 개발 중에 변경이 허용됩니다. 애자일 프로세스는 고객의 경쟁 우위에 맞춰 작동하도록 설계되었습니다.

배달

작동하는 소프트웨어는 1 ~ 4 주 내에 고객에게 제공됩니다.

협동

비즈니스 분석가, 품질 분석가 및 개발자는 프로젝트의 전체 수명주기 동안 협력해야합니다.

자극

프로젝트는 동기 부여 된 개인의 클랜과 함께 설계되어야합니다. 개별 팀 구성원을 지원할 수있는 환경을 제공합니다.

개인적인 대화

대면 대화는 개발 팀과 정보를 전송하는 가장 효율적이고 효과적인 방법입니다.

진행 상황 측정

진행 상황 측정은 프로젝트 및 소프트웨어 개발의 진행 상황을 정의하는 데 도움이되는 핵심입니다.

일정한 속도 유지

애자일 프로세스는 지속 가능한 개발에 중점을 둡니다. 비즈니스, 개발자 및 사용자는 프로젝트를 지속적으로 진행할 수 있어야합니다.

모니터링

민첩한 기능을 향상시키기 위해 기술적 우수성과 좋은 디자인에 정기적으로주의를 기울여야합니다.

간단

애자일 프로세스는 모든 것을 단순하게 유지하고 간단한 용어를 사용하여 완료되지 않은 작업을 측정합니다.

자체 구성 용어

민첩한 팀은 스스로 구성되어야하며 최상의 아키텍처로 독립적이어야합니다. 요구 사항 및 디자인은 자체 조직 된 팀에서 나옵니다.

작업 검토

팀이 작업 진행 상황을 반영 할 수 있도록 정기적으로 작업을 검토하는 것이 중요합니다. 적시에 모듈을 검토하면 성능이 향상됩니다.

데일리 스탠드 업

일일 스탠드 업은 팀원 간의 일일 상태 회의를 의미합니다. 소프트웨어 개발과 관련된 업데이트를 제공합니다. 또한 프로젝트 개발의 장애물을 해결하는 것을 의미합니다.

사무실 위치에 관계없이 애자일 팀이 어떻게 구성되어 있더라도 매일 스탠드 업은 필수 관행입니다.

일일 스탠드 업의 기능 목록은 다음과 같습니다.

  • 매일 스탠드 업 미팅 시간은 약 15 분입니다. 더 오래 연장해서는 안됩니다.

  • 스탠드 업은 상태 업데이트에 대한 토론을 포함해야합니다.

  • 이 회의 참가자는 일반적으로 회의를 빨리 끝내려는 의도로 서 있습니다.

사용자 스토리

스토리는 일반적으로 요구 사항이며 간단한 언어로 몇 개의 문장으로 구성되며 반복 내에서 완료되어야합니다. 사용자 스토리에는 다음과 같은 특성이 포함되어야합니다.

  • 모든 관련 코드에는 관련 체크인이 있어야합니다.

  • 지정된 반복에 대한 단위 테스트 케이스입니다.

  • 모든 승인 테스트 케이스를 정의해야합니다.

  • 이야기를 정의하는 동안 제품 소유자의 수락.

스크럼이란?

스크럼은 애자일 방법론의 하위 집합으로 간주 될 수 있습니다. 경량 프로세스이며 다음 기능을 포함합니다.

  • 일관된 순서로 따라야하는 일련의 관행을 포함하는 프로세스 프레임 워크입니다. 스크럼의 가장 좋은 예는 반복 또는 스프린트를 따르는 것입니다.

  • 이는 "경량"프로세스로서 지정된 기간 동안 생산적인 결과를 극대화하기 위해 프로세스가 가능한 한 작게 유지된다는 의미입니다.

스크럼 프로세스는 전통적인 애자일 접근 방식의 다른 방법론과 비교할 때 차별화 된 프로세스로 유명합니다. 다음 세 가지 범주로 나뉩니다.

  • Roles

  • Artifacts

  • 타임 박스

역할은 프로세스 전체에 포함 된 팀 구성원과 역할을 정의합니다. 스크럼 팀은 다음 세 가지 역할로 구성됩니다.

  • 스크럼 마스터

  • 제품 소유자

  • Team

스크럼 아티팩트는 각 구성원이 알아야 할 주요 정보를 제공합니다. 정보에는 제품, 계획된 활동 및 완료된 활동의 세부 사항이 포함됩니다. 스크럼 프레임 워크에 정의 된 아티팩트는 다음과 같습니다.

  • 제품 백 로그

  • 스프린트 백 로그

  • 번 다운 차트

  • Increment

시간 상자는 각 반복에 대해 계획된 사용자 스토리입니다. 이러한 사용자 스토리는 스크럼 아티팩트의 일부를 형성하는 제품 기능을 설명하는 데 도움이됩니다. 제품 백로 그는 사용자 스토리 목록입니다. 이러한 사용자 스토리는 우선 순위가 지정되고 사용자 회의에 전달되어 어느 것이 채택되어야하는지 결정합니다.

왜 스크럼 마스터인가?

스크럼 마스터는 팀의 모든 구성원과 상호 작용합니다. 이제 스크럼 마스터와 다른 팀 및 리소스의 상호 작용을 살펴 보겠습니다.

제품 소유자

스크럼 마스터는 다음과 같은 방식으로 제품 소유자와 상호 작용합니다.

  • 사용자 스토리의 효과적인 제품 백 로그를 달성하기위한 기술을 찾고 관리합니다.

  • 팀이 명확하고 간결한 제품 백 로그 항목의 요구 사항을 이해하도록 지원합니다.

  • 특정 환경에서 제품 계획.

  • 제품 소유자가 제품의 가치를 높이는 방법을 알도록합니다.

  • 필요할 때 스크럼 이벤트를 촉진합니다.

스크럼 팀

스크럼 마스터는 여러 방법으로 팀과 상호 작용합니다.

  • 조직의 스크럼 채택 코칭.

  • 특정 조직에 스크럼 구현 계획.

  • 직원과 이해 관계자가 제품 개발의 요구 사항과 단계를 이해하도록 돕습니다.

  • 특정 팀의 스크럼 적용 효과를 높이기 위해 다른 팀의 스크럼 마스터와 협력합니다.

조직

스크럼 마스터는 여러 방식으로 조직과 상호 작용합니다. 아래에 몇 가지가 언급되어 있습니다.

  • 코칭 및 스크럼 팀은 자체 조직과 상호 작용하며 교차 기능의 기능을 포함합니다.

  • 스크럼이 아직 완전히 채택되지 않았거나 승인되지 않은 영역에서 조직과 팀을지도합니다.

스크럼의 이점

Scrum은 고객, 팀 구성원 및 이해 관계자가 협업 할 수 있도록 지원합니다. 여기에는 타임 박스 접근 방식과 제품 소유자의 지속적인 피드백이 포함되어 제품이 작동 상태에 있는지 확인합니다. 스크럼은 프로젝트의 다양한 역할에 이점을 제공합니다.

고객

스프린트 또는 반복은 더 짧은 기간 동안 고려되며 사용자 스토리는 우선 순위에 따라 설계되고 스프린트 계획에 포함됩니다. 모든 스프린트 제공, 고객 요구 사항이 충족되도록 보장합니다. 그렇지 않은 경우 요구 사항이 기록되고 스프린트를 위해 계획되고 취해집니다.

조직

스크럼 및 스크럼 마스터의 도움을받는 조직은 사용자 스토리 개발에 필요한 노력에 집중할 수 있으므로 작업 과부하를 줄이고 재 작업을 방지 할 수 있습니다. 이는 또한 개발 팀의 효율성 향상과 고객 만족도를 유지하는 데 도움이됩니다. 이 접근 방식은 시장의 잠재력을 높이는데도 도움이됩니다.

제품 관리자

제품 관리자의 주된 책임은 제품의 품질을 유지하는 것입니다. 스크럼 마스터의 도움으로 작업을 용이하게하고 빠른 응답을 수집하며 변경 사항을 흡수하는 것이 쉬워집니다. 또한 제품 관리자는 설계된 제품이 모든 스프린트의 고객 요구 사항에 따라 정렬되었는지 확인합니다.

개발팀

타임 박스 특성과 더 짧은 시간 동안 스프린트를 유지하는 개발 팀은 작업이 제대로 반영되고 전달되는지 확인하는 데 열광합니다. 작동하는 제품은 반복 할 때마다 각 레벨을 증가 시키거나 "스프린트"라고 부를 수 있습니다. 모든 스프린트를 위해 설계된 사용자 스토리는 반복에 더 많은 가치를 더하는 고객 우선 순위가됩니다.

결론

Scrum은 팀워크로 소프트웨어를 개발할 수있는 효율적인 프레임 워크입니다. 민첩한 원칙에 따라 완벽하게 설계되었습니다. ScrumMaster는 가능한 모든 방법으로 Scrum 팀을 돕고 협력합니다. 그는 계획된 계획을 고수하고 계획에 따라 모든 활동을 수행하도록 돕는 개인 트레이너 역할을합니다. ScrumMaster의 권한은 프로세스를 넘어서는 절대 안됩니다. 그는 잠재적으로 모든 상황을 관리 할 수 ​​있어야합니다.

이 장에서는 프로세스를 이해하는 데 필요한 데이터 과학 프로세스와 용어를 이해합니다.

"데이터 과학은 복잡한 분석 문제를 해결하기위한 데이터 인터페이스, 알고리즘 개발 및 기술의 조합입니다."

데이터 과학은 전통적인 연구와 함께 기계 학습, 수학 및 통계 지식으로 범주가 포함 된 과학적 방법, 프로세스 및 시스템을 포괄하는 학제 간 분야입니다. 또한 해킹 기술과 실질적인 전문 지식의 조합도 포함됩니다. 데이터 과학은 수학, 통계, 정보 과학, 컴퓨터 과학, 데이터 마이닝 및 예측 분석에서 원리를 도출합니다.

데이터 과학 팀의 일부를 구성하는 다양한 역할은 다음과 같습니다.

고객

고객은 제품을 사용하는 사람들입니다. 그들의 관심은 프로젝트의 성공을 결정하며 그들의 피드백은 데이터 과학에서 매우 중요합니다.

사업 개발

이 데이터 과학 팀은 직접 또는 랜딩 페이지 및 프로모션 생성을 통해 초기 고객에게 서명합니다. 비즈니스 개발 팀은 제품의 가치를 제공합니다.

제품 관리자

제품 관리자는 시장에서 가치있는 최고의 제품을 만드는 것을 중요하게 생각합니다.

인터랙션 디자이너

사용자가 적절한 가치를 찾을 수 있도록 데이터 모델에 대한 디자인 상호 작용에 중점을 둡니다.

데이터 과학자

데이터 과학자는 새로운 기능을 만들고 게시하기 위해 새로운 방식으로 데이터를 탐색하고 변환합니다. 이 과학자들은 또한 다양한 출처의 데이터를 결합하여 새로운 가치를 창출합니다. 연구원, 엔지니어 및 웹 개발자와 함께 시각화를 만드는 데 중요한 역할을합니다.

연구원

이름에서 알 수 있듯이 연구원은 연구 활동에 참여합니다. 그들은 데이터 과학자가 할 수없는 복잡한 문제를 해결합니다. 이러한 문제는 머신 러닝 및 통계 모듈의 집중과 시간을 포함합니다.

변화에 적응

데이터 과학의 모든 팀원은 새로운 변경 사항에 적응하고 요구 사항에 따라 작업해야합니다. 데이터 과학과 함께 애자일 방법론을 채택하기 위해 몇 가지 변경이 이루어져야합니다.

  • 전문가보다 제너럴리스트를 선택합니다.

  • 큰 팀보다 작은 팀을 선호합니다.

  • 고급 도구 및 플랫폼 사용.

  • 중간 작업의 지속적이고 반복적 인 공유.

Note

애자일 데이터 과학 팀에서 소규모 일반 전문가 팀은 확장 가능하고 반복을 통해 데이터를 점점 더 높은 가치 상태로 정제하는 높은 수준의 도구를 사용합니다.

데이터 과학 팀원의 작업과 관련된 다음 예를 고려하십시오.

  • 디자이너는 CSS를 제공합니다.

  • 웹 개발자는 전체 애플리케이션을 구축하고 사용자 경험을 이해하며 인터페이스 디자인을 이해합니다.

  • 데이터 과학자는 웹 애플리케이션을 포함한 웹 서비스를 연구하고 구축하는 작업을 모두 수행해야합니다.

  • 연구원은 중간 결과를 설명하는 결과를 보여주는 코드 기반에서 작업합니다.

  • 제품 관리자는 모든 관련 영역의 결함을 식별하고 이해하려고합니다.

이 장에서는 다양한 Agile 도구와 그 설치에 대해 알아 봅니다. 애자일 방법론의 개발 스택에는 다음과 같은 구성 요소가 포함됩니다.

이벤트

이벤트는 기능 및 타임 스탬프와 함께 발생하거나 기록되는 발생입니다.

이벤트는 서버, 센서, 금융 거래 또는 사용자가 애플리케이션에서 취하는 조치와 같은 다양한 형태로 올 수 있습니다. 이 전체 자습서에서는 다양한 도구 및 언어 간의 데이터 교환을 용이하게하는 JSON 파일을 사용합니다.

수집가

수집기는 이벤트 수집 자입니다. 이벤트를 체계적으로 수집하여 실시간 작업자의 조치를 위해 대기중인 대용량 데이터를 저장하고 집계합니다.

배포 된 문서

이러한 문서에는 특정 형식으로 문서를 저장하는 다중 노드 (다중 노드)가 포함됩니다. 이 튜토리얼에서는 MongoDB에 초점을 맞출 것입니다.

웹 애플리케이션 서버

웹 애플리케이션 서버는 최소한의 오버 헤드로 시각화를 통해 클라이언트를 통해 데이터를 JSON으로 사용할 수 있습니다. 이는 웹 애플리케이션 서버가 애자일 방법론으로 생성 된 프로젝트를 테스트하고 배포하는 데 도움이된다는 의미입니다.

최신 브라우저

이를 통해 최신 브라우저 또는 애플리케이션이 사용자를위한 대화 형 도구로 데이터를 제공 할 수 있습니다.

지역 환경 설정

데이터 세트 관리를 위해 Excel, csv 및 더 많은 파일을 관리하는 도구를 포함하는 Python의 Anaconda 프레임 워크에 중점을 둘 것입니다. 일단 설치된 Anaconda 프레임 워크의 대시 보드는 다음과 같습니다. "아나콘다 내비게이터"라고도합니다.

네비게이터에는 데이터 세트 관리를 돕는 노트북 시스템 인 "Jupyter 프레임 워크"가 포함되어 있습니다. 프레임 워크를 시작하면 아래에 언급 된 것처럼 브라우저에서 호스팅됩니다.

이 장에서는 구조화 된 데이터, 반 구조화 된 데이터 및 구조화되지 않은 데이터의 차이점에 초점을 맞출 것입니다.

구조화 된 데이터

구조화 된 데이터는 행과 열이있는 테이블에 SQL 형식으로 저장된 데이터와 관련이 있습니다. 여기에는 미리 디자인 된 필드에 매핑되는 관계형 키가 포함됩니다. 구조화 된 데이터는 더 큰 규모로 사용됩니다.

구조화 된 데이터는 모든 정보학 데이터의 5 ~ 10 %에 불과합니다.

반 구조화 된 데이터

SEM 구조화 된 데이터에는 관계형 데이터베이스에 상주하지 않는 데이터가 포함됩니다. 여기에는보다 쉽게 ​​분석 할 수있는 일부 조직 속성이 포함됩니다. 관계형 데이터베이스에 저장하는 것과 동일한 프로세스가 포함됩니다. 반 구조화 된 데이터베이스의 예는 CSV 파일, XML 및 JSON 문서입니다. NoSQL 데이터베이스는 반 구조화 된 것으로 간주됩니다.

구조화되지 않은 데이터

구조화되지 않은 데이터는 데이터의 80 %를 차지합니다. 종종 텍스트 및 멀티미디어 콘텐츠가 포함됩니다. 비정형 데이터의 가장 좋은 예로는 오디오 파일, 프레젠테이션 및 웹 페이지가 있습니다. 기계 생성 비정형 데이터의 예로는 위성 이미지, 과학 데이터, 사진 및 비디오, 레이더 및 소나 데이터가 있습니다.

위의 피라미드 구조는 특히 데이터의 양과 데이터가 흩어져있는 비율에 중점을 둡니다.

준 정형 데이터는 비정형 데이터와 반 정형 데이터 사이의 유형으로 나타납니다. 이 자습서에서는 민첩한 방법론 및 데이터 과학 연구에 유용한 반 구조화 된 데이터에 중점을 둡니다.

반 구조화 된 데이터에는 공식적인 데이터 모델이 없지만 분석을 통해 개발 된 명백하고 자체 설명적인 패턴과 구조가 있습니다.

이 자습서의 전체 초점은 더 적은 수의 단계와 더 유용한 도구를 구현하여 애자일 방법론을 따르는 것입니다. 이를 이해하려면 SQL과 NoSQL 데이터베이스의 차이점을 아는 것이 중요합니다.

대부분의 사용자는 SQL 데이터베이스를 알고 있으며 MySQL, Oracle 또는 기타 SQL 데이터베이스에 대해 잘 알고 있습니다. 지난 몇 년 동안 NoSQL 데이터베이스는 프로젝트의 다양한 비즈니스 문제와 요구 사항을 해결하기 위해 널리 채택되고 있습니다.

다음 표는 SQL과 NoSQL 데이터베이스의 차이점을 보여줍니다-

SQL NoSQL
SQL 데이터베이스는 주로 관계형 데이터베이스 관리 시스템 (RDBMS)이라고합니다. NoSQL 데이터베이스는 문서 지향 데이터베이스라고도합니다. 비 관계형이며 분산되어 있습니다.
SQL 기반 데이터베이스에는 행과 열이있는 테이블 구조가 포함됩니다. 데이터베이스라고하는 테이블 및 기타 스키마 구조 모음. NoSQL 데이터베이스는 문서를 주요 구조로 포함하고 문서를 포함하는 것을 컬렉션이라고합니다.
SQL 데이터베이스에는 미리 정의 된 스키마가 포함됩니다. NoSQL 데이터베이스에는 동적 데이터가 있으며 구조화되지 않은 데이터가 포함됩니다.
SQL 데이터베이스는 수직 확장 가능합니다. NoSQL 데이터베이스는 수평 확장이 가능합니다.
SQL 데이터베이스는 복잡한 쿼리 환경에 적합합니다. NoSQL에는 복잡한 쿼리 개발을위한 표준 인터페이스가 없습니다.
SQL 데이터베이스는 계층 적 데이터 저장에 적합하지 않습니다. NoSQL 데이터베이스는 계층 적 데이터 저장소에 더 적합합니다.
SQL 데이터베이스는 지정된 애플리케이션의 대량 트랜잭션에 가장 적합합니다. NoSQL 데이터베이스는 복잡한 트랜잭션 응용 프로그램의 높은로드에서 여전히 비교할 수없는 것으로 간주됩니다.
SQL 데이터베이스는 공급 업체를위한 탁월한 지원을 제공합니다. NoSQL 데이터베이스는 여전히 커뮤니티 지원에 의존합니다. 대규모 NoSQL 배포를 위해 설치 및 배포 할 수있는 전문가는 거의 없습니다.
SQL 데이터베이스는 원 자성, 일관성, 격리 및 내구성과 같은 ACID 속성에 중점을 둡니다. NoSQL 데이터베이스는 일관성, 가용성 및 파티션 허용 오차 등 CAP 속성에 중점을 둡니다.
SQL 데이터베이스는 선택한 공급 업체에 따라 오픈 소스 또는 폐쇄 소스로 분류 할 수 있습니다. NoSQL 데이터베이스는 저장소 유형에 따라 분류됩니다. NoSQL 데이터베이스는 기본적으로 오픈 소스입니다.

애자일을위한 NoSQL이 필요한 이유

위에서 언급 한 비교는 NoSQL 문서 데이터베이스가 애자일 개발을 완벽하게 지원함을 보여줍니다. 스키마가 없으며 데이터 모델링에 완전히 초점을 맞추지 않습니다. 대신 NoSQL은 응용 프로그램과 서비스를 연기하므로 개발자는 데이터 모델링 방법에 대해 더 나은 아이디어를 얻을 수 있습니다. NoSQL은 데이터 모델을 애플리케이션 모델로 정의합니다.

MongoDB 설치

이 자습서에서는 최상의 "NoSQL 스키마"로 간주되는 MongoDB의 예에 더 중점을 둘 것입니다.

관계형 형식으로 데이터를 사용할 수없는 경우가 있으며 NoSQL 데이터베이스의 도움으로 트랜잭션을 유지해야합니다.

이 장에서는 NoSQL의 데이터 흐름에 중점을 둘 것입니다. 또한 애자일과 데이터 사이언스를 결합하여 운영하는 방법도 배웁니다.

NoSQL을 애자일로 사용하는 주요 이유 중 하나는 시장 경쟁으로 속도를 높이기 위해서입니다. 다음 이유는 NoSQL이 민첩한 소프트웨어 방법론에 가장 적합한 방법을 보여줍니다.

더 적은 장벽

현재 미드 스트림을 거치고있는 모델을 변경하면 애자일 개발의 경우에도 실제 비용이 발생합니다. NoSQL을 사용하면 사용자는 데이터 정규화에 시간을 낭비하는 대신 집계 데이터로 작업합니다. 요점은 모델을 완벽한 데이터로 만드는 목표를 가지고 작업을 수행하는 것입니다.

확장 성 향상

조직이 제품을 만들 때마다 확장성에 더 중점을 둡니다. NoSQL은 항상 확장 성으로 알려져 있지만 수평 확장 성으로 설계하면 더 잘 작동합니다.

데이터 활용 능력

NoSQL은 사용자가 가변성 및 속도의 여러 매개 변수를 포함하는 데이터 볼륨을 쉽게 사용할 수 있도록하는 스키마없는 데이터 모델입니다. 기술 선택을 고려할 때 항상 데이터를 더 큰 규모로 활용하는 기술을 고려해야합니다.

NoSQL의 데이터 흐름

데이터 모델이 RDBMS 스키마 생성에 초점을 맞추는 방법을 보여준 다음 예를 살펴 보겠습니다.

다음은 스키마의 다른 요구 사항입니다-

  • 사용자 식별이 나열되어야합니다.

  • 모든 사용자는 하나 이상의 필수 기술을 가지고 있어야합니다.

  • 모든 사용자 경험의 세부 사항은 적절하게 유지되어야합니다.

사용자 테이블은 3 개의 개별 테이블로 정규화됩니다.

  • Users

  • 사용자 기술

  • 사용자 경험

데이터베이스를 쿼리하는 동안 복잡성이 증가하고 시간 소비는 Agile 방법론에 좋지 않은 정규화 증가와 함께 나타납니다. 아래에 언급 된 것과 같이 동일한 스키마가 NoSQL 데이터베이스로 설계 될 수 있습니다.

NoSQL은 구조가 가벼운 JSON 형식으로 구조를 유지합니다. JSON을 사용하면 애플리케이션이 중첩 된 데이터가있는 개체를 단일 문서로 저장할 수 있습니다.

이 장에서는 "Agile 방법론"의 일부를 구성하는 JSON 구조에 초점을 맞출 것입니다. MongoDB는 널리 사용되는 NoSQL 데이터 구조이며 레코드 수집 및 표시를 위해 쉽게 작동합니다.

1 단계

이 단계에는 컬렉션 및 지정된 데이터 모델을 생성하기 위해 MongoDB와의 연결 설정이 포함됩니다. 실행해야 할 것은 연결을 시작하는 "mongod"명령과 지정된 터미널에 연결하는 mongo 명령입니다.

2 단계

JSON 형식으로 레코드를 만들기위한 새 데이터베이스를 만듭니다. 지금은 "mydb"라는 더미 데이터베이스를 생성합니다.

>use mydb
switched to db mydb
>db
mydb
>show dbs
local 0.78125GB
test 0.23012GB
>db.user.insert({"name":"Agile Data Science"})
>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB

3 단계

레코드 목록을 가져 오려면 컬렉션을 만들어야합니다. 이 기능은 데이터 과학 연구 및 출력에 유용합니다.

>use test
switched to db test
>db.createCollection("mycollection")
{ "ok" : 1 }
>show collections
mycollection
system.indexes
>db.createCollection("mycol", { capped : true, autoIndexId : true, size :
 6142800, max : 10000 } )
{ "ok" : 1 }
>db.agiledatascience.insert({"name" : "demoname"})
>show collections
mycol
mycollection
system.indexes
demoname

데이터 시각화는 데이터 과학에서 매우 중요한 역할을합니다. 데이터 시각화를 데이터 과학의 모듈로 간주 할 수 있습니다. 데이터 과학에는 예측 모델 구축 이상의 것이 포함됩니다. 여기에는 모델에 대한 설명과이를 사용하여 데이터를 이해하고 결정을 내리는 것이 포함됩니다. 데이터 시각화는 가장 설득력있는 방식으로 데이터를 표현하는 데 없어서는 안될 부분입니다.

데이터 과학 관점에서 데이터 시각화는 변화와 추세를 보여주는 하이라이트 기능입니다.

효과적인 데이터 시각화를 위해 다음 지침을 고려하십시오-

  • 공통 척도에 따라 데이터를 배치합니다.

  • 막대를 사용하면 원과 사각형을 비교할 때 더 효과적입니다.

  • 산점도에는 적절한 색상을 사용해야합니다.

  • 비율을 표시하려면 원형 차트를 사용하십시오.

  • Sunburst 시각화는 계층 적 플롯에 더 효과적입니다.

Agile은 데이터 시각화를위한 간단한 스크립팅 언어가 필요하며 데이터 사이언스가 협력하여 데이터 시각화를위한 권장 언어는 "Python"입니다.

예 1

다음 예는 특정 연도에 계산 된 GDP의 데이터 시각화를 보여줍니다. "Matplotlib"는 Python에서 데이터 시각화를위한 최고의 라이브러리입니다. 이 라이브러리의 설치는 다음과 같습니다.

이것을 이해하려면 다음 코드를 고려하십시오.

import matplotlib.pyplot as plt
years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
gdp = [300.2, 543.3, 1075.9, 2862.5, 5979.6, 10289.7, 14958.3]

# create a line chart, years on x-axis, gdp on y-axis
plt.plot(years, gdp, color='green', marker='o', linestyle='solid')

# add a title plt.title("Nominal GDP")
# add a label to the y-axis
plt.ylabel("Billions of $")
plt.show()

산출

위의 코드는 다음 출력을 생성합니다.

축 레이블, 선 스타일 및 포인트 마커를 사용하여 차트를 사용자 정의하는 방법에는 여러 가지가 있습니다. 더 나은 데이터 시각화를 보여주는 다음 예제에 집중 해 보겠습니다. 이러한 결과는 더 나은 결과를 위해 사용될 수 있습니다.

예 2

import datetime
import random
import matplotlib.pyplot as plt

# make up some data
x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(12)]
y = [i+random.gauss(0,1) for i,_ in enumerate(x)]

# plot
plt.plot(x,y)

# beautify the x-labels
plt.gcf().autofmt_xdate()
plt.show()

산출

위의 코드는 다음 출력을 생성합니다.

데이터 강화는 원시 데이터를 향상, 정제 및 개선하는 데 사용되는 다양한 프로세스를 의미합니다. 유용한 데이터 변환 (원시 데이터를 유용한 정보로)을 나타냅니다. 데이터 보강 프로세스는 데이터를 현대 비즈니스 또는 기업의 귀중한 데이터 자산으로 만드는 데 중점을 둡니다.

가장 일반적인 데이터 보강 프로세스에는 특정 결정 알고리즘을 사용하여 데이터베이스의 철자 오류 또는 인쇄 오류 수정이 포함됩니다. 데이터 보강 도구는 간단한 데이터 테이블에 유용한 정보를 추가합니다.

단어의 철자 교정을 위해 다음 코드를 고려하십시오-

import re
from collections import Counter
def words(text): return re.findall(r'\w+', text.lower())
WORDS = Counter(words(open('big.txt').read()))

def P(word, N=sum(WORDS.values())):
   "Probabilities of words"
   return WORDS[word] / N
	
def correction(word):
   "Spelling correction of word"
   return max(candidates(word), key=P)
	
def candidates(word):
   "Generate possible spelling corrections for word."
   return (known([word]) or known(edits1(word)) or known(edits2(word)) or [word])
	
def known(words):
   "The subset of `words` that appear in the dictionary of WORDS."
   return set(w for w in words if w in WORDS)
	
def edits1(word):
   "All edits that are one edit away from `word`."
   letters = 'abcdefghijklmnopqrstuvwxyz'
   splits = [(word[:i], word[i:]) for i in range(len(word) + 1)]
   deletes = [L + R[1:] for L, R in splits if R]
   transposes = [L + R[1] + R[0] + R[2:] for L, R in splits if len(R)>1]
   replaces = [L + c + R[1:] for L, R in splits if R for c in letters]
   inserts = [L + c + R for L, R in splits for c in letters]
   return set(deletes + transposes + replaces + inserts)
	
def edits2(word):
   "All edits that are two edits away from `word`."
   return (e2 for e1 in edits1(word) for e2 in edits1(e1))
   print(correction('speling'))
   print(correction('korrectud'))

이 프로그램에서는 수정 된 단어가 포함 된 "big.txt"와 일치합니다. 단어는 텍스트 파일에 포함 된 단어와 일치하고 그에 따라 적절한 결과를 인쇄합니다.

산출

위의 코드는 다음 출력을 생성합니다.

이 장에서는 애자일 방법론의 중요한 모듈 인 보고서 생성에 대해 알아 봅니다. Agile은 시각화를 통해 생성 된 차트 페이지를 완전한 보고서로 스프린트합니다. 보고서를 사용하면 차트는 대화 형이되고 정적 페이지는 동적 및 네트워크 관련 데이터가됩니다. 데이터 가치 피라미드의 보고서 단계의 특성은 다음과 같습니다.

데이터 사이언스 분석 보고서로 활용할 수있는 csv 파일 생성 및 결론 도출에 더 많은 노력을 기울일 것입니다. 애자일은 적은 문서에 초점을 맞추지 만 제품 개발 진행 상황을 언급하는 보고서 생성은 항상 고려됩니다.

import csv
#----------------------------------------------------------------------
def csv_writer(data, path):
   """
      Write data to a CSV file path
   """
   with open(path, "wb") as csv_file:
   writer = csv.writer(csv_file, delimiter=',')
   for line in data:
   writer.writerow(line)
#----------------------------------------------------------------------
if __name__ == "__main__":
   data = ["first_name,last_name,city".split(","),
      "Tyrese,Hirthe,Strackeport".split(","),
      "Jules,Dicki,Lake Nickolasville".split(","),
      "Dedric,Medhurst,Stiedemannberg".split(",")
   ]
	
   path = "output.csv"
   csv_writer(data, path)

위의 코드는 아래와 같이 "csv 파일"을 생성하는 데 도움이됩니다.

csv (쉼표로 구분 된 값) 보고서의 다음 이점을 고려해 보겠습니다.

  • 인간 친화적이며 수동으로 편집하기 쉽습니다.
  • 구현 및 구문 분석이 간단합니다.
  • CSV는 모든 응용 프로그램에서 처리 할 수 ​​있습니다.
  • 처리가 더 작고 빠릅니다.
  • CSV는 표준 형식을 따릅니다.
  • 데이터 과학자를위한 간단한 스키마를 제공합니다.

이 장에서는 애자일 데이터 과학에서 예측의 역할에 대해 알아 보겠습니다. 대화 형 보고서는 데이터의 다양한 측면을 노출합니다. 예측은 민첩한 스프린트의 네 번째 계층을 형성합니다.

예측을 할 때 우리는 항상 과거 데이터를 참조하고 향후 반복을위한 추론으로 사용합니다. 이 전체 프로세스에서 데이터를 과거 데이터의 일괄 처리에서 미래에 대한 실시간 데이터로 전환합니다.

예측의 역할은 다음과 같습니다.

  • 예측은 예측에 도움이됩니다. 일부 예측은 통계적 추론을 기반으로합니다. 일부 예측은 전문가의 의견을 기반으로합니다.

  • 통계적 추론은 모든 종류의 예측과 관련됩니다.

  • 때로는 예측이 정확하고 때로는 예측이 정확하지 않습니다.

예측 분석

예측 분석에는 현재 및 과거 사실을 분석하여 미래 및 알려지지 않은 이벤트에 대한 예측을 수행하는 예측 모델링, 기계 학습 및 데이터 마이닝의 다양한 통계 기술이 포함됩니다.

예측 분석에는 교육 데이터가 필요합니다. 훈련 된 데이터에는 독립 및 종속 기능이 포함됩니다. 종속 기능은 사용자가 예측하려는 값입니다. 독립 기능은 종속 기능을 기반으로 예측하려는 것을 설명하는 기능입니다.

기능 연구를 기능 공학이라고합니다. 이것은 예측을하는 데 중요합니다. 데이터 시각화 및 탐색 적 데이터 분석은 기능 엔지니어링의 일부입니다. 이들은의 핵심을 형성합니다Agile data science.

예측하기

애자일 데이터 과학에서 예측을 수행하는 방법에는 두 가지가 있습니다.

  • Regression

  • Classification

회귀 또는 분류를 구축하는 것은 비즈니스 요구 사항 및 분석에 완전히 좌우됩니다. 연속 변수 예측은 회귀 모델로 이어지고 범주 형 변수 예측은 분류 모델로 이어집니다.

회귀

회귀는 기능을 구성하는 예를 고려하여 숫자 출력을 생성합니다.

분류

분류는 입력을 받아 범주 분류를 생성합니다.

Note − 통계적 예측에 대한 입력을 정의하고 기계가 학습 할 수 있도록하는 예제 데이터 세트를 "훈련 데이터"라고합니다.

이 장에서는 Agile Data Science에서 PySpark를 사용하여 추출 기능을 적용하는 방법에 대해 알아 봅니다.

Spark 개요

Apache Spark는 빠른 실시간 처리 프레임 워크로 정의 할 수 있습니다. 실시간으로 데이터를 분석하기 위해 계산을 수행합니다. Apache Spark는 실시간 스트림 처리 시스템으로 도입되며 일괄 처리도 처리 할 수 ​​있습니다. Apache Spark는 대화 형 쿼리 및 반복 알고리즘을 지원합니다.

Spark는 "Scala 프로그래밍 언어"로 작성되었습니다.

PySpark는 Python과 Spark의 조합으로 간주 할 수 있습니다. PySpark는 Python API를 Spark 코어에 연결하고 Spark 컨텍스트를 초기화하는 PySpark 셸을 제공합니다. 대부분의 데이터 과학자는 이전 장에서 설명한대로 기능 추적에 PySpark를 사용합니다.

이 예에서는 counts라는 데이터 세트를 빌드하고 특정 파일에 저장하는 변환에 중점을 둡니다.

text_file = sc.textFile("hdfs://...")
counts = text_file.flatMap(lambda line: line.split(" ")) \
   .map(lambda word: (word, 1)) \
   .reduceByKey(lambda a, b: a + b)
counts.saveAsTextFile("hdfs://...")

사용자는 PySpark를 사용하여 Python 프로그래밍 언어로 RDD를 사용할 수 있습니다. 데이터 기반 문서 및 구성 요소의 기본 사항을 다루는 내장 라이브러리가이를 지원합니다.

로지스틱 회귀는 범주 형 종속 변수의 확률을 예측하는 데 사용되는 기계 학습 알고리즘을 나타냅니다. 로지스틱 회귀 분석에서 종속 변수는 1로 코딩 된 데이터로 구성된 이진 변수입니다 (부울 값 true 및 false).

이 장에서는 연속 변수를 사용하여 Python에서 회귀 모델을 개발하는 데 중점을 둡니다. 선형 회귀 모델의 예는 CSV 파일의 데이터 탐색에 중점을 둡니다.

분류 목표는 고객이 정기 예금에 가입 (1/0)할지 여부를 예측하는 것입니다.

import pandas as pd
import numpy as np
from sklearn import preprocessing
import matplotlib.pyplot as plt

plt.rc("font", size=14)
from sklearn.linear_model import LogisticRegression
from sklearn.cross_validation import train_test_split

import seaborn as sns
sns.set(style="white")
sns.set(style="whitegrid", color_codes=True)
data = pd.read_csv('bank.csv', header=0)
data = data.dropna()
print(data.shape)
print(list(data.columns))

"Jupyter Notebook"을 사용하여 Anaconda Navigator에서 위 코드를 구현하려면 다음 단계를 따르십시오.

Step 1 − Anaconda Navigator로 Jupyter 노트북을 시작합니다.

Step 2 − csv 파일을 업로드하여 체계적으로 회귀 모델의 출력을 얻습니다.

Step 3 − 원하는 출력을 얻기 위해 새 파일을 생성하고 위에서 언급 한 코드 라인을 실행합니다.

이 예제에서는 Python 스크립트를 사용하여 주택 가격 예측에 도움이되는 예측 모델을 만들고 배포하는 방법을 알아 봅니다. 예측 시스템 배포에 사용되는 중요한 프레임 워크에는 Anaconda 및 "Jupyter Notebook"이 포함됩니다.

예측 시스템을 배포하려면 다음 단계를 따르십시오.

Step 1 − 다음 코드를 구현하여 csv 파일의 값을 관련 값으로 변환합니다.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import mpl_toolkits

%matplotlib inline
data = pd.read_csv("kc_house_data.csv")
data.head()

위의 코드는 다음 출력을 생성합니다.

Step 2 − describe 함수를 실행하여 csv 파일의 속성에 포함 된 데이터 유형을 가져옵니다.

data.describe()

Step 3 − 생성 한 예측 모델의 배포를 기반으로 관련 값을 삭제할 수 있습니다.

train1 = data.drop(['id', 'price'],axis=1)
train1.head()

Step 4− 기록에 따라 데이터를 시각화 할 수 있습니다. 데이터는 데이터 과학 분석 및 백서 출력에 사용할 수 있습니다.

data.floors.value_counts().plot(kind='bar')

"SparkML"또는 "MLLib"라고도하는 기계 학습 라이브러리는 분류, 회귀, 클러스터링 및 협업 필터링을 포함한 일반적인 학습 알고리즘으로 구성됩니다.

Agile 용 SparkML을 배우는 이유는 무엇입니까?

Spark는 기계 학습 알고리즘 및 애플리케이션을 구축하기위한 사실상의 플랫폼이되고 있습니다. 개발자는 Spark 프레임 워크에서 확장 가능하고 간결한 방식으로 머신 알고리즘을 구현하기 위해 Spark에서 작업합니다. 이 프레임 워크를 통해 머신 러닝의 개념, 유틸리티 및 알고리즘을 배웁니다. Agile은 항상 짧고 빠른 결과를 제공하는 프레임 워크를 선택합니다.

ML 알고리즘

ML 알고리즘에는 분류, 회귀, 클러스터링 및 협업 필터링과 같은 일반적인 학습 알고리즘이 포함됩니다.

풍모

여기에는 기능 추출, 변환, 차원 축소 및 선택이 포함됩니다.

파이프 라인

파이프 라인은 기계 학습 파이프 라인을 구성, 평가 및 조정하기위한 도구를 제공합니다.

인기있는 알고리즘

다음은 몇 가지 인기있는 알고리즘입니다.

  • 기본 통계

  • Regression

  • Classification

  • 추천 시스템

  • Clustering

  • 차원 감소

  • 특징 추출

  • Optimization

추천 시스템

추천 시스템은 사용자가 주어진 항목에 대해 제안하는 "등급"및 "선호도"를 예측하는 정보 필터링 시스템의 하위 클래스입니다.

추천 시스템은 다음과 같이 사용되는 다양한 필터링 시스템을 포함합니다.

협업 필터링

여기에는 과거의 행동과 다른 사용자가 내린 유사한 결정을 기반으로 모델을 구축하는 것이 포함됩니다. 이 특정 필터링 모델은 사용자가 관심을 갖고있는 항목을 예측하는 데 사용됩니다.

콘텐츠 기반 필터링

여기에는 유사한 속성을 가진 새 항목을 추천하고 추가하기 위해 항목의 개별 특성 필터링이 포함됩니다.

다음 장에서는 특정 문제를 해결하고 애자일 방법론 관점에서 예측 성능을 개선하기위한 추천 시스템 사용에 중점을 둘 것입니다.

이 장에서는 특정 시나리오의 도움으로 예측 문제를 해결하는 데 중점을 둡니다.

회사가 온라인 신청서를 통해 제공되는 고객 세부 사항에 따라 대출 자격 세부 사항을 자동화하려고한다고 가정하십시오. 세부 사항에는 고객 이름, 성별, 결혼 여부, 대출 금액 및 기타 필수 세부 사항이 포함됩니다.

세부 사항은 아래와 같이 CSV 파일에 기록됩니다.

다음 코드를 실행하여 예측 문제를 평가하십시오.

import pandas as pd
from sklearn import ensemble
import numpy as np

from scipy.stats import mode
from sklearn import preprocessing,model_selection
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import LabelEncoder

#loading the dataset
data=pd.read_csv('train.csv',index_col='Loan_ID')
def num_missing(x):
   return sum(x.isnull())
 
#imputing the the missing values from the data
data['Gender'].fillna(mode(list(data['Gender'])).mode[0], inplace=True)
data['Married'].fillna(mode(list(data['Married'])).mode[0], inplace=True)
data['Self_Employed'].fillna(mode(list(data['Self_Employed'])).mode[0], inplace=True)

# print (data.apply(num_missing, axis=0))
# #imputing mean for the missing value
data['LoanAmount'].fillna(data['LoanAmount'].mean(), inplace=True)
mapping={'0':0,'1':1,'2':2,'3+':3}
data = data.replace({'Dependents':mapping})
data['Dependents'].fillna(data['Dependents'].mean(), inplace=True)
data['Loan_Amount_Term'].fillna(method='ffill',inplace=True)
data['Credit_History'].fillna(method='ffill',inplace=True)
print (data.apply(num_missing,axis=0))

#converting the cateogorical data to numbers using the label encoder
var_mod = ['Gender','Married','Education','Self_Employed','Property_Area','Loan_Status']
le = LabelEncoder()
for i in var_mod:
   le.fit(list(data[i].values))
   data[i] = le.transform(list(data[i]))
 
#Train test split
x=['Gender','Married','Education','Self_Employed','Property_Area','LoanAmount', 'Loan_Amount_Term','Credit_History','Dependents']
y=['Loan_Status']
print(data[x])
X_train,X_test,y_train,y_test=model_selection.train_test_split(data[x],data[y], test_size=0.2)

#
# #Random forest classifier
# clf=ensemble.RandomForestClassifier(n_estimators=100,
criterion='gini',max_depth=3,max_features='auto',n_jobs=-1)
clf=ensemble.RandomForestClassifier(n_estimators=200,max_features=3,min_samples
   _split=5,oob_score=True,n_jobs=-1,criterion='entropy')
	
clf.fit(X_train,y_train)
accuracy=clf.score(X_test,y_test)
print(accuracy)

산출

위의 코드는 다음 출력을 생성합니다.

이 장에서는 여러 속성이 포함 된 학생의 성과를 예측하는 데 도움이되는 모델을 만드는 데 중점을 둡니다. 초점은 시험에서 학생의 실패 결과를 표시하는 것입니다.

방법

평가 목표 값은 G3입니다. 이 값은 비닝 할 수 있으며 실패 및 성공으로 추가 분류 할 수 있습니다. G3 값이 10보다 크거나 같으면 학생은 시험에 합격합니다.

학생의 경우 성능을 예측하기 위해 코드가 실행되는 다음 예제를 고려하십시오.

import pandas as pd
""" Read data file as DataFrame """
df = pd.read_csv("student-mat.csv", sep=";")
""" Import ML helpers """
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import GridSearchCV, cross_val_score
from sklearn.pipeline import Pipeline
from sklearn.feature_selection import SelectKBest, chi2
from sklearn.svm import LinearSVC # Support Vector Machine Classifier model
""" Split Data into Training and Testing Sets """
def split_data(X, Y):
 return train_test_split(X, Y, test_size=0.2, random_state=17)
""" Confusion Matrix """
def confuse(y_true, y_pred):
 cm = confusion_matrix(y_true=y_true, y_pred=y_pred)
 # print("\nConfusion Matrix: \n", cm)
  fpr(cm)
 ffr(cm)
""" False Pass Rate """
def fpr(confusion_matrix):
 fp = confusion_matrix[0][1]
 tf = confusion_matrix[0][0]
 rate = float(fp) / (fp + tf)
 print("False Pass Rate: ", rate)
""" False Fail Rate """
def ffr(confusion_matrix):
 ff = confusion_matrix[1][0]
 tp = confusion_matrix[1][1]
 rate = float(ff) / (ff + tp)
 print("False Fail Rate: ", rate)
 return rate
""" Train Model and Print Score """
def train_and_score(X, y):
 X_train, X_test, y_train, y_test = split_data(X, y)
 clf = Pipeline([
 ('reduce_dim', SelectKBest(chi2, k=2)),
 ('train', LinearSVC(C=100))
 ])
 scores = cross_val_score(clf, X_train, y_train, cv=5, n_jobs=2)
 print("Mean Model Accuracy:", np.array(scores).mean())
 clf.fit(X_train, y_train)
 confuse(y_test, clf.predict(X_test))
 print()
""" Main Program """
def main():
 print("\nStudent Performance Prediction")
 # For each feature, encode to categorical values
 class_le = LabelEncoder()
 for column in df[["school", "sex", "address", "famsize", "Pstatus", "Mjob",
"Fjob", "reason", "guardian", "schoolsup", "famsup", "paid", "activities",
"nursery", "higher", "internet", "romantic"]].columns:
 df[column] = class_le.fit_transform(df[column].values)
 # Encode G1, G2, G3 as pass or fail binary values
 for i, row in df.iterrows():
 if row["G1"] >= 10:
 df["G1"][i] = 1
 else:
 df["G1"][i] = 0
 if row["G2"] >= 10:
 df["G2"][i] = 1
 else:
 df["G2"][i] = 0
 if row["G3"] >= 10:
 df["G3"][i] = 1
 else:
 df["G3"][i] = 0
 # Target values are G3
 y = df.pop("G3")
 # Feature set is remaining features
 X = df
 print("\n\nModel Accuracy Knowing G1 & G2 Scores")
 print("=====================================")
 train_and_score(X, y)
 # Remove grade report 2
 X.drop(["G2"], axis = 1, inplace=True)
 print("\n\nModel Accuracy Knowing Only G1 Score")
 print("=====================================")
 train_and_score(X, y)
 # Remove grade report 1
 X.drop(["G1"], axis=1, inplace=True)
 print("\n\nModel Accuracy Without Knowing Scores")
 print("=====================================")
 train_and_score(X, y)
main()

산출

위의 코드는 아래와 같이 출력을 생성합니다.

예측은 하나의 변수만을 참조하여 처리됩니다. 하나의 변수를 참조하면 학생 성과 예측은 다음과 같습니다.

애자일 방법론은 조직이 변화에 적응하고 시장에서 경쟁하며 고품질 제품을 구축하는 데 도움이됩니다. 조직은 고객의 요구 사항 변화가 증가함에 따라 민첩한 방법론으로 성숙해집니다. 민첩한 조직 팀과 데이터를 컴파일하고 동기화하는 것은 필요한 포트폴리오에 따라 데이터를 롤업하는 데 중요합니다.

더 나은 계획 수립

표준화 된 애자일 성능은 전적으로 계획에 따라 다릅니다. 정렬 된 데이터 스키마는 조직의 진행 상황에 대한 생산성, 품질 및 대응력을 강화합니다. 데이터 일관성 수준은 기록 및 실시간 시나리오에서 유지됩니다.

데이터 과학 실험주기를 이해하려면 다음 다이어그램을 고려하십시오.

데이터 과학에는 요구 사항 분석과이를 기반으로 한 알고리즘 생성이 포함됩니다. 알고리즘이 환경 설정과 함께 설계되면 사용자는 더 나은 분석을 위해 실험을 만들고 데이터를 수집 할 수 있습니다.

이 이데올로기는 "액션"이라고하는 마지막 애자일 스프린트를 계산합니다.

Actions마지막 스프린트 또는 민첩한 방법론의 모든 필수 작업을 포함합니다. 데이터 과학 단계 (생명주기와 관련하여) 추적은 스토리 카드를 작업 항목으로 사용하여 유지 관리 할 수 ​​있습니다.

예측 분석 및 빅 데이터

계획의 미래는 분석에서 수집 된 데이터로 데이터 보고서를 사용자 정의하는 데 있습니다. 또한 빅 데이터 분석을 통한 조작도 포함됩니다. 빅 데이터의 도움으로 개별 정보 조각을 효과적으로 분석하고 조직의 메트릭을 분할하고 축소 할 수 있습니다. 분석은 항상 더 나은 솔루션으로 간주됩니다.

애자일 개발 프로세스에는 다양한 방법론이 사용됩니다. 이러한 방법론은 데이터 과학 연구 프로세스에도 사용할 수 있습니다.

아래에 주어진 순서도는 다른 방법론을 보여줍니다-

스크럼

소프트웨어 개발 측면에서 스크럼은 소규모 팀과 함께 작업을 관리하고 특정 프로젝트를 관리하여 프로젝트의 강점과 약점을 드러내는 것을 의미합니다.

크리스탈 방법론

크리스탈 방법론에는 제품 관리 및 실행을위한 혁신적인 기술이 포함됩니다. 이 방법을 사용하면 팀이 다른 방식으로 유사한 작업을 수행 할 수 있습니다. Crystal 제품군은 가장 쉽게 적용 할 수있는 방법 중 하나입니다.

동적 소프트웨어 개발 방법

이 제공 프레임 워크는 주로 소프트웨어 방법론에서 현재 지식 시스템을 구현하는 데 사용됩니다.

미래 지향적 인 개발

이 개발 수명주기의 초점은 프로젝트와 관련된 기능입니다. 도메인 개체 모델링, 코드 및 소유권을위한 기능 개발에 가장 적합합니다.

린 소프트웨어 개발

익스트림 프로그래밍

익스트림 프로그래밍은 소프트웨어 품질 향상에 중점을 둔 고유 한 소프트웨어 개발 방법론입니다. 이는 고객이 프로젝트의 기능에 대해 확신하지 못할 때 효과적입니다.

애자일 방법론은 데이터 과학 스트림에서 뿌리를 내리고 있으며 중요한 소프트웨어 방법론으로 간주됩니다. 민첩한 자체 구성을 통해 부서 간 팀은 효과적인 방식으로 함께 작업 할 수 있습니다. 앞서 언급했듯이 애자일 개발에는 6 가지 주요 범주가 있으며 각 범주는 요구 사항에 따라 데이터 과학으로 스트리밍 할 수 있습니다. 데이터 과학에는 통계적 통찰력을위한 반복적 인 프로세스가 포함됩니다. Agile은 데이터 과학 모듈을 분해하는 데 도움이되며 반복 및 스프린트를 효과적인 방식으로 처리하는 데 도움이됩니다.

Agile Data Science의 프로세스는 데이터 과학 모듈이 구현되는 방법과 이유를 이해하는 놀라운 방법입니다. 창의적인 방식으로 문제를 해결합니다.