机器学习API建模、预测结果可视化(以随机森林为例)

本文详细介绍使用随机森林算法进行机器学习模型构建的过程,包括数据准备、模型训练、预测及结果评估。以鸢尾花数据集为例,展示了如何利用Python的Scikit-Learn库实现随机森林分类,并对预测准确性进行了验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习API建模、预测结果可视化(以随机森林为例)

1. 建模步骤
1) 通过Scikit-Learn导入适当的评估器类,选择模型类。
2) 用合适的数值对模型类进行实例化,配置模型超参数。
3) 整理数据,获取特征矩阵和目标数组。
4) 调用模型实例的fit()方法对数据进行拟合。
5) 对新数据应用模型:
Ⅰ. 在监督学习模型中:通常使用predict()方法预测新数据的标签。
Ⅱ.在非监督学习模型中,通常使用transform()或predict()方法转换或推断数据的性质。
2. 具体代码
以机器学习中国最广为人知的鸢尾花数据分析为例,代码如下:

import os
import pandas as pd
import requests

PATH = r'F:\研究生文件\Python代码/'
r = requests.get('http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data')
with open(PATH + 'iris.data','w') as f:
    f.write(r.text)
os.chdir(PATH)
res = open(PATH + 'iris.data')
df = pd.read_csv(res,names=['sepal length','sepal width','petal length','petal width','class'])

#step1:导入随机森林分类模型/切分训练集与测试集模块
from sklearn.ensemble import RandomForestClassifier
from sklearn.cross_validation import train_test_split

#step2:设置超参数,使用10个决策树,最多允许5层判别,以防过拟合(fitting)
clf = RandomForestClassifier(max_depth=5,n_estimators=10)

#step:3设置特征矩阵和目标数组
X = df.iloc[:,:4]
y = df.iloc[:,4]

#切分训练集、测试集,30%数据用于测试
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3)

#step4:拟合数据、预测数据
#拟合训练集
clf.fit(X_train,y_train)

#预测测试集
y_pred = clf.predict(X_test)

#将预测值与实际值对比,判断模型预测效果
rf = pd.DataFrame(list(zip(y_pred,y_test)),columns=['predicted','actual'])
rf['correct'] = rf.apply(lambda r: 1 if r['predicted']==r['actual'] else 0,axis=1)
rf.head()
  • 代码小知识:
  • 如果直接输入pd.read_csv(r’F:\研究生文件\Python代码/’+‘iris.data’)会报错:OSError: Initializing from file failed。原因是路径中出现了中文字符。所以先用res = open(PATH + ‘iris.data’),再用read_csv()函数解决问题
  • apply函数,在DataFrame中增加了 一列,如果预测值与实际值相等则值为1,否则为0。
rf['correct'] = rf.apply(lambda r: 1 if r['predicted']==r['actual'] else 0,axis=1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值