关于python随机森林编码的一些问题

各位好,我最近正在学习随机森林的分类问题,基础不太行但导师硬要让人上的那种
最近在做一个随机森林的模拟,但报了一些错误,我不太懂是什么意思,恳请各位批评指正
以下是我自己跟着一些文章模仿写的东西

import numpy as np
import scipy
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier

from sklearn.model_selection import train_test_split,cross_val_score, GridSearchCV
from sklearn.metrics import roc_curve, auc, roc_auc_score

import matplotlib.pyplot as plt

import pandas as pd
path = 'F:\\RFmodle\\mep_water_week_2004.csv'
rawdata = pd.read_csv(path,encoding = 'gbk')
print(rawdata.head())
print(rawdata.describe())
print(rawdata.本周水质.value_counts())
x = rawdata.drop('本周水质',axis = 1)#删除本周水质列,剩余字段全为特征列
y = rawdata['本周水质']
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,random_state=0)#30%为测试集,则70%为训练集
x_train.shape#查看训练集数据量
x_test.shape#查看测试集数据量
print(x_train.shape)
print(x_test.shape)

rfc = RandomForestClassifier()
rfc = rfc.fit(x_train,y_train)

result = rfc.score(x_test,y_test)
print(result)

其中引用的文件长这样

img

然后是我运行后的结果

D:\phythonproject\venv\Scripts\python.exe D:\phythonproject\venv\onetry2.py 
Traceback (most recent call last):
  File "D:\phythonproject\venv\onetry2.py", line 27, in <module>
    rfc = rfc.fit(x_train,y_train)
  File "D:\phythonproject\venv\lib\site-packages\sklearn\ensemble\_forest.py", line 345, in fit
    X, y = self._validate_data(
  File "D:\phythonproject\venv\lib\site-packages\sklearn\base.py", line 584, in _validate_data
    X, y = check_X_y(X, y, **check_params)
  File "D:\phythonproject\venv\lib\site-packages\sklearn\utils\validation.py", line 1106, in check_X_y
    X = check_array(
  File "D:\phythonproject\venv\lib\site-packages\sklearn\utils\validation.py", line 879, in check_array
    array = _asarray_with_order(array, order=order, dtype=dtype, xp=xp)
  File "D:\phythonproject\venv\lib\site-packages\sklearn\utils\_array_api.py", line 185, in _asarray_with_order
    array = numpy.asarray(array, order=order, dtype=dtype)
  File "D:\phythonproject\venv\lib\site-packages\pandas\core\generic.py", line 1998, in __array__
    arr = np.asarray(values, dtype=dtype)
ValueError: could not convert string to float: '河北石家庄岗南水库'
      点位名称   ph*  DO(mg/l)  CODMn(mg/l)  NH3-N(mg/l) 本周水质
0   广东广州长洲  7.08      1.21          4.9         6.52   劣Ⅴ
1  浙江杭州鸠坑口  7.25      8.70          1.4         0.06    Ⅰ
2  福建福州白岩潭  7.23      5.89          2.1         0.93    Ⅲ
3   江苏无锡沙渚  7.90     10.00          4.7         0.50    Ⅲ
4  江苏宜兴兰山嘴  7.75      9.55          3.5         1.31    Ⅳ
               ph*     DO(mg/l)  CODMn(mg/l)  NH3-N(mg/l)
count  3431.000000  3431.000000  3431.000000  3431.000000
mean      7.607703     7.064139     6.913416     1.402929
std       0.940085     2.823067    17.188665     3.371176
min       0.000000     0.000000     0.000000     0.000000
25%       7.290000     5.630000     2.200000     0.170000
50%       7.670000     7.230000     3.700000     0.350000
75%       8.030000     8.830000     5.800000     1.060000
max       9.590000    18.800000   252.000000    35.900000
本周水质
Ⅱ     1061
Ⅲ      737
劣Ⅴ     590
Ⅳ      555
Ⅰ      244
Ⅴ      210
★       34
Name: count, dtype: int64
(2401, 5)
(1030, 5)

进程已结束,退出代码1

麻烦大家指导一下,万分感谢!

把报错和文件发给我

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7508077
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Python机器学习:4.9 利用随机森林评估特征重要性
  • 除此之外, 这篇博客: Python机器学习实战:特征缩放的3个方法中的 4. 结论 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 我们学习了3种常用的特征缩放技巧,那么实践中应选择哪种方法?

    答案取决于数据集的特点。

    以下是一些经验的总结:

    1. 如果不明确特征的分布,或根本不在乎分布,一般会先使用MinMaxScaler。
    2. 如果特征包含异常值,建议使用RobustScaler,比MinMaxScaler能得到更好的效果。
    3. 如果特征近似服从正态分布,最好使用StandardScaler。
    4. 如果特征的取值范围很小,变异程度较低,又呈现钟形分布,则没必要进行缩放。

    如果喜欢我们的文章,记得点赞和收藏哦,我们每天都会为大家带来Python,数据科学和量化交易的精品内容。

    【关于我们】

    蜂鸟数据:国内领先的金融数据API提供商。

    蜂鸟数据团队由业界顶尖的数据工程师,数据科学家和宽客组成,我们正努力构建一个强大的金融数据库,并提供API接口,目标是令金融数据开源化和平民化。

    浏览并测试我们接口吧,目前覆盖股票,外汇,商品期货,数字货币和宏观经济领域,包括实时报价(tick)和历史数据(分钟),提供REST API和Websocket两种接入方式,能够满足金融分析师,量化交易和理财app的需求。

    需要金融数据?利用蜂鸟API将数据整合到您的应用

    如果您准备好了,请登录蜂鸟官网,注册免费获取API密钥,然后开始探索我们的金融数据库吧。

  • 您还可以看一下 关东升老师的Python数据分析实战篇:从数据搜集到数据可视化一步一步完成二手房价数据分析课程中的 数据分组和聚合小节, 巩固相关知识点