logo
Loading...

Day 23 - Cupoy

#只取類別值 (object) 型欄位, 存於 object_features 中object_fe...

只取類別值,對照組,ml100-2,ml100-2-d23

Day 23

2019/05/10 上午 01:34
機器學習共學討論版
Patrick Liou
觀看數:5
回答數:3
收藏數:0
只取類別值
對照組
ml100-2
ml100-2-d23

#只取類別值 (object) 型欄位, 存於 object_features 中

object_features = []

for dtype, feature in zip(df.dtypes, df.columns):

    if dtype == 'object':

        object_features.append(feature)

print(f'{len(object_features)} Numeric Features : {object_features}\n')


# 只留類別型欄位

df = df[object_features]

df = df.fillna('None')

train_num = train_Y.shape[0] ---> 不太了解此行的用意

df.head()


# 對照組 : 標籤編碼 + 邏輯斯迴歸

df_temp = pd.DataFrame()

for c in df.columns:

    df_temp[c] = LabelEncoder().fit_transform(df[c])

train_X = df_temp[:train_num]---> 為什麼要加入 [:train_num],直接寫成df_temp 會有差異嗎?

estimator = LogisticRegression()

start = time.time()

print(f'shape : {train_X.shape}')

print(f'score : {cross_val_score(estimator, train_X, train_Y, cv=5).mean()}')

print(f'time : {time.time() - start} sec')

回答列表

  • 2019/05/10 上午 11:20
    Edwin
    贊同數:0
    不贊同數:0
    留言數:0

    1.因為 df 已經利用 pd.concat() 將 test_X 併入 train_X 下方

       因此df row/index的數量是為train_X的row與test_X的row數量加總

       train_num = train_Y.shape[0] 的用意是紀錄train_X的row數量


    2.train_X = df_temp[:train_num]用意是萃取出原先train_X的範圍

       單純只有df_temp則同時包含了原先train_X與test_X

  • 2019/05/10 下午 05:13
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    train_num = train_Y.shape[0]---> 不太了解此行的用意 


    => 還記得 .shape 是什麼嗎?會回傳資料的筆數 * 寬度,取出 0 表示顯示資料筆數。

  • 2019/05/10 下午 05:14
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    train_X = df_temp[:train_num]---> 為什麼要加入 [:train_num],直接寫成df_temp 會有差異嗎?


    => 這樣寫是說只取 n 筆(0 到 train_num)資料作為 training data,直接寫成 df_temp 就是把全部資料當成 training data。