分享

趣玩Python第四关:机器学习的初体验

 东西二王 2019-05-19

# coding: utf-8

# pylint: disable = invalid-name, C0111

import json

import lightgbm as lgb

import pandas as pd

from sklearn.metrics import mean_squared_error

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

from sklearn.datasets import make_classification

iris = load_iris()

data=iris.data

target = iris.target

X_train,X_test,y_train,y_test =train_test_split(data,target,test_size=0.2)

# 加载你的数据

# print('Load data...')

# df_train = pd.read_csv('../regression/regression.train', header=None, sep='\t')

# df_test = pd.read_csv('../regression/regression.test', header=None, sep='\t')

#

# y_train = df_train[0].values

# y_test = df_test[0].values

# X_train = df_train.drop(0, axis=1).values

# X_test = df_test.drop(0, axis=1).values

# 创建成lgb特征的数据集格式

lgb_train = lgb.Dataset(X_train, y_train)

lgb_eval = lgb.Dataset(X_test, y_test, reference=lgb_train)

# 将参数写成字典下形式

params = {

'task': 'train',

'boosting_type': 'gbdt', # 设置提升类型

'objective': 'regression', # 目标函数

'metric': {'l2', 'auc'}, # 评估函数

'num_leaves': 31, # 叶子节点数

'learning_rate': 0.05, # 学习速率

'feature_fraction': 0.9, # 建树的特征选择比例

'bagging_fraction': 0.8, # 建树的样本采样比例

'bagging_freq': 5, # k 意味着每 k 次迭代执行bagging

'verbose': 1 # <0 显示致命的, =0 显示错误 (警告), >0 显示信息

}

print('Start training...')

# 训练 cv and train

gbm = lgb.train(params,lgb_train,num_boost_round=20,valid_sets=lgb_eval,early_stopping_rounds=5)

print('Save model...')

# 保存模型到文件

gbm.save_model('model.txt')

print('Start predicting...')

# 预测数据集

y_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration)

# 评估模型

print('The rmse of prediction is:', mean_squared_error(y_test, y_pred) ** 0.5)

快把你的结果在评论区里亮出来吧!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多