Python으로 SPSS Modeler의 샘플링 노드 다시 쓰기 ①: 시작 N 개, 무작위 샘플링
8722 단어 SPSS_Modeler샘플링 노드PythonSPSS
또한 마지막으로 모든 일을 분석해도 아주 작은 서브집합으로 가볍게 처리하여 분석할 수 있다.
이렇게 모든 데이터에서 작은 표본을 만드는 것을 샘플링이라고 한다.
SPSS Modeler를 사용하여 이 샘플링을 수행하는 것은 샘플링 노드입니다.이 샘플링 노드를 설명하는 동시에 파이톤의pandas로 고쳐 씁니다.
샘플링은 ① 단순 샘플링과 데이터 경향을 반영하는 ② 복잡한 샘플링으로 나뉜다.각각 두 편의 기사로 나누어 설명하다.
① 간단한 샘플링 ← 이번 보도
①-1. 시작 N건
①-2. 무작위 표본 추출
② 복잡한 샘플링
②-1. 층화 샘플링
②-2. 컬렉션 샘플링
0. 원시 데이터
ID가 있는 다음 POS 데이터를 대상으로 합니다.
누가 언제(SDATE) 무엇을 샀는지(PRODUCTID, L CLASS 상품 대분류, M CLASS 상품 중분류)의 ID POS 데이터를 기록한다.
6경기, 2만8천599경기.
1m.①-1. 처음 N 버전 Modeler 버전
처음부터 100건을 뽑다.이것은 매우 가벼운 처리다.알고 있는 빅데이터도 미리 볼 수 있습니다.기본 모드 모드 샘플링
■가공된인상
순서가 바뀌지 않아 100개를 뽑았다.
샘플링 노드를 사용합니다.
샘플 방법은'간단', 샘플 방법은'최초 n건', 수량은 100건을 지정한다.
참고로 샘플링 노드의'최초 n건'은 SQL에 유효하다.다음은 Db2에서 SQL Push를 활성화한 예입니다.FETCH FIRST 100 ROWS ONLY를 사용합니다.
SELECT T0.CUSTID AS CUSTID,T0.SDATE AS SDATE,T0.PRODUCTID AS PRODUCTID,T0."L_CLASS"AS "L_CLASS",T0."M_CLASS"AS "M_CLASS",T0.SUBTOTAL AS SUBTOTAL FROM (SELECT T0.CUSTID AS CUSTID,T0.SDATE AS SDATE,T0.PRODUCTID AS PRODUCTID,T0."L_CLASS"AS "L_CLASS",T0."M_CLASS"AS "M_CLASS",T0.SUBTOTAL AS SUBTOTAL FROM SAMPLETRANDEPT4EN2019S T0 FETCH FIRST 100 ROWS ONLY) T0
또한 파일을 입력할 때'시작 n건'을 반복할 때마다 같은 결과를 얻는다.그러나 RDB는 순서를 보장하지 않기 때문에 반드시 같은 결과가 나오는 것은 아니다.동일한 결과를 보장하려면 정렬 노드 등 고정된 순서를 넣은 후 샘플링 노드를 사용하십시오.
1p.①-1. 시작 N건 판다스 버전
pandas에서 시작 N 개를 가져올 때 헤드 함수를 사용합니다.df.head(100)
2m.①-2. 무작위 샘플링 모드 에디션
모든 항목에서 무작위로 n%를 추출합니다.
처음 N건의 샘플링은 원래의 데이터가 순서대로 특별히 편향된 경향이 없다면 가벼운 방법이다.그러나 일반적으로 데이터는 발생 순서에 따라 기록되는 경우가 많고 발생 순서에 따라 데이터의 경향이 달라지는 경우가 많다.예를 들어 하루의 데이터라면 아침과 저녁의 데이터 경향이 다를 수 있다.
이런 문제에 대응할 수 있는 것은 무작위 표본 추출(단순 무작위 표본 추출법)으로 가장 일반적인 표본 추출 방법이다.
이 처리는 모든 기록에 주사위를 던지는 인상을 주기 때문에 데이터량이 많은 경우 그만큼 무거워지기 때문에 주의해야 한다.
아니면 샘플링 노드에서 진행할까요?
샘플 방법은'간단', 샘플 방법은'랜덤%'로 0.2%를 지정했다.
랜덤 피드 설정도 확인했다.이 검사를 통해 샘플링을 반복할 때 같은 결과를 얻을 수 있다.데이터가 변하면 분석이 불안정해지기 때문에 보통 검사를 한다.샘플링 결과를 바꾸려면 피드 생성 단추를 누르면 피드를 바꾸면 다음 샘플링 결과를 바꿉니다.
■가공된인상
무작위로 0.2% 를 추출하다.
2만8천599건 중 68건이 추첨됐다.시작 N건과 달리 시작 100001의 고객 데이터는 선택되지 않았고 각 고객의 거래도 드물게 선택되었다.
참고로 샘플링 노드의'랜덤%'의 SQL 반환은 유효합니다.다음은 Db2에서 SQL Push를 활성화한 예입니다.BERNOULLI(0.2000) REPEATABLE(377028)를 사용했습니다.RDB마다 다른 방법이 사용될 수 있습니다.특히 시드(샘플링 결과 재현 불가)를 지원하지 않는 RDB도 있는 것으로 보인다.
SELECT T0.CUSTID AS CUSTID,T0.SDATE AS SDATE,T0.PRODUCTID AS PRODUCTID,T0."L_CLASS"AS "L_CLASS",T0."M_CLASS"AS "M_CLASS",T0.SUBTOTAL AS SUBTOTAL FROM (SELECT T0.CUSTID AS CUSTID,T0.SDATE AS SDATE,T0.PRODUCTID AS PRODUCTID,T0."L_CLASS"AS "L_CLASS",T0."M_CLASS"AS "M_CLASS",T0.SUBTOTAL AS SUBTOTAL FROM SAMPLETRANDEPT4EN2019S T0 TABLESAMPLE BERNOULLI(0.200000) REPEATABLE(377028)) T0
또한 방금 지적한 바와 같이 무작위 샘플링은 모든 일을 처리하는 재처리가 될 수 있기 때문에 샘플링 결과를 캐시하거나 파일이나 표에 출력하면 이후의 분석이 더욱 효율적일 수 있다.
또 건수를 정해 무작위 시료를 채취하려는 경우도 있을 수 있다.
이때 (샘플링 건수)/(총 건수)*100분율로 비례를 계산하여 설정하십시오.이 데이터로 100개의 무작위 표본을 추출하려면 100/2599*100=0.349%이다.
무작위의%를 0.35로 설정하고 최대 수를 100으로 지정하면 100건 이내로 제한한다.
■가공된인상
무작위 표본 100개를 완성했다.
2p.①-2. 무작위 추출판식
pandas로 무작위 샘플링을 얻을 때 Sample 함수를 사용합니다.
frac로 배율을 설정합니다.100점률이 아니라 소수(1은 100%)이다.여기에 지정된 것은 0.2퍼센트다.
random_state에서 무작위 피드를 지정합니다.df.sample(frac=0.002, random_state = 1)
또한, index를 다시 진작시키는 상황에서resetindex(drop=True)를 실행합니다.df.sample(frac=0.002, random_state = 1).reset_index(drop=True)
개수를 지정할 때는 frac를 사용하지 않고 n으로 지정합니다.df.sample(n=100, random_state = 1)
3. 샘플
샘플은 아래에 놓았다.
스트리밍 미디어
https://github.com/hkwd/200611Modeler2Python/raw/master/sample/sample.str
notebook
https://github.com/hkwd/200611Modeler2Python/blob/master/sample/sampling.ipynb
데이터
https://raw.githubusercontent.com/hkwd/200611Modeler2Python/master/data/sampletranDEPT4en2019S.csv
■ 테스트 환경
Modeler 18.2.1
Windows 10 64bit
Python 3.6.9
pandas 0.24.1
4. 참조 정보
샘플링 노드
https://www.ibm.com/support/knowledgecenter/ja/SS3RA7_18.2.1/modeler_mainhelp_client_ddita/clementine/mainwindow_navigationstreamsoutputtab.html
Reference
이 문제에 관하여(Python으로 SPSS Modeler의 샘플링 노드 다시 쓰기 ①: 시작 N 개, 무작위 샘플링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kawada2017/items/7b79cb5d201928a65a7e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
처음부터 100건을 뽑다.이것은 매우 가벼운 처리다.알고 있는 빅데이터도 미리 볼 수 있습니다.기본 모드 모드 샘플링
■가공된인상
순서가 바뀌지 않아 100개를 뽑았다.
샘플링 노드를 사용합니다.
샘플 방법은'간단', 샘플 방법은'최초 n건', 수량은 100건을 지정한다.
참고로 샘플링 노드의'최초 n건'은 SQL에 유효하다.다음은 Db2에서 SQL Push를 활성화한 예입니다.FETCH FIRST 100 ROWS ONLY를 사용합니다.
SELECT T0.CUSTID AS CUSTID,T0.SDATE AS SDATE,T0.PRODUCTID AS PRODUCTID,T0."L_CLASS"AS "L_CLASS",T0."M_CLASS"AS "M_CLASS",T0.SUBTOTAL AS SUBTOTAL FROM (SELECT T0.CUSTID AS CUSTID,T0.SDATE AS SDATE,T0.PRODUCTID AS PRODUCTID,T0."L_CLASS"AS "L_CLASS",T0."M_CLASS"AS "M_CLASS",T0.SUBTOTAL AS SUBTOTAL FROM SAMPLETRANDEPT4EN2019S T0 FETCH FIRST 100 ROWS ONLY) T0
또한 파일을 입력할 때'시작 n건'을 반복할 때마다 같은 결과를 얻는다.그러나 RDB는 순서를 보장하지 않기 때문에 반드시 같은 결과가 나오는 것은 아니다.동일한 결과를 보장하려면 정렬 노드 등 고정된 순서를 넣은 후 샘플링 노드를 사용하십시오.
1p.①-1. 시작 N건 판다스 버전
pandas에서 시작 N 개를 가져올 때 헤드 함수를 사용합니다.df.head(100)
2m.①-2. 무작위 샘플링 모드 에디션
모든 항목에서 무작위로 n%를 추출합니다.
처음 N건의 샘플링은 원래의 데이터가 순서대로 특별히 편향된 경향이 없다면 가벼운 방법이다.그러나 일반적으로 데이터는 발생 순서에 따라 기록되는 경우가 많고 발생 순서에 따라 데이터의 경향이 달라지는 경우가 많다.예를 들어 하루의 데이터라면 아침과 저녁의 데이터 경향이 다를 수 있다.
이런 문제에 대응할 수 있는 것은 무작위 표본 추출(단순 무작위 표본 추출법)으로 가장 일반적인 표본 추출 방법이다.
이 처리는 모든 기록에 주사위를 던지는 인상을 주기 때문에 데이터량이 많은 경우 그만큼 무거워지기 때문에 주의해야 한다.
아니면 샘플링 노드에서 진행할까요?
샘플 방법은'간단', 샘플 방법은'랜덤%'로 0.2%를 지정했다.
랜덤 피드 설정도 확인했다.이 검사를 통해 샘플링을 반복할 때 같은 결과를 얻을 수 있다.데이터가 변하면 분석이 불안정해지기 때문에 보통 검사를 한다.샘플링 결과를 바꾸려면 피드 생성 단추를 누르면 피드를 바꾸면 다음 샘플링 결과를 바꿉니다.
■가공된인상
무작위로 0.2% 를 추출하다.
2만8천599건 중 68건이 추첨됐다.시작 N건과 달리 시작 100001의 고객 데이터는 선택되지 않았고 각 고객의 거래도 드물게 선택되었다.
참고로 샘플링 노드의'랜덤%'의 SQL 반환은 유효합니다.다음은 Db2에서 SQL Push를 활성화한 예입니다.BERNOULLI(0.2000) REPEATABLE(377028)를 사용했습니다.RDB마다 다른 방법이 사용될 수 있습니다.특히 시드(샘플링 결과 재현 불가)를 지원하지 않는 RDB도 있는 것으로 보인다.
SELECT T0.CUSTID AS CUSTID,T0.SDATE AS SDATE,T0.PRODUCTID AS PRODUCTID,T0."L_CLASS"AS "L_CLASS",T0."M_CLASS"AS "M_CLASS",T0.SUBTOTAL AS SUBTOTAL FROM (SELECT T0.CUSTID AS CUSTID,T0.SDATE AS SDATE,T0.PRODUCTID AS PRODUCTID,T0."L_CLASS"AS "L_CLASS",T0."M_CLASS"AS "M_CLASS",T0.SUBTOTAL AS SUBTOTAL FROM SAMPLETRANDEPT4EN2019S T0 TABLESAMPLE BERNOULLI(0.200000) REPEATABLE(377028)) T0
또한 방금 지적한 바와 같이 무작위 샘플링은 모든 일을 처리하는 재처리가 될 수 있기 때문에 샘플링 결과를 캐시하거나 파일이나 표에 출력하면 이후의 분석이 더욱 효율적일 수 있다.
또 건수를 정해 무작위 시료를 채취하려는 경우도 있을 수 있다.
이때 (샘플링 건수)/(총 건수)*100분율로 비례를 계산하여 설정하십시오.이 데이터로 100개의 무작위 표본을 추출하려면 100/2599*100=0.349%이다.
무작위의%를 0.35로 설정하고 최대 수를 100으로 지정하면 100건 이내로 제한한다.
■가공된인상
무작위 표본 100개를 완성했다.
2p.①-2. 무작위 추출판식
pandas로 무작위 샘플링을 얻을 때 Sample 함수를 사용합니다.
frac로 배율을 설정합니다.100점률이 아니라 소수(1은 100%)이다.여기에 지정된 것은 0.2퍼센트다.
random_state에서 무작위 피드를 지정합니다.df.sample(frac=0.002, random_state = 1)
또한, index를 다시 진작시키는 상황에서resetindex(drop=True)를 실행합니다.df.sample(frac=0.002, random_state = 1).reset_index(drop=True)
개수를 지정할 때는 frac를 사용하지 않고 n으로 지정합니다.df.sample(n=100, random_state = 1)
3. 샘플
샘플은 아래에 놓았다.
스트리밍 미디어
https://github.com/hkwd/200611Modeler2Python/raw/master/sample/sample.str
notebook
https://github.com/hkwd/200611Modeler2Python/blob/master/sample/sampling.ipynb
데이터
https://raw.githubusercontent.com/hkwd/200611Modeler2Python/master/data/sampletranDEPT4en2019S.csv
■ 테스트 환경
Modeler 18.2.1
Windows 10 64bit
Python 3.6.9
pandas 0.24.1
4. 참조 정보
샘플링 노드
https://www.ibm.com/support/knowledgecenter/ja/SS3RA7_18.2.1/modeler_mainhelp_client_ddita/clementine/mainwindow_navigationstreamsoutputtab.html
Reference
이 문제에 관하여(Python으로 SPSS Modeler의 샘플링 노드 다시 쓰기 ①: 시작 N 개, 무작위 샘플링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kawada2017/items/7b79cb5d201928a65a7e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
df.head(100)
모든 항목에서 무작위로 n%를 추출합니다.
처음 N건의 샘플링은 원래의 데이터가 순서대로 특별히 편향된 경향이 없다면 가벼운 방법이다.그러나 일반적으로 데이터는 발생 순서에 따라 기록되는 경우가 많고 발생 순서에 따라 데이터의 경향이 달라지는 경우가 많다.예를 들어 하루의 데이터라면 아침과 저녁의 데이터 경향이 다를 수 있다.
이런 문제에 대응할 수 있는 것은 무작위 표본 추출(단순 무작위 표본 추출법)으로 가장 일반적인 표본 추출 방법이다.
이 처리는 모든 기록에 주사위를 던지는 인상을 주기 때문에 데이터량이 많은 경우 그만큼 무거워지기 때문에 주의해야 한다.
아니면 샘플링 노드에서 진행할까요?
샘플 방법은'간단', 샘플 방법은'랜덤%'로 0.2%를 지정했다.
랜덤 피드 설정도 확인했다.이 검사를 통해 샘플링을 반복할 때 같은 결과를 얻을 수 있다.데이터가 변하면 분석이 불안정해지기 때문에 보통 검사를 한다.샘플링 결과를 바꾸려면 피드 생성 단추를 누르면 피드를 바꾸면 다음 샘플링 결과를 바꿉니다.
■가공된인상
무작위로 0.2% 를 추출하다.
2만8천599건 중 68건이 추첨됐다.시작 N건과 달리 시작 100001의 고객 데이터는 선택되지 않았고 각 고객의 거래도 드물게 선택되었다.
참고로 샘플링 노드의'랜덤%'의 SQL 반환은 유효합니다.다음은 Db2에서 SQL Push를 활성화한 예입니다.BERNOULLI(0.2000) REPEATABLE(377028)를 사용했습니다.RDB마다 다른 방법이 사용될 수 있습니다.특히 시드(샘플링 결과 재현 불가)를 지원하지 않는 RDB도 있는 것으로 보인다.
SELECT T0.CUSTID AS CUSTID,T0.SDATE AS SDATE,T0.PRODUCTID AS PRODUCTID,T0."L_CLASS"AS "L_CLASS",T0."M_CLASS"AS "M_CLASS",T0.SUBTOTAL AS SUBTOTAL FROM (SELECT T0.CUSTID AS CUSTID,T0.SDATE AS SDATE,T0.PRODUCTID AS PRODUCTID,T0."L_CLASS"AS "L_CLASS",T0."M_CLASS"AS "M_CLASS",T0.SUBTOTAL AS SUBTOTAL FROM SAMPLETRANDEPT4EN2019S T0 TABLESAMPLE BERNOULLI(0.200000) REPEATABLE(377028)) T0
또한 방금 지적한 바와 같이 무작위 샘플링은 모든 일을 처리하는 재처리가 될 수 있기 때문에 샘플링 결과를 캐시하거나 파일이나 표에 출력하면 이후의 분석이 더욱 효율적일 수 있다.
또 건수를 정해 무작위 시료를 채취하려는 경우도 있을 수 있다.
이때 (샘플링 건수)/(총 건수)*100분율로 비례를 계산하여 설정하십시오.이 데이터로 100개의 무작위 표본을 추출하려면 100/2599*100=0.349%이다.
무작위의%를 0.35로 설정하고 최대 수를 100으로 지정하면 100건 이내로 제한한다.
■가공된인상
무작위 표본 100개를 완성했다.
2p.①-2. 무작위 추출판식
pandas로 무작위 샘플링을 얻을 때 Sample 함수를 사용합니다.
frac로 배율을 설정합니다.100점률이 아니라 소수(1은 100%)이다.여기에 지정된 것은 0.2퍼센트다.
random_state에서 무작위 피드를 지정합니다.df.sample(frac=0.002, random_state = 1)
또한, index를 다시 진작시키는 상황에서resetindex(drop=True)를 실행합니다.df.sample(frac=0.002, random_state = 1).reset_index(drop=True)
개수를 지정할 때는 frac를 사용하지 않고 n으로 지정합니다.df.sample(n=100, random_state = 1)
3. 샘플
샘플은 아래에 놓았다.
스트리밍 미디어
https://github.com/hkwd/200611Modeler2Python/raw/master/sample/sample.str
notebook
https://github.com/hkwd/200611Modeler2Python/blob/master/sample/sampling.ipynb
데이터
https://raw.githubusercontent.com/hkwd/200611Modeler2Python/master/data/sampletranDEPT4en2019S.csv
■ 테스트 환경
Modeler 18.2.1
Windows 10 64bit
Python 3.6.9
pandas 0.24.1
4. 참조 정보
샘플링 노드
https://www.ibm.com/support/knowledgecenter/ja/SS3RA7_18.2.1/modeler_mainhelp_client_ddita/clementine/mainwindow_navigationstreamsoutputtab.html
Reference
이 문제에 관하여(Python으로 SPSS Modeler의 샘플링 노드 다시 쓰기 ①: 시작 N 개, 무작위 샘플링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kawada2017/items/7b79cb5d201928a65a7e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
df.sample(frac=0.002, random_state = 1)
df.sample(frac=0.002, random_state = 1).reset_index(drop=True)
df.sample(n=100, random_state = 1)
샘플은 아래에 놓았다.
스트리밍 미디어
https://github.com/hkwd/200611Modeler2Python/raw/master/sample/sample.str
notebook
https://github.com/hkwd/200611Modeler2Python/blob/master/sample/sampling.ipynb
데이터
https://raw.githubusercontent.com/hkwd/200611Modeler2Python/master/data/sampletranDEPT4en2019S.csv
■ 테스트 환경
Modeler 18.2.1
Windows 10 64bit
Python 3.6.9
pandas 0.24.1
4. 참조 정보
샘플링 노드
https://www.ibm.com/support/knowledgecenter/ja/SS3RA7_18.2.1/modeler_mainhelp_client_ddita/clementine/mainwindow_navigationstreamsoutputtab.html
Reference
이 문제에 관하여(Python으로 SPSS Modeler의 샘플링 노드 다시 쓰기 ①: 시작 N 개, 무작위 샘플링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kawada2017/items/7b79cb5d201928a65a7e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Python으로 SPSS Modeler의 샘플링 노드 다시 쓰기 ①: 시작 N 개, 무작위 샘플링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kawada2017/items/7b79cb5d201928a65a7e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)