@Entity @Builder @NoArgsConstructor @AllArgsConstructor @Getter @Setter public class Member { @Id @GeneratedValue private Long id; @Column private String username; @ManyToOne @JoinColumn(name = "team_id") private Team team; } @Entity @Builder @NoArgsConstructor @AllArgsConstructor @Getter @Setter public class Team { @Id @GeneratedValue private Long id; private String name; } try { tx.begin(); Team team = new Team().builder() .name("teamA") .build(); em.persist(team); Member member = new Member().builder() .username("member1") .team(team) .build(); em.persist(member); em.flush(); em.clear(); Member findMember = em.find(Member.class, member.getId()); Team findTeam = findMember.getTeam(); em.remove(findTeam); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); } findTeam을 remove하기 전에 findMember.setTeam(null) 이런 식으로 팀과의 연관 관계를 null로 만들고 삭제하지 않았는데 에러가 발생하지 않고, 데이터베이스에서 member 정보와 team 정보 모두 삭제됩니다. CASCADE 설정이 되어 있는 건 아닌데 왜 이렇게 동작하는 걸까요??
if문 관련 질문입니다. 조건에 따라 dollar <0 일 경우 "잘못된 코드입니다 dollar == 0 일 경우 "환전할 금액이 없습니다 dollar >0 일 경우 dollar = dollar*1300을 출력하고 싶습니다 그런데 위와 같이 코드를 작성하였을 때 dollar가 0 이하가 될 경우 if (dollar<0)문과 else문이 함께 실행됩니다. 왜 이러는 걸까요? 저는 if 문이 실행되면 else문은 실행이 되지 않는다고 이해했는데 혹시 다른 이유가 있는 걸까요? 답을 알고 계시는 분은 상세하게 설명 부탁드립니다ㅠㅠ
안녕하세요, 드디어 내일이 시험이네요, 그동안 너무 감사했습니다! 다름이 아니라 작업형 2유형에서 모델을 XGBoost를 이용하려고 하는데요! 체험환경에서 미리 사용을 해봤을때 경고가 자꾸 표시됩니다. 경고 여부와 관계없이 XGBoost를 사용해서 제출해도 이슈가 없을것 같다고 생각되긴 합니다만, 혹시 몰라 선생님께 확인차 여쭤보고 싶습니다.
pd.DataFrame 독스를 보니 너무 여러 방법이 있어서 헷갈려서 질문드립니다... 따로 추천하시는 방법이 있나요? 수업에서 본 대로 인덱스명이 key고, 리스트가 value인 딕셔너리를 넣는 법을 가장 추천하시나요? 중괄호를 쓰다가 유독 오타가 자주 나네요 @_@ 특히 간단한 적합성 검정같은 거에서 줄글로 정보만 띡 내놓는 상황이 가장 두렵습니다. observed data는 컬럼 하나짜리인 Case별 프레임이고 expected frequency는 왜 달랑 딕셔너리 하나랍니까 이거 최종적으로 stats.quisquare에 어떤 방식으로 들어가는건지는 둘다 관찰값과 기대분포에다가 실험크기를 곱한 리스트같지만 이건 데이터 전처리를 어떻게 해야 할지...
Java는 해당 강의만 구매 해서 앞의 강의 내용에 있을지 모르겠습니다만 헷갈리는 부분이 있습니다. 숫자와 문자의 2진수 표현은 같고 데이터타입이 숫자 타입인지 문자 타입인지 나타내는 byte 도 있을 것 같은데 이걸 어떻게 구분하는지 구글링에서 검색할 수 있는 키워드나 답을 알려주실 수 있으실까요 숫자 65의 2진수 표현: 1000001 문자 'A'의 2진수 표현: 1000001 강의 내용에 java의 경우 1byte의 prefix를 통해 음수를 표현할 수 있다고 하셨는데 데이터 타입은 어디에서 관리되는지 궁금하네요. 저장되는 메모리 구역이 다른지..그렇다 해도 할당된 데이터 구조 내에 있어야 할 것 같은데 진짜 궁금하네요 클로드에선 아래와 같이 답을 줬는데요 각 데이터 타입은 1바이트부터 8바이트까지 고유한 메모리 할당 방식을 가지고 있어, 메모리 내 위치와 크기로 타입을 구분할 수 있습니다. 그럼 각 데이터에 대한 메모리 위치는 stack 에서 가지고 있지 않나 싶은데 stack 에서도 해당 데이터 타입이 byte 인지 아니면 텍스트인지 어떻게 알고 있는지 다시 궁금하네요. -ㅂ- stack을 공부하면 되겠네요... 문자인코딩 섹션이 단순한 내용 같아도 진짜 생각 많이 하게 되는 강의네요.
"train = pd.get_dummies(train) 로 사용해 주세요 train = pd.get_dummies(train[cols]) 를 사용하면 train에 기존에 있던 수치형은 삭제되고 없습니다."라는 무서운 답변을 방금 발견해서 아 맞다 세상에 하고 질문드리는데요 X_traintest_concat = pd.get_dummies(X_traintest_concat, columns=['fuelType']) 같이 하면 fuelType 컬럼만 원핫되고 다른 애들은 남아있는 거 맞죠? ㅠㅠㅠㅠ
기출 2회 작업형2 문제가 로지스틱 회귀로 분류문제라 랜포를 이용해서 풀이를 하려고 하는데요. 주어진 데이터가 3개라서 concat을 이용해서 X_train과 y_train을 train으로 합쳐서 하려고 하는데 잘 안됩니다ㅜ train = pd.concat([X_train, y_train['Reached.on.Time_Y.N']], axis=1) train.head(1) 이 코드에서 'Reached.on.Time_Y.N' 이 컬럼만 없고 나머지는 있어서 얘만 합쳐주는 건가요? # 데이터 불러오기 import pandas as pd test = pd.read_csv("X_test.csv") X_train = pd.read_csv("X_train.csv") y_train = pd.read_csv("y_train.csv") #주어진 데이터 3개라서 2개로 만들기(train합치기) train = pd.concat([X_train, y_train['Reached.on.Time_Y.N']], axis=1) train.head(1) # 3. 탐색적 데이터 분석(EDA) print(train.shape) #1490 print(test.shape) #497 print(train.info()) print(test.info()) print(train.head(3)) print(test.head(3)) print(train.isnull().sum()) print(test.isnull().sum()) print(train['Reached.on.Time_Y.N'].value_counts()) # 4. 데이터 전처리 print(train.info()) # 오브젝트형 있네?->인코딩하자 # print(train.shape, test.shape) train=pd.get_dummies(train) test=pd.get_dummies(test) # print(train.shape, test.shape) # print(train.info()) train = train.drop('ID', axis=1) test_id = test.pop('ID') test.head() # 5. 검증용 데이터 분할 *XXYY로* from sklearn.model_selection import train_test_split target = train.pop('Reached.on.Time_Y.N') X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state=7) print(X_tr.shape, y_tr.shape, X_val.shape, y_val.shape) # 6. 검증 데이터 머신러닝 학습 및 평가 - 호출, 학습, 예측 from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state=7) rf.fit(X_tr,y_tr) pred = rf.predict_proba(X_val) from sklearn.metrics import roc_auc_score roc_auc = roc_auc_score(y_val, pred[:,1]) print('roc_auc:',roc_auc) # 7. 예측 및 결과 파일 생성 pred=rf.predict_proba(test) print(pred[:10]) submit = pd.DataFrame({ 'ID': test_id, 'Reached.on.Time_Y.N': pred[:,1] }) submit.to_csv('result.csv',index=False) # 제출파일 확인 pd.read_csv('result.csv') pd.read_csv('result.csv').shape 꿀팁 영상 보고 주어진 데이터가 3개일 경우를 정리해본건데 코드가 많이 길지만 결과 나올 수 있게 코드 손 봐주시면 감사하겠습니다TT
19개 종류를 다 비교 하기 쉽지 않습니다. 그리고 만약 train에 없는 고유값이 test에서 있으면 데이터를 합친다고 했는데, 범주형을 합쳐서 인코딩 한 다음에 다시 분리 할때는 loc, iloc 사용하나요? 그래서 처음 shape의 데이터 크기로 똑같이 맞춰야 하는거죠? 예를 들면 train.shape (6118,10) test.shape (1724,9) 라면 처음에 concat를 통해 6118+1724 로 해서 범주형 인코딩 하고 다시 원래 대로 크기를 쪼개야 하는거죠?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 가장 큰 값을 정수로 반올림하여 출력할 때, 이 2개 모두 사용해도 상관 없을까요? print(round(max(result))) print(round(result.max()))
[질문 내용] 안녕하세요, 강의 중에 궁금한점이 있어 글 남깁니다. 스프링 부트 스타터에 톰캣이 인베디드 되어서 저절로 가져오기 때문에 서버에 따로 톰캣을 설치할 필요가 없다고 하셨는데, 그렇다면 각 프로젝트를 서버에 띄우게 되면 모두 톰캣이 멀티 인스턴스로 띄우고 각 프로젝트는 모두 다른 포트를 사용해야하는걸까요? 만약 그렇다면 각 프로젝트에 톰캣 포트 세팅을 따로 해주어야하는데 해당 부분은 서버에서 하는게 아닌 프로젝트를 배포할때 세팅 파일에 따라 세팅이 되는 걸까요?
Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] Database driver: undefined/unknown Database version: 8.3 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown 실행과 테이블 다 잘 만들어 지는데 이런 로그가 계속 뜹니다. 제 mysql 문제일까요? mac os 사용중이고 강의처럼 docker를 통해 띄우는게 아닌 홈브류로 mysql을 다운받아서 쓰고있었어서 그대로 쓰는중입니다
안녕하세요! 시험이 코앞으로 다가온 시점에서... 순차적으로 강의를 듣고 있는데 데이터 전처리(결측치/이상치 제거) 이후에 학습모델에 적용하기 위해 수치형 데이터들은 스케일링을, 범주형 데이터들은 인코딩을 해서 train 데이터를 만드는 것으로 이해하였습니다. 그다음 평가(예측)를 위해서 모델에 적용할때 ans = (y_test['income'] != '<=50K').astype(int) 와 같이 타겟값을 바꿔야하는 경우와 평가모델별로 predict, predict_proba 를 사용하는 경우가 정해져 있는건지 이 부분이 헷깔립니다 ㅜㅜ