栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

第三章 模型搭建和评估--建模

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第三章 模型搭建和评估--建模

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from IPython.display import Image

%matplotlib inline

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
plt.rcParams['figure.figsize'] = (10, 6)  # 设置输出图片大小

载入我们提供清洗之后的数据(clear_data.csv),大家也将原始数据载入(train.csv),说说他们有什么不同

data = pd.read_csv('clear_data.csv')
train = pd.read_csv('train.csv')
data.shape, train.shape

data.head(5)

train.head(5)

任务一:切割训练集和测试集

x = data
y = train['Survived']

from sklearn.model_selection import train_test_split

train_test_split?

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.33, stratify = y, random_state = 42)

x_train.shape, x_test.shape

295/891

x_train.head()

任务二:模型创建

创建基于线性模型的分类模型(逻辑回归) 创建基于树的分类模型(决策树、随机森林) 分别使用这些模型进行训练,分别的到训练集和测试集的得分 查看模型的参数,并更改参数值,观察模型变化 

from sklearn.linear_model import LogisticRegression

from sklearn.ensemble import RandomForestClassifier

train['Survived'].value_counts()

lr = LogisticRegression().fit(x_train, y_train)

lr.score(x_train, y_train)

print('训练集得分{:.3f}'.format(lr.score(x_train, y_train)))
print('测试集得分{:.3f}'.format(lr.score(x_test, y_test)))

lr1 = LogisticRegression(C=0.01).fit(x_train, y_train)
lr1.score(x_train, y_train)
print('训练集得分{:.3f}'.format(lr1.score(x_train, y_train)))
print('测试集得分{:.3f}'.format(lr1.score(x_test, y_test)))

lr2 = LogisticRegression(class_weight='balanced').fit(x_train, y_train)
lr2.score(x_train, y_train)
print('训练集得分{:.3f}'.format(lr2.score(x_train, y_train)))
print('测试集得分{:.3f}'.format(lr2.score(x_test, y_test)))

rf = RandomForestClassifier(n_estimators=1000).fit(x_train, y_train)
rf.score(x_train, y_train)
print('训练集得分{:.3f}'.format(rf.score(x_train, y_train)))
print('测试集得分{:.3f}'.format(rf.score(x_test, y_test)))

rf2 = RandomForestClassifier(max_depth=5).fit(x_train, y_train)
rf2.score(x_train, y_train)
print('训练集得分{:.3f}'.format(rf2.score(x_train, y_train)))
print('测试集得分{:.3f}'.format(rf2.score(x_test, y_test)))

rf3 = RandomForestClassifier(bootstrap=False).fit(x_train, y_train)
rf3.score(x_train, y_train)
print('训练集得分{:.3f}'.format(rf3.score(x_train, y_train)))
print('测试集得分{:.3f}'.format(rf3.score(x_test, y_test)))

rf4 = RandomForestClassifier(oob_score=True).fit(x_train, y_train)
rf4.score(x_train, y_train)
print('训练集得分{:.3f}'.format(rf4.score(x_train, y_train)))
print('测试集得分{:.3f}'.format(rf4.score(x_test, y_test)))

lr.predict(x_train)

lr.predict_proba(x_train)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920900.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号