小小白要努力成长啊 2018-11-25 03:39 采纳率: 80%
浏览 1916
已采纳

titanic中随机森林方法报错

错误信息为

File "F:/python项目/titanic.py", line 55, in
kf = KFold(titanic.shape[0],n_splits=3,random_state=1)
TypeError: init() got multiple values for argument 'n_splits'

Process finished with exit code 1

代码为:

 import pandas
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn import cross_validation
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
from sklearn import cross_validation
from sklearn.model_selection import KFold
from sklearn.ensemble import RandomForestClassifier
#导入

titanic = pandas.read_csv("all/train.csv")
#print(titanic.head(3))
#print(titanic.describe())

#处理缺失数据
titanic["Age"] = titanic["Age"].fillna(titanic["Age"].median())
#print(titanic.describe())
titanic.loc[titanic["Sex"]=="male","Sex"]=0
titanic.loc[titanic["Sex"]=="female","Sex"]=1
titanic["Embarked"] = titanic["Embarked"].fillna('S')
titanic.loc[titanic["Embarked"]=="S","Embarked"]=0
titanic.loc[titanic["Embarked"]=="C","Embarked"]=1
titanic.loc[titanic["Embarked"]=="Q","Embarked"]=2
#print(titanic["Sex"].unique())
#print(titanic["Embarked"].unique())

predictors = ["Pclass","Sex","Age","Sibsp","Parch","Fare","Embarked"]
alg = RandomForestClassifier(random_state=1, n_estimators=10,min_samples_split=2,min_samples_leaf=1)
kf = KFold(titanic.shape[0],n_splits=3,random_state=1)
scores = cross_val_score(alg,titanic[predictors],titanic["Survived"],cv=kf)
print(scores.means())

谢谢各位

  • 写回答

1条回答 默认 最新

  • 孑然一身踽踽而行 2018-11-25 09:52
    关注

    导入的包的版本可能不同
    我后面修改后不一样
    我是这样修改的,你看能否可行

     # 将要预测的目标列
    predictors = ["Pclass", "Sex", "Age", "SibSp", "Parch", "Fare", "Embarked"]
    # 初始化算法类
    alg = LinearRegression()
    kf = KFold(n_splits=3, random_state=1,shuffle=False)
    
    predictions = []
    for train, test in kf.split(titanic["Survived"]):
        train_predictors = titanic[predictors].iloc[train,:]
        train_target = titanic["Survived"].iloc[train]
        alg.fit(train_predictors, train_target)
        test_predictions = alg.predict(titanic[predictors].iloc[test,:])
        predictions.append(test_predictions)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制