机器学习(以随机森林例)基本流程

本文介绍了如何使用Python的numpy,pandas,scikit-learn等库进行数据预处理、特征选择、模型构建(随机森林回归)以及在Kaggle竞赛中预测星际旅行乘客是否被运输。通过填充缺失值、映射类别特征并计算预测误差,最后生成提交文件。
摘要由CSDN通过智能技术生成
  1. 导入所需的库:

    • numpy 用于数值计算。
    • pandas 用于数据处理和分析。
    • matplotlib.pyplot 和 seaborn 用于数据可视化。
    • train_test_split 用于将数据分为训练集和测试集。
    • RandomForestRegressor 用于构建随机森林回归模型。
    • mean_absolute_error 用于计算预测结果的均方绝对误差。
  2. 定义一个字典 planet_to_numeric,(数值处理需要)将名称映射为数值。

  3. 使用 map 函数将 train_datatest_data 中的 'HomePlanet' 列中的星球名称替换为相应的数值。

  4. 通过遍历 train_datatest_data 的列,使用众数填充每个列中的缺失值。

  5. train_data 中选择特征列 featrues,并将目标列 y'Transported')分离出来。

  6. 使用 train_test_splitx(特征)和 y(目标)分为训练集和测试集。

  7. 使用 RandomForestRegressor 构建随机森林回归模型,并在训练数据上训练它。

  8. 在测试数据上进行预测,并使用 mean_absolute_error 计算预测结果与实际值之间的误差。

  9. 根据预测结果,创建一个新的列 prediction1,如果预测值大于或等于0.5,则为“True”,否则为“False”。

  10. 创建一个包含 PassengerIdTransportedDataFrame,并将其保存为 submission.csv 文件。

import numpy as np 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error

planet_to_numeric = {
    'Europa': '1',
    'Earth': '2',
    'Mars':'3'
}

train_data['HomePlanet'] = train_data['HomePlanet'].map(planet_to_numeric)
test_data['HomePlanet'] = test_data['HomePlanet'].map(planet_to_numeric)
test_data

featrues=["CryoSleep","Age","VIP",'HomePlanet']
for column in train_data.columns:
    mode_value = train_data[column].mode()[0]
    train_data[column] = train_data[column].fillna(mode_value)
for column in test_data.columns:
    mode_value = test_data[column].mode()[0]
    test_data[column] = test_data[column].fillna(mode_value)

x=train_data[featrues]
y=train_data['Transported']
train_x,test_x,train_y,test_y=train_test_split(x,y)

sns.countplot(x="HomePlanet",hue="Transported", data=train_data)

model=RandomForestRegressor(n_estimators=500)
model.fit(train_x,train_y)

prediction=model.predict(test_x)
dif=mean_absolute_error(prediction,test_y)

test=test_data[featrues]

predictions=model.predict(test)

prediction1=[]
for i in predictions:
    if i>=0.5:
        prediction1.append("True")
    else:
        prediction1.append("False")

output=pd.DataFrame({"PassengerId":test_data['PassengerId'],'Transported':prediction1})
output.to_csv('submission.csv',index=False)

submssion1=pd.read_csv('/kaggle/working/submission.csv')
submssion1

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值