各位好,我最近正在学习随机森林的分类问题,基础不太行但导师硬要让人上的那种
最近在做一个随机森林的模拟,但报了一些错误,我不太懂是什么意思,恳请各位批评指正
以下是我自己跟着一些文章模仿写的东西
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)
其中引用的文件长这样
然后是我运行后的结果
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
麻烦大家指导一下,万分感谢!
把报错和文件发给我
我们学习了3种常用的特征缩放技巧,那么实践中应选择哪种方法?
答案取决于数据集的特点。
以下是一些经验的总结:
如果喜欢我们的文章,记得点赞和收藏哦,我们每天都会为大家带来Python,数据科学和量化交易的精品内容。
【关于我们】
蜂鸟数据:国内领先的金融数据API提供商。
蜂鸟数据团队由业界顶尖的数据工程师,数据科学家和宽客组成,我们正努力构建一个强大的金融数据库,并提供API接口,目标是令金融数据开源化和平民化。
浏览并测试我们接口吧,目前覆盖股票,外汇,商品期货,数字货币和宏观经济领域,包括实时报价(tick)和历史数据(分钟),提供REST API和Websocket两种接入方式,能够满足金融分析师,量化交易和理财app的需求。
如果您准备好了,请登录蜂鸟官网,注册免费获取API密钥,然后开始探索我们的金融数据库吧。