Sklearn 使用方法—选择正确的评估器(estimator)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据你提供的代码,有几个问题需要注意: 1. 你在导入库时没有导入 pandas,所以需要在代码开头添加 `import pandas as pd`。 2. 在分割特征和目标变量时,你使用了 `df_new` 来存储特征,但在训练和测试数据集的划分中,你使用了原始的 `df` 数据集。你应该将 `x = df.drop('类型', axis=1)` 改为 `x = df_new`,以确保使用正确的特征数据。 3. 在划分数据集时,你没有指定 `test_size` 参数来设置测试集的大小,默认情况下测试集大小为 0.25,可以通过 `train_test_split(x, y, test_size=0.2, random_state=22)` 来设置测试集大小为 0.2。 4. 在模型评估部分,你将预测结果 `y_predict` 与目标变量 `y_test` 进行比较,但没有打印出具体的比较结果。你可以使用 `print((y_test == y_predict).values)` 来打印出每个样本的比较结果。 5. 最后,你的函数没有被调用。你可以在代码最后添加 `decision_tree_demo()` 来调用函数并执行决策树分类器。 下面是修改后的代码: ```python import pandas as pd from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier def decision_tree_demo(): """ 用决策树对高钾和铅钡进行分类 :return: """ # 1)获取数据集 df = pd.read_excel("G:\\数学建模\\数模\\2022C\\附件.xlsx", sheet_name='描述性分析') # 分割特征和目标变量 df_new = df[ ['类型', '表面风化', '二氧化硅(SiO2)', '氧化钠(Na2O)', '氧化钾(K2O)', '氧化钙(CaO)', '氧化镁(MgO)', '氧化铝(Al2O3)', '氧化铁(Fe2O3)', '氧化铜(CuO)', '氧化铅(PbO)', '氧化钡(BaO)', '五氧化二磷(P2O5)', '氧化锶(SrO)', '氧化锡(SnO2)', '二氧化硫(SO2)']] x = df_new.drop('类型', axis=1) # 根据实际情况修改目标变量的列名 y = df_new['类型'] # 根据实际情况修改目标变量的列名 # 2)划分数据集 x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=22) # 3)决策树预估器 estimator = DecisionTreeClassifier(criterion="entropy") estimator.fit(x_train, y_train) # 4)模型评估 # 方法1:直接对比真实值和预测值 y_predict = estimator.predict(x_test) print("y_predict:\n", y_predict) print("直接比对真实值和预测值:\n", (y_test == y_predict).values) # 方法2:计算准确率 score = estimator.score(x_test, y_test) print("准确率:\n", score) return None decision_tree_demo() ``` 希望这些修改能够解决你的问题!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值