KNN、决策树、随机森林..调参学习笔记

本文通过实例介绍了如何使用sklearn进行KNN、决策树和随机森林的调参,特别是在Titanic生存率预测和乳腺癌数据集上的应用。讨论了过拟合和欠拟合的概念,以及如何通过调整决策树和随机森林的参数来降低泛化误差,例如n_estimators、max_depth、max_features和min_sample_leaf。最终找到了最优的模型参数,提高了预测准确率。
摘要由CSDN通过智能技术生成
实例:Titanic生存率预测实例(通过sklearn实现Knn,决策树,线性回归)
import pandas as pd
from IPython.display import display
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')

# display(train) #可以查看一下数据,之后再注释掉
#查看缺失率 利用for循环
for column in train.columns:
    print("name:{0} miss rate:{1:.2f} ".format(column,1-train[column].count()/len(train)))
for column in test.columns:
    print("name:{0} miss rate:{1:.2f} ".format(column,1-test[column].count()/len(train)))
    
#去除不需要的字段和缺失率较大的字段
train,test= train.drop(columns=['PassengerId', 'Name', 'Ticket', 'Cabin']),test.drop(columns=['PassengerId', 'Name', 'Ticket', 'Cabin'])


#填补空缺
#用Age平均值(也可以选取众数)填补空缺
train['Embarked'] = train['Embarked'].fillna('S')
test['Embarked'] = test['Embarked'].fillna('S')
train['Age'] = train['Age'].fillna(int(train['Age'].mean()))
test['Age'] = test['Age'].fillna(int(test['Age'].mean()))
test['Fare'] = test['Fare'].fillna(float(test['Fare'].dropna().mode()[0]))#这里注意众数不唯一因此得到的是一个列表,我们用到第一个元素便可

#将一些字符串转化为数字表示
train.loc[train["Sex"]=="male","Sex"] = 0; 
train.loc[train["Sex"]=="female","Sex"] = 1;
train.loc[train["Embarked"]=="S","Embarked"] = 0; 
train.loc[train["Embarked"]=="C","Embarked"] = 1;
train.loc[train["Embarked"]=="Q","Embarked"] = 2;
test.loc[test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值