인공지능을 적용한 문제해결 실습
실습
df["num_companies_worked"] = df["num_companies_worked"].fillna(df["num_companies_worked"].mean())
df["marital_status"] = df["marital_status"].fillna("etc")
df["birthday"] = pd.to_datetime(df['birthday'], format='%Y-%m-%d')
#format 정리
df["birth_year"] = df["birthday"].dt.year
df["age"] = 2021 - df["birth_year"] + 1
#만나이 구함
문자를 숫자로 대입 후 replace 함수를 이용하여 대체
level = {
"low":0,
"medium":1,
"high":2,
"very high":3
}
df["performance_rating"] = df["performance_rating"].replace(level)
df["job_satisfaction"] = df["job_satisfaction"].replace(level)
df = pd.get_dummies(df, columns = ["department", "marital_status"])
df["attrition"] = pd.get_dummies(df["attrition"], drop_first=True);
#콜론을 하나 삭제함
drop_first=True 쓰는 이유
→ yes 10 , no 01이 생김
→ 하나의 column 가져와도 괜찮음
x_data = df[col].values #input values
y_data = df["attrition"].values #result (퇴직과 재직여부)
x_train, x_test, y_train, y_test = train_test_split(x_data,
y_data,
random_state = 42,
stratify=y_data)
rfc = RandomForestClassifier(random_state=42)
rfc.fit(x_train, y_train)
rfc.score(x_test, y_test)
#정확도
0의 비율
1-y_train.sum()/len(y_train)
array([재직하는 사람 중 맞춘 사람, 재직하는데 퇴직으로 예측],
[퇴직하는데 재직으로 예측, 퇴직하는데 퇴직])
a method for evaluation
candidate model
ANN or its variation ← Today’s topic
a way to find the parameters