13장 절두체에 대해 공부하다가 예제 13_3, 13_4로 넘어가는 중 다음과 같이 학습 내용을 정리하게 되었는데, 제가 갖은 의문이 타당한 것인지, 잘못된 추론인지 알고싶어 문의드립니다. -정리 내용- 예제 13_3에서는 뷰 공간에서의 영역 판정을 위해 원근 투영 행렬을 사용해 평면의 방정식을 만들었는데, 사실 뷰 공간 역시 모델링 행렬과 뷰 행렬을 로컬 좌표에 곱한 갑으로 분해하여 표현할 수 있다. 정리해 본다면 수식은 다음과 같이 나타난다. V(clip)-> = Dot(P, V(view)-> ) == Dot(P V M , (V(local)->) ) 이 수식을 통해 절두체 컬링을 수행할 때 로컬 공간에서의 평면의 방정식을 만들 수 있고, 이 평면의 방정식과 캐싱된 바운딩 볼륨을 비교하여 컬링 대상인지 아닌지를 빠르게 판단할 수 있다는 것 을 알 수 있다. 또한 추가적인 장점도 있다. 특수한 경우(화각을 직접 조정하는 경우)가 아니라면 절두체 공간은 회전변환과 이동 변환만을 수행한다. 대부분의 경우 로컬 공간의 평면의 방정식을 캐싱해두고 사용할 수 있다는 소리다. 단점은 모델링 행렬 자체가 변환 되는 경우이다. 본질적으로 평면의 방정식을 로컬 공간으로 변환해서 비교한다는 것은 각 오브젝트 마다 서로 다른 평면의 방정식을 가지고 있다는 소리가 된다. (모델링 행렬은 각 오브젝트마다 전부 다르므로) 또한 뷰 공간으로 변환하여 비교를 하던지, 로컬 공간에서 비교를 하던지 어차피 해야하는 계산이라는 것은 변하지 않는다는 것 이다. 이 단점을 커버하는 것이 아마도 Static 오브젝트 설정 인 것으로 나는 추측한다. 정적 게임 오브젝트 는 그 형태가 변하지 않는 불변의 객체이므로, 모델링 행렬이 변하지 않는다 . 그렇다면 이 오브젝트에 대해서는 항상 같은 로컬 공간의 평면의 방정식이 형성 되고, 캐싱되어 사용할 수 있기 때문에 , 카메라의 현재 설정값에만 영향을 받아 바운딩 볼륨을 언제나 즉시 비교할 수 있다는 것 을 알 수 있다.
이번 장에서 서버액션에 관한 내용을 들었는데 유지보수 측면에서 이 기술이 좋은 방법일까 하는 의문이 들었습니다! 아래는 이런 경우가 생기지 않을까 해서 적어둔 내용입니다. 서버액션으로 프론트에서 "a를 오른쪽으로 옮겨주세요" 라는 api를 백엔드에 만들었습니다. 그런데 기존의 백엔드 api에선 a는 왼쪽으로 옮기는 스크립트를 만들어놨는데 서버액션으로 인해 백엔드 서버엔 예정에 없던 동작이 발생했습니다. 그러다 나중에 a를 오른쪽으로 옮긴것에 대해 문제가 발생해서 백엔드 코드를 하루 꼬박 세면서 뒤져봤는데 오류를 못 찾았습니다 그런데 알고보니 프론트에서 서버액션으로 보내는 a를 오른쪽으로 옮겨라는 코드 때문에 발생한 문제였습니다. 이런 상황이 실무에서 발생할거 같다는 생각이 들어서 이 서버액션 기능을 실제로도 많이 사용하는지 궁금합니다!!
부록 공부 굳이 해야 할까요? 부록이 왜 있는건지 잘 이해가 안가요.. 똑같은 내용을 복습하는건가요? 만약에 한번만 공부한다고 하면 Haker님 영상을 참고하는게 좋을까요 아니면 부록 영상을 참고하는게 더 효율적일까요? 다 들으면 60시간이고 Haker님 강의, 부록강의 둘 중에 하나를 배우고 쭉 복습하는게 더 효율적이라는 생각이 들어서요
코드상에 보면 COPY_DATA* pCopyData = (COPY_DATA*)malloc(sizeof(COPY_DATA)); pCopyData->pMapView = pszMemory; pCopyData->hMap = hMap; pCopyData->hFileSource = hFileSource; pCopyData->hFileTarget = hFileTarget; 이부분에 이렇게 중첩되어서 보내는 정보를 저장하는걸 볼 수있는데. 맵핑객체를 가리키는 포인터인 pszMemory가 있는데 따로 매핑객체의 핸들이나 다른 파일들의 핸들또한 멤버로 넘겨주는 이유가 있나요??
안녕하세요 저번에 평가하지 않고 랜덤포레스트 한개로만 제출한다고 했을 때에 그러면은 인코딩까지 동일하게 하고 rf.fit (X_tr, y_tr)을 rf.fit (train, target)으로 바꾸고 pred = rf.predict(X_val)을 pred = rf.predict(test)로 바꿔서 target = train.pop('농약검출여부') train = pd.get_dummies(train) test = pd.get_dummies(test) train, test = train.align(test, axis=1, join='left', fill_value=0) from sklearn.ensemble import RandomForestClassifier ------------------------------------- rf = RandomForestClassifier(random_state=0) rf.fit (train, target) pred = rf.predict(test) result = pd.DataFrame({'pred':pred}) result.to _csv('result.csv',index=False) 랜덤포레스트 기준 요런식으로 작성하면 되는지 궁금합니다. 글구 쌤께서 target = train.pop할때 항상 인코딩하기 전에 하는데 이유가 있는지 궁금합니다! 항상 이해 잘되게 가르쳐 주셔서 감사드립니다. 선생님
안녕하세요 작년에 할인할때 구매했다가, 필기를 올해 4월이 되어서야 합격하면서 해외출장으로 인해 6월 초부터 수강하다가 금주 시험을 앞두고 집안행사로 금일 접수 취소를 했습니다. 교재도 구매해서 열심히 들어보려고 했는데 11월 시험에 다시 응시하고 싶은데 사전에 책을 선공부하고 나중에 재요청드려서 남아있는 기간만이라도 재수강하고 싶습니다. 꼭 갖고 싶었던 자격증이라 필기 합격까지 3차례의 시도가 있었기에 더욱 절실합니다. 꼭 합격해서 후배나 지인분들에게 홍보 많이 할테니 기회를 주시면 감사하겠습니다.
안녕하세요. X_train, y_train을 합치고 난 다음 어떻게 하는지 모르겠습니다,, df = pd.concat([X_train, y_train['Reached.on.Time_Y.N']],axis=1) print(df.head(1)) print(df.shape, X_test.shape) target = df.pop('Reached.on.Time_Y.N') df = pd.get_dummies(df) X_test = pd.get_dummies(X_test) print(df.shape, X_test.shape) 이렇게 합치고 원핫인코딩하는게 맞나요? 또 값이 아래와 같이 나오는데, 전보다 이후의 shape가 더 크게 나오는게 맞는지 궁금합니다! (8799, 12) (2200, 11) (8799, 20) (2200, 20) -------------- q2. roc_auc = roc_auc_score(y_val, pred[:,1]) roc_auc구할 때만 pred[:,1]을 적나요? 다른 건 pred만 적는지 궁금합니다!
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 풀이 도중에 자꾸 아래와 같은 오류가 뜨더라구요 KeyError: "['customerID'] not found in axis" train = train.drop('customerID',axis=1) test= test.drop('customerID',axis =1) 질문 1]그래서 해당 컬럼(customerID)만 드롭해서 아래와 같이 푸니까 에러는 안뜨는데 이걸 드롭해도 괜찮은지 아닌지는 어떻게 판단해야하나요? 질문 2]왜 customerID는 원핫인코딩으로 해결이 안되고 오류가 뜨는 건지 궁금합니다ㅠ 질문 3] customer id를 값이 모두 유니크해도 숫자형이면 유지하지만, 문자형이라 ID는 삭제했다고 하셨는데 숫자형이면 drop없이 그냥 원핫인코딩만 해도 에러가 안뜨는 걸까요? 질문 4]이런 오류를 방지하려면 아래와 같이 train과 test를 먼저 합쳐서 인코딩한 뒤, 다시 분리해서 사용하는게 안전할까요? df_all = pd.concat([train, test]) df_all_encoded = pd.get_dummies(df_all) train_encoded = df_all_encoded.iloc[:len(train), :] test_encoded = df_all_encoded.iloc[len(train):, :]
안녕하세요. X_train, y_train을 합치고 난 다음 어떻게 하는지 모르겠습니다,, df = pd.concat([X_train, y_train['Reached.on.Time_Y.N']],axis=1) print(df.head(1)) print(df.shape, X_test.shape) target = df.pop('Reached.on.Time_Y.N') df = pd.get_dummies(df) X_test = pd.get_dummies(X_test) print(df.shape, X_test.shape) 이렇게 합치고 원핫인코딩하는게 맞나요? 또 값이 아래와 같이 나오는데, 전보다 이후의 shape가 더 크게 나오는게 맞는지 궁금합니다! (8799, 12) (2200, 11) (8799, 20) (2200, 20)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 기출 5회 아래와 같이 풀어도 된다고 하셨는데 한가지 궁금한점이 생겨 재질문 드립니다. 질문1) 검증데이터분리를 한 것과 안한것에 대해 결과에 차이가 발생하나요? 차이가 발생한다면 어떤 이유 때문인지 알 수 있을까요? y=train.pop('price') train=pd.get_dummies(train) test=pd.get_dummies(test) from sklearn.ensemble import RandomForestRegressor rf =RandomForestRegressor(random_state=0) rf.fit (train,y) pred=rf.predict(test) submit = pd.DataFrame({'pred':pred}) submit.to _csv('result.csv', index=False)
오늘까지 수강을 들어서 섹션 10까지 수강을 완료했습니다. 이후 강의 중 필수적으로 수강해야 하는 강의가 궁금합니다. 섹션 11에 로지스틱 회귀(필수) 라고 되어있는것도 필수로 들으라는 의미 맞죠?? 선생님이 수강 할 강의 다 알려주시면 이후에는 문제 풀이만 계속 할 생각인데.. 기출문제 먼저 풀고 책에있는 예상문제 푸는게 나을지, 예상문제부터 푸는게 나을지 조언 부탁드립니다.