import numpy as np
import pandas as pd
import seaborn as sns
from sklearn import metrics
import matplotlib.pyplot as plt
data=pd.read_csv(r'C:\Users\BX田田\Desktop\数据挖掘\Titanic\data.csv',encoding='UTF-8')
#data.csv是泰坦尼克的训练集数据
data['Age']=data['Age'].fillna(data['Age'].median())
data.describe()
# 可以发现AGE现在全部被填充了
## 统计出Embarked列各个元素出现次数
ans=data['Embarked'].value_counts()
# 返回最大值索引
fillstr=ans.idxmax()
data['Embarked']=data['Embarked'].fillna(fillstr)
data.head()
#可以发现embarked无缺失了
data_test=pd.read_csv(r'C:\Users\BX田田\Desktop\数据挖掘\Titanic\test.csv',encoding='UTF-8')
data_test['Age']=data_test['Age'].fillna(data_test['Age'].median())
data_test.describe()
ans=data_test['Embarked'].value_counts()
fillstr=ans.idxmax()
data_test['Embarked']=data_test['Embarked'].fillna(fillstr)
mid=data_test['Fare'].median()
data_test['Fare']=data_test['Fare'].fillna(value=mid)
data_test.head()
#将分类变量转成哑变量
data1=pd.get_dummies(data['Sex'])
data2=pd.get_dummies(data['Embarked'])
data3=pd.concat([data1,data2,data],axis=1)
data3.drop(['Sex','Embarked','Cabin','Ticket','Name','PassengerId'],axis=1,inplace=True)
data3.head()
data_test1=pd.get_dummies(data_test['Sex'])
data_test2=pd.get_dummies(data_test['Embarked'])
data_test3=pd.concat([data_test1,data_test2,data_test],axis=1)
data_test3.drop(['Sex','Embarked','Cabin','Ticket','Name','PassengerId'],axis=1,inplace=True)
data_test3.head()
from sklearn import model_selection
predictors=['female','male','C','Q','S','Pclass','Age','SibSp','Parch','Fare']
X_train,X_test,y_train,y_test=model_selection.train_test_split(data3[predictors],data3.Survived,test_size=0.25,random_state=1234)
#####线性回归#######
import statsmodels.api as sm
from sklearn import metrics
from sklearn.linear_model import LinearRegression
model=sm.formula.ols('Survived~female+male+C+Q+S+Pclass+Age+SibSp+Parch+Fare',data=data3).fit()
#print("模型的偏回归系数分别为: \n",model.params)
pred=model.predict(exog=X_test)
pred[pred>.5] = 1
pred[pred<=.5] = 0
print(metrics.classification_report(y_test,pred))
###### 岭回归######
from sklearn import model_selection
from sklearn.linear_model import Ridge,RidgeCV
import matplotlib.pyplot as plt
Lambdas=np.logspace(-5,2,200)
ridge_cofficients=[]
for Lambda in Lambdas:ridge=Ridge(alpha=Lambda,normalize=True)ridge.fit(X_train,y_train)ridge_cofficients.append(ridge.coef_)
ridge_cv=RidgeCV(alphas=Lambdas,normalize=True,scoring='neg_mean_squared_error',cv=8)
ridge_cv.fit(X_train,y_train)
ridge_best_Lambda=ridge_cv.alpha_
ridge_best_Lambda
ridge=Ridge(alpha=ridge_best_Lambda,normalize=True)
ridge.fit(X_train,y_train)
ridge_pred=model.predict(exog=X_test)
ridge_pred[ridge_pred>.5] = 1
ridge_pred[ridge_pred<=.5] = 0
#pd.Series(index=['Intercept']+X_train.columns.tolist(),data=[ridge.intercept_]+ridge.coef_.tolist())
print(metrics.classification_report(y_test,ridge_pred))
#####logistic回归######
from sklearn import linear_model
sklearn_logistic=linear_model.LogisticRegression()
sklearn_logistic.fit(X_train,y_train)
sklearn_logistic.predict=sklearn_logistic.predict(X_test)
print(metrics.classification_report(y_test,sklearn_logistic.predict))
#####决策树######
from sklearn.tree import DecisionTreeClassifier
dc=DecisionTreeClassifier()
p=dc.fit(X_train,y_train)
result=p.predict(X_test)
from sklearn import metrics
print(metrics.classification_report(y_test,result))
######随机森林#######
from sklearn import ensemble
RF_class=ensemble.RandomForestClassifier(n_estimators=200,random_state=1234)
RF_class.fit(X_train,y_train)
RF_class_pred=RF_class.predict(X_test)
print(metrics.classification_report(y_test,RF_class_pred))
######KNN#######
from sklearn import neighbors
import matplotlib.pyplot as plt
K=np.arange(1,np.ceil(np.log2(data3.shape[0]))).astype(int)
accuracy=[]
for k in K:cv_result=model_selection.cross_val_score(neighbors.KNeighborsClassifier(n_neighbors=k,weights='distance'),X_train,y_train,cv=10,scoring='accuracy')accuracy.append(cv_result.mean())
arg_max=np.array(accuracy).argmax()
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
plt.rcParams['axes.unicode_minus']=False
plt.plot(K,accuracy)
plt.text(K[arg_max],accuracy[arg_max],'最佳K值为%s'%int(K[arg_max]))
plt.show()
knn_class=neighbors.KNeighborsClassifier(n_neighbors=7,weights='distance')
knn_class.fit(X_train,y_train)
predict=knn_class.predict(X_test)
print(metrics.classification_report(y_test,predict))import csv
# 创建文件对象
f = open('ttnk_score.csv','w',encoding='utf-8')
# 基于文件对象构建 csv写入对象
csv_writer = csv.writer(f)
# 构建列表头
csv_writer.writerow(["model","accuracy","precision","recall","f1-score"])
# 写入csv文件内容
csv_writer.writerow(["lr",'0.81','0.80','0.70','0.75'])
csv_writer.writerow(["ridge",'0.81','0.80','0.70','0.75'])
csv_writer.writerow(["logistic",'0.82','0.84','0.69','0.76'])
csv_writer.writerow(["decisiontree",'0.78','0.74','0.74','0.74'])
csv_writer.writerow(["RF_class",'0.81','0.78','0.74','0.76'])
csv_writer.writerow(["knn_class",'0.65','0.60','0.47','0.53'])
# 5. 关闭文件
f.close()

