catboost案例

from catboost import CatBoostClassifier

# 數據集
cat_features = [0, 1]  # 類別特徵下標
train_data = [["a", "b", 1, 4, 5, 6], 
              ["a", "b", 4, 5, 6, 7],
              ["c", "d", 30, 40, 50, 60]]
train_labels = [1, 1, -1]
eval_data = [["a", "b", 2, 4, 6, 8], 
             ["a", "d", 1, 4, 50, 60]]

# 定義模型
model = CatBoostClassifier(iterations=2, learning_rate=1, depth=2)

# 訓練
model.fit(train_data, train_labels, cat_features)

# 預測類別
preds_class = model.predict(eval_data)

# 預測每個類別的可能性
preds_proba = model.predict_proba(eval_data)

# 預測Raw formula value
preds_raw = model.predict(eval_data, prediction_type='RawFormulaVal')

print(preds_class)
print(preds_proba)
print(preds_raw)
'''
[1 1]
[[0.37014499 0.62985501]
 [0.4641579  0.5358421 ]]
[0.53159487 0.14361474]
'''
#使用CatBoost自帶的數據集處理Pool類進行訓練

from catboost import CatBoostClassifier, Pool

# 數據集
train_data = Pool(data=[[1, 4, 5, 6], [4, 5, 6, 7], [30, 40, 50, 60]],
                  label=[1, 1, -1],
                  weight=[0.1, 0.2, 0.3])

# 定義模型
model = CatBoostClassifier(iterations=10)

# 訓練
model.fit(train_data)

# 預測
preds_class = model.predict(train_data)
print(preds_class)  # [ 1  1 -1]

 

 

 

結果

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章