模型实例_逻辑回归

Introduction to scikit-learn¶# 举个例⼦,我⽤⼀个Kaggle竞赛的经典数据集,关于泰坦尼克号# 乘客的⽣还率。我们⽤pandas加载测试和训练数据集:# 13.4 scikit-learn介绍# scikit-learn是⼀个⼴泛使⽤、⽤途多样的Python机器学习库。它# 包含多种标准监督和⾮监督机器学习⽅法和模型选择和评估、数# 据转换、数据加载和模型持久化⼯具。这些模型可以⽤于分类、# 聚合、预测和其它任务。# 举个例⼦,我⽤⼀个Kaggle竞赛的经典数据集,关于泰坦尼克号# 乘客的⽣还率。我们⽤pandas加载测试和训练数据集:train = pd.read_csv('C:/data/titanic/train.csv')test = pd.read_csv('C:/data/titanic/test.csv')train[:4]PassengerId  Survived  Pclass  Name  Sex  Age  SibSp  Parch  Ticket  Fare  Cabin  Embarked0  1  0  3  Braund, Mr. Owen Harris  male  22.0  1  0  A/5 21171  7.2500  NaN  S1  2  1  1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0  1  0  PC 17599  71.2833  C85  C2  3  1  3  Heikkinen, Miss. Laina  female  26.0  0  0  STON/O2. 3101282  7.9250  NaN  S3  4  1  1  Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0  1  0  113803  53.1000  C123  Sstatsmodels和scikit-learn通常不能接收缺失数据,因此我们要查# 看列是否包含缺失值:# statsmodels和scikit-learn通常不能接收缺失数据,因此我们要查# 看列是否包含缺失值:train.isnull().sum()test.isnull().sum()PassengerId      0Pclass           0Name             0Sex              0Age             86SibSp            0Parch            0Ticket           0Fare             1Cabin          327Embarked         0dtype: int64在统计和机器学习的例⼦中,根据数据中的特征,⼀个典型的任# 务是预测乘客能否⽣还。模型现在训练数据集中拟合,然后⽤样# 本外测试数据集评估。# 我想⽤年龄作为预测值,但是它包含缺失值。缺失数据补全的⽅# 法有多种,我⽤的是⼀种简单⽅法,⽤训练数据集的中位数补全# 两个表的空值:# 在统计和机器学习的例⼦中,根据数据中的特征,⼀个典型的任# 务是预测乘客能否⽣还。模型现在训练数据集中拟合,然后⽤样# 本外测试数据集评估。# 我想⽤年龄作为预测值,但是它包含缺失值。缺失数据补全的⽅# 法有多种,我⽤的是⼀种简单⽅法,⽤训练数据集的中位数补全# 两个表的空值:impute_value = train['Age'].median()train['Age'] = train['Age'].fillna(impute_value)test['Age'] = test['Age'].fillna(impute_value)# 现在我们需要指定模型。我增加了⼀个列IsFemale,作# 为"Sex"列的编码:# 判断性别,年龄train['IsFemale'] = (train['Sex'] == 'female').astype(int)test['IsFemale'] = (test['Sex'] == 'female').astype(int)predictors = ['Pclass', 'IsFemale', 'Age']X_train = train[predictors].valuesX_test = test[predictors].valuesy_train = train['Survived'].valuesX_train[:5]y_train[:5]array([0, 1, 1, 1, 0], dtype=int64)# 我们⽤scikit•learn的LogisticRegression模型,创建⼀个模型实例:from sklearn.linear_model import LogisticRegressionmodel = LogisticRegression()# 现在,我们可以⽤model.predict,对测试数据进⾏预测:model.fit(X_train, y_train)C:\ProgramData\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.  FutureWarning)LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,                   intercept_scaling=1, l1_ratio=None, max_iter=100,                   multi_class='warn', n_jobs=None, penalty='l2',                   random_state=None, solver='warn', tol=0.0001, verbose=0,                   warm_start=False)现在,我们可以⽤model.predict,对测试数据进⾏预测:# 现在,我们可以⽤model.predict,对测试数据进⾏预测:y_predict = model.predict(X_test)y_predict[:10]array([0, 0, 0, 0, 1, 0, 1, 0, 1, 0], dtype=int64)(y_true == y_predict).mean()# 交叉验证通过分割训练数据来模拟样本外预测。基于模型的精度# 得分(⽐如均⽅差),可以对模型参数进⾏⽹格搜索。有些模# 型,如logistic回归,有内置的交叉验证的估计类。例如,# logisticregressioncv类可以⽤⼀个参数指定⽹格搜索对模型的正# 则化参数C的粒度:from sklearn.linear_model import LogisticRegressionCVmodel_cv = LogisticRegressionCV(10)model_cv.fit(X_train, y_train)C:\ProgramData\Anaconda3\lib\site-packages\sklearn\model_selection\_split.py:1978: FutureWarning: The default value of cv will change from 3 to 5 in version 0.22. Specify it explicitly to silence this warning.  warnings.warn(CV_WARNING, FutureWarning)LogisticRegressionCV(Cs=10, class_weight=None, cv='warn', dual=False,                     fit_intercept=True, intercept_scaling=1.0, l1_ratios=None,                     max_iter=100, multi_class='warn', n_jobs=None,                     penalty='l2', random_state=None, refit=True, scoring=None,                     solver='lbfgs', tol=0.0001, verbose=0)# 要⼿动进⾏交叉验证,你可以使⽤cross_val_score帮助函数,它# 可以处理数据分割。例如,要交叉验证我们的带有四个不重叠训# 练数据的模型,可以这样做:from sklearn.model_selection import cross_val_scoremodel = LogisticRegression(C=10)scores = cross_val_score(model, X_train, y_train, cv=4)scoresC:\ProgramData\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.  FutureWarning)C:\ProgramData\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.  FutureWarning)C:\ProgramData\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.  FutureWarning)C:\ProgramData\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.  FutureWarning)array([0.7723, 0.8027, 0.7703, 0.7883])

