写一个lightgbm二分类模型
时间: 2024-02-16 11:04:17 浏览: 60
以下是一个使用 LightGBM 进行二分类模型的示例代码:
```python
import lightgbm as lgb
from sklearn.model_selection import train_test_split
# 准备数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 定义模型参数
params = {
'objective': 'binary',
'boosting_type': 'gbdt',
'metric': 'binary_logloss',
'num_leaves': 31,
'learning_rate': 0.05,
'feature_fraction': 0.9,
'bagging_fraction': 0.8,
'bagging_freq': 5,
'verbose': 0
}
# 训练模型
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test)
model = lgb.train(params, train_data, valid_sets=test_data, num_boost_round=1000, early_stopping_rounds=200)
# 模型评估
y_pred = model.predict(X_test)
y_pred = [1 if x > 0.5 else 0 for x in y_pred]
accuracy = sum(y_pred == y_test) / len(y_test)
print('Accuracy:', accuracy)
# 模型应用
new_data = pd.read_csv('new_data.csv')
new_X = new_data.drop('target', axis=1)
new_y_pred = model.predict(new_X)
```
其中,X 和 y 分别表示特征和目标变量,train_test_split 函数用于将数据集划分为训练集和测试集。params 是模型参数,包括损失函数、提升器类型、评估指标、树的参数等。train_data 和 test_data 是训练集和测试集的数据格式。model 是训练好的模型。模型评估通过计算预测值和真实值的差异来评估模型的准确度。模型应用则是将训练好的模型应用于新的数据集进行预测。
阅读全文