# 执行sql操作 sql = "select * from rjjk" data = pd.read_sql(sql, con=db_conn) feature_cols = ['工作强度', '体重', '是否有锻炼', '是否熬夜', '生活环境', '年纪分类'] x = data[feature_cols] # 目标变量 y = data.健康状态 # 拆分训练集 验证集 from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3) # 网格调优(预剪枝) 通过自动调优找到最优参数值 from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import GridSearchCV parameters2 = {'max_depth': [15, 17, 20], 'min_samples_leaf': [3, 4, 5], 'min_samples_split': [7, 9, 10]} model2 = DecisionTreeClassifier(random_state=42) grid_search = GridSearchCV(model2, parameters2, cv=5) grid_search.fit(x_train, y_train) i = grid_search.best_params_ print(i)
时间: 2024-01-11 18:05:19 浏览: 66
这段代码中,首先使用 Pandas 库中的 read_sql 函数从数据库中读取数据,并将其保存在一个 DataFrame 对象 data 中。
接下来,从 data 中选择了一些特征列作为自变量 feature_cols,并将健康状态列 y 作为因变量。
然后,使用 train_test_split 函数将数据集拆分成训练集和测试集,其中测试集占总数据集的 30%。
接下来,使用 GridSearchCV 函数进行网格搜索和交叉验证,以找到最优的超参数组合。其中,max_depth、min_samples_leaf 和 min_samples_split 分别表示决策树的最大深度、叶子节点的最小样本数和分裂内部节点所需的最小样本数。最优的超参数组合保存在变量 i 中,并打印出来。
最后,这段代码中没有涉及数据库的修改、插入和删除操作,只是对数据库中的数据进行了读取和分析。
阅读全文