写在开头:在本节中仅展示python中调用机器学习的方法,已经评价的方法,具体对于每种机器学习模型的算法与理解,可能会在后面的章节进行展开。
回归前文
在前文中我们分享了一些数据查看和清洗的技巧,一些在Titanic 比赛上的数据可视化技巧。可以点击链接进行查看,
Titanic Kaggle 竞赛技术小结(一)
Titanic Kaggle 竞赛技术小结(二)
技术总结
一、全文思路
Step1. 载入数据、包,并查看数据;
Step2. 对数据进行清洗,包括去重复值、异常值、缺失值或特征化数值化处理;
Step3. 利用数据可视化,寻找有价值的变量与变量分组;
Step4. 利用可行的机器学习、深度学习模型进行模型训练;
Step5. 对不同模型的效果进行评估,交叉验证、重要变量筛选、查准率、查全率、F值、ROC-AUC等进行评价;
Step6. 保存数据,结束。
二、关键程序
(此处不展示完整分析过程与代码,只对使用到的函数进行总结,完整项目可见后续文章以及机器学习模型的扩展见后续文章)
Step4. 利用可行的机器学习、深度学习模型进行模型训练。
对于Titanic模型主要涉及的是一个二分类的问题,也就是传统的0-1问题,解决此类问题比较常见的有逻辑回归(LR),决策树(DT),KNN,感知机等,其中具体的算法可以看李航老师《统计学习方法》中对应的章节有相应的详细讲解,可能后续文章会对这些机器学习的方法进行分享,下面展示实现机器学习的部分代码。
#机器学习包-二分类问题
#常见方法模型:LR、随机森林、感知机、梯度下降、DT、KNN、支持向量机、贝叶斯分类器
from sklearn import linear_model
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import Perceptron
from sklearn.linear_model import SGDClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC, LinearSVC
from sklearn.naive_bayes import GaussianNB
train_df = train_df.drop(['Name'], axis=1)
test_df = test_df.drop(['Name'], axis=1)
X_train = train_df.drop('Survived',axis=1)
Y_train = train_df['Survived']
X_test = test_df.copy() # 这里的copy就相当于一个映射两者会共同改变,deepcopy才是复制
#梯度下降法
sgd = linear_model.SGDClassifier(max_iter=5, tol=None)
sgd.fit(X_train, Y_train)
acc_sgd