• 量化投资学习笔记23——支持向量机:实操,泰坦尼克号乘客生还机会预测


    用刚学的支持向量机来解决一下泰坦尼克号问题。
    数据的载入,清洗完全跟之前的一样,直接复制粘贴。从建模开始。
    代码
    建模,使用SVM模型
    划分训练集和测试集

    predictors = ['Pclass', 'Sex', 'Age', 'Family', 'Embarked', 'Cabin']
    x = train_data[predictors]
    y = train_data["Survived"]
    train_x, train_y, x_label, y_label = train_test_split(x, y, random_state = 1, train_size = 0.6, test_size = 0.4)
    print("训练集大小:", train_x.shape)
    print("测试集大小:", train_y.shape)
    # 训练SVM分类器
    classifier = svm.SVC(C = 2, kernel = "rbf", gamma = 10, decision_function_shape = "ovr") 
    classifier.fit(train_x, x_label)
    # 计算分类准确率
    print("建模的结果")
    print("训练集:", classifier.score(train_x, x_label))
    print("测试集:", classifier.score(train_y, y_label))
    

    结果
    建模的结果
    训练集: 0.9569288389513109
    测试集: 0.6190476190476191
    在测试集上效果不好啊。换个核函数试试。
    classifier = svm.SVC(C = 2, kernel = "linear", gamma = 10, decision_function_shape = "ovr")
    看看结果
    建模的结果
    训练集: 0.8108614232209738
    测试集: 0.7507002801120448
    换成线性核函数,好了很多。输出到结果文件,提交。
    预测,输出结果

     pred = classifier.predict(test_data[predictors])
     print(pred)
     output = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': pred})
     output.to_csv("submit04.csv", index = False)
     print("结果输出完毕!")
    

    跟用逻辑回归一模一样?
    我用一个测试数据提交了一下,所有结果均为0。

    看来提交是正常的。OK,进行下一个算法的学习吧。
    本文代码
    https://github.com/zwdnet/MyQuant/blob/master/titanic/submit04.py

    我发文章的四个地方,欢迎大家在朋友圈等地方分享,欢迎点“在看”。
    我的个人博客地址:https://zwdnet.github.io
    我的知乎文章地址: https://www.zhihu.com/people/zhao-you-min/posts
    我的博客园博客地址: https://www.cnblogs.com/zwdnet/
    我的微信个人订阅号:赵瑜敏的口腔医学学习园地

  • 相关阅读:
    switch statement
    Block statement
    Variable hoisting Global variables Constants
    How the Web works
    Discover browser developer tools
    Publishing via GitHub
    第十二节,OpenCV学习(一)图像的读取、显示、保存
    剑指Offer编程题3——从尾到头打印链表
    剑指Offer编程题2——替换空格
    剑指Offer编程题1——二维数组中的查找
  • 原文地址:https://www.cnblogs.com/zwdnet/p/12360959.html
Copyright © 2020-2023  润新知