Kaggle로 많은 실험을 하기 위한 간단한 일.

개시하다


안녕하세요.fkubota(현재 Kagle Expert 20201001).며칠 전 공개된카글 일기 기사.호평이었기 때문에거들먹거린다.
이번에는 내가 아주 간단하지만 효과가 큰 카글의 실험이 고속화되는 이야기다.너무 당연한 탓인지 지금까지 보도되지 않았고, 앞으로 카글에 적극적으로 참여하고 싶은 초보자를 위해 썼다.이번에도 반짝반짝 빛나는 획기적인 특징량 공사가 아니라泥臭いテクニック.

왜 많은 실험을 하고 싶은지


물론 많은 실험을 진행하면 승리할 확률이 높아진다.나의 이번 새 경기는 첫 번째 영상 경기이기 때문에 더 많은 실험을 할 필요가 있다勘所.아니나 다를까 처음부터 잡지 못했던Pytorchの癖 경기의 3분의 1은 파이트릭 공부에 쓰였다.
어쨌든 초보자일수록 카글에 적응하기 위해 더 많은 경험을 쌓아야 한다.하지만 비지나는 전투에 익숙하지 않아 생각한 것이 빨리 이루어지지 않는다.
이번에는 제가 그곳에 간 간단한 일을 여러분께 소개하겠습니다.

창의적인 과정을 시도하다