Original: https://blog.51cto.com/u_10055401/5482342
Author: 六mo神剑
Title: 模型实例_逻辑回归

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/513613/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 3.视图与路由

    在Django中,我们一遍将视图代码放在项目同名文件夹下的views.py中,views.py需要我们自行创建,路由我们放在项目同名文件夹下的urls.py中,urls.py在创建…

    Python 2023年8月5日
    031
  • ViewPager2 使用说明书

    零、Demo 如果对你有用,希望能给个 star,谢谢。 一、功能 官方关于使用 ViewPager2 创建滑动视图的说明: Swipe views allow you to na…

    Python 2023年6月6日
    069
  • Hadoop常用shell操作(持续更新)

    Hadoop开启单节点DataNode hdfs –daemon start datanodeHadoop开机单节点yarn yarn –daemon start nodema…

    Python 2023年6月12日
    071
  • Python处理Excel,学会这十四个方法,工作量减少大半!

    现在Python横行的年代,财务、人事、行政等等岗位多少得学点Python,省事又不费脑!所有操作都用Python自动实现,加班?不存在的! excel和python其实都是工具,…

    Python 2023年5月25日
    069
  • python之修改某个单元格数据

    抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。 Original: https://blo…

    Python 2023年8月22日
    034
  • dataframe 绘图——按照每列出一个图(df.plot)

    主要利用dataframe.plot绘图:对每一列绘制折线图,并在一张图显示。 使用DataFrame的plot方法绘制图像会按照数据的每一列绘制一条曲线,默认按照列columns…

    Python 2023年8月8日
    065
  • python做游戏怎么实现窗口_python和py游戏窗口类

    你在draw_sprite()中有事件循环,所以它一直运行到游戏结束,window.set_background永远不会执行。在 您的代码构造不正确。在 我试着更正它,稍后再发送代…

    Python 2023年9月21日
    056
  • python怎么处理通达信ctp接口数据?

    通达信ctp接口使用的socket数据处理又叫套接字,可以理解为是一个应用程序的地址,是实现网络通信的关键。我们可以通过IP找到一台主机,可以通过主机的端口找到该主机上的某个应用程…

    Python 2023年8月7日
    054
  • docker学习:docker镜像

    镜像是什么 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。 Uni…

    Python 2023年6月12日
    071
  • 基于Python-django餐厅点餐及推荐系统

    随着时代的发展,人们的生活压力也越来越大。在忙碌的工作和学习了之后,通常会选择到餐厅进行就餐。这样不仅能够品尝到美味的食品,而且能够更加快捷方便的进行就餐从,从而更好的投入到学习和…

    Python 2023年8月4日
    050
  • scrapy twisted mysql_Scrapy+twisted 异步MySQL批量提交不报错

    Scrapy+twisted 异步MySQL批量提交不报错 在正常情况下,默认1000个item执行一次插入,如果爬虫爬取结束,就将剩下的都插入 每1000个的插入如果出错,会报出…

    Python 2023年10月6日
    039
  • JS新年倒计时

    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。🍎个人主页:Java Fans的博客🍊个人信条:不迁怒,不贰过。小知识,大智慧。💞当前专栏:前端案例分享专栏✨特色专栏…

    Python 2023年9月25日
    047
  • 关于.Net和Java的看法-一个小实习生经历

    笔者是一个专科院校的一名普通学生,目前就职于某三线城市的WEB方面.Net开发实习生,在找实习期间和就业期间的一些看法,发表此文,纯个人想法,欢迎讨论,指正!哈哈轻点喷~ 在校学习…

    Python 2023年10月15日
    033
  • 第3章 数据分析工具Pandas

    1,掌握 数据结构分析,索引操作及高级索引 2,掌握 算术运算与数据对齐,数据排序 3,掌握 统计计算与描述 ,层次化索引 4,掌握 读写数据操作 Pandas中有两个主要的数据结…

    Python 2023年8月17日
    038
  • 一、Scrapy爬虫概述

    好的,您可以按照以下步骤创建 项目: 1. 安装 可以在命令行中输入以下命令安装: </p> <p>pip install</p> <p&…

    Python 2023年10月1日
    029
  • 打破“双十定律”,华为云AI推动超级抗菌药Drug X研发加速

    摘要:学科交叉已经逐渐变成了科技创新的一个主要源泉,成为这个科学时代一个不可替代的研究范式。在科技与技术合力赋能之下,中国科研人创新奋斗再出新成果,人类与病菌的博弈因此有了新武器。…

    Python 2023年10月28日
    051
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球