# RandomForestRegressor from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor() model.fit(X_tr, y_tr) pred = model.predict(X_val) rmse(y_val, pred) 머신러닝 회귀 모델에서 스케일링 해둔걸 주석처리하고 이전 셀 실행 후 위 코드를 실행해서 베이스라인 값을 체크하려는데, 강의와 다른 값이 나와서 한번 더 실행했더니 값이 또 바뀌는데 원인이 뭘까요? 이후에도 계속 실행할수록 값이 매번 바뀝니다!
안녕하세요. 이번에 JPA 로드맵을 다시 한번 복습을 하면서 부모 객체, 자식 객체에 대한 궁금한 점이 생겼습니다. 부모 객체, 자식 객체 관계의 용어는 어떤 상황에서 사용해야 하는 건가요? 연관 관계도 아닌 것 같고.. 상속 관계도 아닌 것 같고.. (자바, 스프링 로드맵에서 강사님이 항상 강조하시는 말씀이 있죠. 부모는 ~ 품을 수 있지만 자식은 ~ 품을 수 없다. 근데 JPA에서는 전혀 다른 상황인 것 같아서요.) cascade와 orphanRemoval 기능을 사용하기 위해 cascade와 orphanRemoval 코드를 내부에 적은 객체 자체가 부모 객체가 되는 건가요? 예를 들면 @Entity @Table(name = "orders") @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = LAZY) @JoinColumn(name = "member_id") private Member member; @JsonIgnore @OneToMany(mappedBy = "order", cascade = CascadeType.ALL, orphanRemoval = true) private List<OrderItem> orderItems = new ArrayList<>(); @JsonIgnore @OneToOne(fetch = LAZY, cascade = CascadeType.ALL, orphanRemoval = true) @JoinColumn(name = "delivery_id") private Delivery delivery; ... 위의 코드에서 cascade = CascadeType.ALL, orphanRemoval = true 기능을 사용해서 생명주기의 책임이 있는 Order 엔티티 객체가 부모 객체가 되고 OrderItem과 Delivery 엔티티 객체가 자식 객체가 되는건가요?
for x in range ( 1 , k + 1 ): # 가방 무게가 x일 때 # 물건을 담을 수 있을 때 (x보다 무게가 작거나 같을 때) if x < weight : dp [ y ][ x ] = dp [ y - 1 ][ x ] # 물건을 담을 수 없을 때 ( 전에 넣어뒀던 무게로 유지) else: dp [ y ][ x ] = max ( dp [ y - 1 ][ x ], dp [ y - 1 ][ x - weight ] + value ) 이렇게 나와있는데, x < weight이면 물건을 못담을때 아닌가요??
df['f3'] = df['f3'].replace(np.nan, '0').replace('silver', '1').replace('gold', '2').replace('vip', '3') print(df['f3'].sum()) 이렇게 코드 작성 시, 202003010232022222222222221220231112102221022220222223101200121202012002200221032202021220121202라고 값이 뜨는데, 정수로 바꾼 다음에 합을 구할 때는 어떻게 하나요?
2-4. [응용] 엑셀문서 값을 필드에 입력하기 관련입니다. # 1. 함수 정의 def 필드삽입(index, value): # 2. 필드 목록 만들기 field_list = ["이름", "성별", "생일", "취미"] # 3. 반복문으로 필드에 데이터 넣기 for idx, field in enumerate(field_list): # 4. 한글 문서에 데이터 입력하기 hwp.PutFieldText(f"{field}{{{{{index}}}}}", value[idx]) 위의 코드에서 바로 이 부분.. hwp.PutFieldText(f"{field}{{{{{index}}}}}", value[idx]) 그중에서도 아래의 구문이 이해하기 어려웠습니다. f"{field}{{{{{index}}}}}" 이에 대하여 제가 최대한 이해하려고 풀어 써 본 것은 아래와 같습니다. ※ 아래는 엑셀(취미.xlsx)의 캡처 f"{field}{{{{{index}}}}}": 위 줄은 한글 문서 안에 있는 특정 필드를 가리키는 주소를 의미함. 예를 들어, 엑셀(취미.xlsx)의 첫 행인 2행의 이름 값을 넣고 싶다면, 한글 문서에서는 그 자리가 "이름{{0}}"에 해당할 것임. 또한, 엑셀의 3행의 이름 값을 넣을 자리라면 "이름{{1}}"이 될 것임. 그래서 f"{field}{{{{{index}}}}}"는, 여기서 field가 "이름", "성별", "생일", "취미" 중 하나이고, index는 몇 번째 데이터인지를 나타내는 숫자임. 예를 들어, 첫 행인 2행의 이름이면 "이름{{0}}", 두 번째 행인 3행의 생일이면 "생일{{1}}" 이런 식으로 만들어야 함. 그런데 여기서 왜 중괄호가 5쌍이나 있는 것인지 궁금했음. --- {{{{{index}}}}} 에 중괄호가 무려 5쌍 있음! f"{field}{{{{{index}}}}}"에서, {{ }} <----- 실제로 보여질 중괄호 { } 를 출력하기 위함 ..... ① {{ }} <----- 실제로 보여질 중괄호 { } 를 출력하기 위함 ..... ② {index} <----- 'index'라는 변수의 값 넣기 위한 부분임. 위의 ①, ②의 부분의 중첩 즉 총 4쌍의 중괄호에 의해 {{ }} 형태의 문자열이 만들어짐. 결과적으로 field = 이름이고 index = 0 이라면, f"{field}{{{{{index}}}}}" 코드는 "이름{{0}}" 이라는 문자열을 만들어 냄. "이름{{0}}" 이라는 형태의 문자열을 만들어 내야, 이것을 이용해서 한글 문서에 hwp.PutFieldText("이름{{0}}", value[idx]) 라는 식으로 작동되어 원하는 값을 입력할 수 있는 상태가 되기 때문임. 제가 이해한 내용이 맞을까요? 중괄호도 많고 복잡해서 이해하기 어려웠는데, 저와 같은 형태로 되어야 하는 이유를 추정해 보았습니다. 답변 부탁드립니다. 감사합니다. 근데 문외한의 입장에서는 이런 거 한 줄 이해하기가 원래 이렇게 어렵게 느껴지는 게 정상인가요? ㅜㅠ
안녕하세요 선생님 작업형 2유형 관련해서 질문이 있습니다. 2유형에서 고득점을 목표로 하지 않기 때문에 간단하게 기본 공식만 외워가려고 생각중인데요 target = train.pop("A") train = pd.get_dummies(train) test = pd.get_dummies(test) from sklearn.model_selection import train_test_split X_tr,X_val,y_tr,y_val = train_test_split(train,target,test_size = 0.2, random_state = 0) from sklearn.ensemble import RandomForestRegressor rf = RandomForestRegressor(random_state=0) rf.fit (X_tr,y_tr) pred = rf.predict(X_yal) pred = rf.predict(test) result = pd.DataFrame({'pred':pred}) result.to _csv("result.csv",index=False) print( pd.read _csv("result.csv").head()) print( pd.read _csv("result.csv").shape) 이런식으로 간단하게 문제에 맞춰 작성했을때 빨간색 하이라이트 부분을 제출을 하는건데 , 초록색 부분을 주석처리를 해줘야 하는걸까요? 아니면 주석처리 하지 않고 위에처럼 제출을 하면 될까요? 추가적으로 주석처리가 필요한 부분이 있으면 알려주십쇼!!
@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User createUser; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User lastModifyUser; DB 한 테이블에 글 등록 유저 정보와 마지막 수정 유저 정보를 넣도록 설계했는데 아래와 같이 안되면 이럴때는 보통 설계를 어떻게 하나요?? Caused by: org.hibernate.MappingException : Column 'user_id' is duplicated in mapping for entity 'study.factory.domain.Order' (use '@Column(insertable=false, updatable=false)' when mapping multiple properties to the same column)
범주형 변수에 get.dummies를 이용하여 원핫인코딩 하는 작업 중 질문이 있습니다. train 데이터셋과 test 데이터셋의 컬럼수가 99개와 95개로 다릅니다. (다른 이유는 train 데이터셋과 test 데이터셋의 컬럼 중에 관측치가 다른 항목이 있기 때문이라고 하셨는데요, 그런 이유라면 다른 것이 정상인가요?) 그런데 영상에서는 100개로 나옵니다,, 강의 100개 vs 99개 컬럼 갯수가 다른 이유는 무엇일까요? 아래는 코드와 출력값 첨부드립니다. # 원핫 인코딩 n_train, n_test, c_train, c_test = get_nc_data() # 데이터 새로 불러오기 c_train = pd.get_dummies(c_train[cols]) c_test = pd.get_dummies(c_test[cols]) display(c_train.head()) display(c_test.head()) print(c_train.shape) print(c_test.shape)
2-4. [응용] 엑셀문서 값을 필드에 입력하기 관련입니다. 강의 내용 중 for문 안에 ws.Range를 넣어, 엑셀문서의 모든 행을 출력해보는 내용이 있습니다. 여기서 다루는 엑셀의 데이터는 아래와 같습니다. 여기서 다루는 범위는 2행(마크, 남 ...)부터 7행(슬아, 여, ...)이므로, for row in range(2,7): 이라고 해야 맞는 게 아닌가 싶은데, for row in range(2,7): 로 해보면 아래와 같이 원하는 결과가 아닙니다. 실제 7행인 ['리사', '여', '1969년 11월 7일', '게임'] 가 빠진 결과가 나옵니다. for row in range(2,7): data = list( ws.Range(ws.Cells(row,1), ws.Cells(row,4)).Value[0] ) data[2] = data[2].strftime("%Y년 %#m월 %#d일") print(data) ['마크', '남', '1984년 5월 14일', 'VR'] ['빌', '남', '1955년 10월 28일', '기부'] ['일론', '남', '1971년 6월 28일', '트위터'] ['제프', '남', '1964년 1월 12일', '독서'] ['리사', '여', '1969년 11월 7일', '게임'] 반면에, for row in range(2,8): 이라고 해야만 아래와 같이 엑셀의 2행부터 7행의 데이터가 원하는대로 출력이 됩니다. for row in range(2,8): data = list( ws.Range(ws.Cells(row,1), ws.Cells(row,4)).Value[0] ) data[2] = data[2].strftime("%Y년 %#m월 %#d일") print(data) ['마크', '남', '1984년 5월 14일', 'VR'] ['빌', '남', '1955년 10월 28일', '기부'] ['일론', '남', '1971년 6월 28일', '트위터'] ['제프', '남', '1964년 1월 12일', '독서'] ['리사', '여', '1969년 11월 7일', '게임'] ['슬아', '여', '1983년 6월 16일', '쇼핑'] 2행부터 7행의 데이터를 출력하는데 왜 for row in range(2,8): 로 하는 것이 맞는 것인지 궁금합니다.