泰坦尼克号入门学习(思维导图)相关推荐

  1. Hadoop 入门学习思维导图

    Hadoop 入门学习思维导图:

  2. Java入门学习思维导图

    基本不涉及具体代码,更多是作为引导,引导方向 Xmind地址:https://download.csdn.net/download/qq_34834846/11271498 pdf版地址:

  3. CTF入门学习思维导图

  4. 深度学习入门之神经网络的学习思维导图

    第4章 神经网络的学习思维导图

  5. 吴恩达深度学习思维导图--来自刚入门的学生的自制版

    吴恩达深度学习思维导图 学习吴恩达老师的课一学期了,在课程老师的要求下每周视频课都需要做思维导图,最后做了一份汇总版本的思维导图,与各位共享交流一下. 思维导图内的图片和部分内容是结合吴恩达老师的视频 ...

  6. python课程思维导图_零基础Python学习思维导图,记得收藏

    原标题:零基础Python学习思维导图,记得收藏 本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库). 1.按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字 ...

  7. 2023最新软件测试学习思维导图(从小白到大师进阶之路)

    如下是我工作之余熬夜整理的软件测试学习思维导图,通过回顾多年的从业经验,总结提炼出来的一些东西,希望能对大家有些帮助,特别是刚入门软件测试行业或将要加入软件测试行业的同学,可以认真看一下,可以作为参考 ...

  8. C++语言学习思维导图

    C++语言学习思维导图

  9. C#语言学习思维导图

    C#语言学习思维导图 C#的学习可分为3个部分: (1)基础 (2)中级 (3)应用 (1)基础 (2)中级 (3)应用

  10. Java语言学习思维导图

    Java语言学习思维导图

最新文章

  1. gulp 配置自动化前端开发
  2. linux 下 Nginx 0.8.40的安装
  3. 【Linux 内核】实时调度类 ⑦ ( 实时调度类核心函数源码分析 | dequeue_task_rt 函数 | 从执行队列中移除进程 )
  4. Java黑皮书课后题第4章:*4.7(顶点坐标)假设一个正五边形的中心位于(0,0),其中一个点位于0点位置。编写程序,提示用户输入正五边形外接圆的半径,显示p1到p5的5个坐标,保留两位小数
  5. 硬件基础:理解串口通信以及232,485,422常见问题
  6. 【CH - 1401】 兔子与兔子(字符串哈希)
  7. python从零开始到放弃_Python 协程从零开始到放弃
  8. 基于今日头条开源数据的词共现、新热词发现、短语发现
  9. mysql数据库分表及实现
  10. 【运维】从实战掌握自动化运维工具Ansible
  11. 【全开源商城小程序源码】ThinkPHP 5.1+带后台商城源码程序+带详细安装使用文档
  12. JAVA - 根据文件链接将文件下载保存到本地
  13. 塞规公差带图_工作量规公差带.ppt
  14. 再论iPhone Push Notification
  15. 虚拟机VMware中Linux联网
  16. 【iCheck基本用法的使用】
  17. RIP1实验1(实现不同路由器 不同PC机之间的通信)
  18. typedef的用法转
  19. 安卓 微信公众号 默认不操作拦截回退失败
  20. 基础类与基础算法学习

热门文章

  1. 数据结构荣誉课-第一次实验-解题报告
  2. 碳云智能想做的,是规划生命路线
  3. 中国工商银行网上银行新B2C在线支付接口文档下载地址
  4. Substrate Tutorials:Start a Private Network (multi-node)
  5. 视频处理指定颜色的提取
  6. 酷睿i7 11800h和r7 5800h参数对比 锐龙r75800h和酷睿i711800h选哪个好
  7. CAD初学者该掌握的用cad画图的基本…
  8. 大学计算机基础实验实施,大学计算机基础实验实施的方案学生用.docx
  9. STM32F429第二十八篇之ADC
  10. C语言求圆锥体积的程序,计算圆锥体积c++程序.doc