일반적으로 아이디어를 형식으로 제출하기 전의 과정은 다음과 같다.
  • 아이디어 생각
  • 기존 코드를 편집하여 아이디어 창출
  • 실행
  • 제출
  • 이번에 공을 들인 부분은 2. 既存のコードを編集してアイデアを形にしていく 부분이다.여기서 시간이 많이 걸릴 거예요.3 시간이 걸리지만 대기시간이기 때문에 손의 움직임을 개선해야 한다2.

    대기 시간

    2. 既存のコードを編集してアイデアを形にしていく 바꾸어 말하면 動かないコードを動くようにする 과정이다.이 시간은 짧을수록 좋다.그렇다면 개선할 수 있는 점은 어디에 있을까.
    Kagler라면 분명히 썼던 코드입니다.
    kf = KFold(n_splits=5, shuffle=True)
    for fold_i, (train_idx, valid_idx) in enumerate(kf.split(X)):
        X_train, X_valid = X.values[train_idx, :], X.values[valid_idx, :]
        y_train, y_valid = y[train_idx], y[valid_idx]
        
        hogehoge01
    hogehoge02
    
    아이디어를 넣는 경우hogehoge01hogehoge02를 상상해 보세요.나는 항상 있는 장면이라고 생각한다.이때 hogehoge01hogehoge02에서 버그가 발생했기 때문에 배터리를 실행하고 싶습니다.최악의 경우hogehoge02에 버그가 있는 경우다.수리hogehoge02를 위해서는 Kfold의 순환을 기다려야 합니다.대기시간 단축을 위한 특별한 방법으로 진행X.iloc[:10, :] 등 엑스 등을 일시적으로 줄여보자.하지만 이것도 문제가 될 수 있다.이 칸의 다음 칸에서 데이터 모양이 일치하지 않는 오류가 발생할 수 있습니다. X가 작아졌기 때문입니다.결과적으로X.iloc[:10, :] --> X집행으로 긴 순환을 기다린다.절호의 트위터 시간.

    DEBUG 모드


    나는 공책을 만들 때 반드시 공책 위에 변수를 준비한다DEBUG.

    예를 들어 DEBUG 모드는 True, False이며 처리 시 다음과 같은 차이가 발생합니다.
    DEBUG
    False
    True
    n_samples
    1000000
    100
    save model?
    True
    False
    save features?
    True
    False
    n_splits
    5
    2
    epoch
    50
    3
    이런 느낌이야.動かないコードを動くようにする 프로세스에서는 데이터를 모두 스토리지에 저장하거나 객체를 저장할 필요가 없습니다.공부하는 시간도 최소한으로 할 수 있다.내 노트(눈에 띄는 퀄리티는 아니지만...)와 파이프에는 다음과 같은 것이 자주 나타난다if DEBUG.



    이것밖에 없지만 해보면 효율이 아주 높을 거예요.내가 처음 참가한 분자경기부터 사용한 후, 그 효과는 매우 매번에 사용되고 있다.정말 기다리는 시간이 거의 없으니까 추천해드릴게요.강인한 사람이 더 많은 일을 할 수 있을지도 모르지만, 지금의 나는 Ksozako Expert의 이 방법이다.이것을 디딤돌로 삼아 더 잘 만들어 주세요.그리고 알려주세요.

    또 다른 은혜


    부산물로 더 좋은 점이 있어요.노트북 특유의 버그가 있다もう一度実行するとエラーが発生する.
  • 칸은 삭제되었지만 메모리에 변수가 남아 있어 우연히 이동한 코드가 다시 실행될 때 이동할 수 없습니다.
  • 실제로 같은 단원을 두 번 실행해야 한다
  • 잠깐만, 나는 초보자가 있다고 생각해.이런 상황을 피하기 위해서 코드가 완성된 후에 노트북을 다시 불러오는 방법이 있다고 생각합니다.다만 이것도 하기 싫은 경우가 많다.
    나에게 있어서ノートブックの前半などで前処理や特徴量生成などの重い処理を行っているのでそれをもう一度実行するのは気が引ける는 거의 모든 이유다.같은 경험을 하신 분들도 많죠.DEBUGモード가 설치되어 있으면 문제없습니다.집행 자체가 시간이 거의 걸리지 않기 때문에 재부팅 후 전체 집행도 곧 완성된다.이렇게 하면 코드의 재현성을 보장할 수 있다.시합이든 일이든 나는 반드시 아래의 순서에 따라 진행할 것이다.
  • DEBUG == True
  • 코드 편집
  • 완료
  • reload
  • run all
  • 모두 이동 여부 확인
  • DEBUG == False
  • run all
  • 7 이후에만 데이터를 모두 메모리에 넣을 수 있다.

    비결


    제가 여기서 사용하기 시작하면DEBUGモード 발견한 노하우를 소개해 드리겠습니다.DEBUGモード시 가장 효과적인 것은 데이터 수를 줄이는 것이므로 여기서도 주의해야 한다.
    예를 들어 10000개의 견본은 변수data에 저장된다.감소 방법으로는 data[:20]data[::100] 등이 있다.이때 주의해야 할 것은 학급 수다.가령 10가지 데이터 집합이라고 가정하면만약 상술한 데이터를 줄이는 방법을 취한다면 운이 좋지 않은 경우 모든 모델의 유형이 들어갈 수 없을 것이다.이것은 불필요한 착오가 섞일 수 있으니 주의하세요.이번 새 경기는 다음과 같은 방법을 채택하였다.
  • 264종의 새 소리 파일 중 2개씩.
  • 총 264×2 = 528 파일을 사용합니다.
  • 이런 느낌이에요.왜 x2지? 2fold니까.데이터가 작아지는 비결은 도형의 면적을 축소하면 되는 것이 아니라 도형이 비슷한 상태로 축소된 인상을 유지하는 것이다.빅데이터의 성격을 어느 정도 유지하면서 작아지면 작게 발생하는 오류를 없앨 수 있다.

    끝맺다


    그게 다야.아주 간단히 경기 초반에 한 번 실시하면 그 이후에도 계속 이득을 볼 수 있는 테크닉을 소개했다.기계를 배우는 사람은 디버깅입니까?대처를 잘 못해요.그런 인상이 있어서 기사를 써봤어요.
    끝까지 봐주셔서 감사합니다!!
    또 아래의 상황을 모르는 사람도 시도해 볼 수 있다.

    좋은 웹페이지 즐겨찾기