今天是1024欸,发个贴拿个勋章
至于为什么1024这个数字很重要,因为1024是2的10次方

系列教程

补了一个系列关于这个的实例教程
机器学习参考篇: python+sklearn+kaggle机器学习
用python+sklearn(机器学习)实现天气预报 准备
用python+sklearn(机器学习)实现天气预报数据 数据
用python+sklearn(机器学习)实现天气预报 模型和使用

0.kaggle

kaggle是一个学习ml也就是机器学习的平台
上面会有教程教如何用python写机器学习和各式各样的机器学习竞赛

1. 初级线性回归模型机器学习过程

a. 提取数据

通过pd(pandas)和sklearn下的split,从csv文件提取和分割数据集
例:

from sklearn.model_selection import train_test_split
X=pd.read_csv("/kaggle/input/home-data-for-ml-course/train.csv")
y=X.SalePrice
X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2,random_state=0)
X_train=X_train.drop(['SalePrice'],axis=1)

其中,read_csv就是从csv文件中提取数据集
train_test_split就是把一个完整的数据集和验证集以同等的比例分成2组不同的数据集和验证集
因为saleprice是我们要预测的数据,所以验证集里就只有这个的数据,而数据集里要剔除这个数据

b.数据预处理

在现实情况中,一些数据集是不完整的或数据是文本,所以要先对数据集预处理

  1. 空数据处理
    根据情况用sklearn下的imputer或drop掉丢失数据的那一列
    比如丢失数据情况小于80%就drop掉,反之就用imputer填充
  2. 分类处理
    为了把不同类型的数据转换到机器学习接受的数字类型的数据
    用sklearn库下的hotlablel或者label把非数字数值分类
    前者是把每一个非数值都新建一个列存放,后者是把每一个非数值标号,为了达到最高效,应该把种类数目不一样的列表分别处理,比如种类少就用hotlable,多就用label
  3. (进阶操作)pineline
    用pineline组合以上的预处理步骤步骤

例:

from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OneHotEncoder
from sklearn.ensemble import RandomForestRegressor
from sklearn.preprocessing import LabelEncoder # Preprocessing for numerical data
numerical_transformer = SimpleImputer(strategy='constant') # Preprocessing for categorical data
categorical_transformer = Pipeline(steps=[
('imputer', SimpleImputer(strategy='most_frequent')),
('onehot', OneHotEncoder(handle_unknown='ignore'))
])
# Preprocessing for categorical data
categorical_transformer_1 = Pipeline(steps=[
('imputer', SimpleImputer(strategy='most_frequent')),
('LabelEncoder', LabelEncoder())
])
object_cols=[col for col in X_train.columns if X_train[col].dtype=='object']
# Bundle preprocessing for numerical and categorical data
preprocessor = ColumnTransformer(
transformers=[
('num', numerical_transformer, [col for col in X_train.columns if not X_train[col].dtype=='object']),
('cat', categorical_transformer, object_cols)
])

其中object_cols数组是指数据类型非数字的列表

c.训练模型

先选择模型,比如XGB或者随机树(randomforest)
然后用fit来训练模型
例:

from xgboost import XGBRegressor
# Define model
model = XGBRegressor(n_estimators=5000, random_state=0,learning_rate=0.01,n_jobs=4) # Bundle preprocessing and modeling code in a pipeline
clf = Pipeline(steps=[('preprocessor', preprocessor),
('model', model)
]) # Preprocessing of training data, fit model
clf.fit(X_train, y_train)

d.根据数据预测

用predict函数
例:

X_test=pd.read_csv("/kaggle/input/home-data-for-ml-course/test.csv")
pre=clf.predict(X_test)

e.验证

用MAE(mean_absolute_error)方法算出这个模型的分数(准确度)
例:

from sklearn.metrics import mean_absolute_error
a=mean_absolute_error(y_valid,pre)

kaggle.com平台上都有详细的教程
其实学完后在简单的比赛拿top10%也是挺容易的

python+sklearn+kaggle机器学习的更多相关文章

  1. [Python]-sklearn模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载数据集

    <Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...

  2. 用python+sklearn(机器学习)实现天气预报数据 模型和使用

    用python+sklearn机器学习实现天气预报 模型和使用 项目地址 系列教程 0.前言 1.建立模型 a.准备 引入所需要的头文件 选择模型 选择评估方法 获取数据集 b.建立模型 c.获取模型 ...

  3. 用python+sklearn(机器学习)实现天气预报数据 数据

    用python+sklearn机器学习实现天气预报 数据 项目地址 系列教程 勘误表 0.前言 1.爬虫 a.确认要被爬取的网页网址 b.爬虫部分 c.网页内容匹配取出部分 d.写入csv文件格式化 ...

  4. 用python+sklearn(机器学习)实现天气预报 准备

    用python+sklearn机器学习实现天气预报 准备 项目地址 系列教程 0.流程介绍 1. 环境搭建 a.python b.涉及到的机器学习相关库 sklearn panda seaborn j ...

  5. 如何使用Python在Kaggle竞赛中成为Top15

    如何使用Python在Kaggle竞赛中成为Top15 Kaggle比赛是一个学习数据科学和投资时间的非常的方式,我自己通过Kaggle学习到了很多数据科学的概念和思想,在我学习编程之后的几个月就开始 ...

  6. Python 3 利用机器学习模型 进行手写体数字识别

    0.引言 介绍了如何生成数据,提取特征,利用sklearn的几种机器学习模型建模,进行手写体数字1-9识别. 用到的四种模型: 1. LR回归模型,Logistic Regression 2. SGD ...

  7. 入门系列之Scikit-learn在Python中构建机器学习分类器

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由信姜缘 发表于云+社区专栏 介绍 机器学习是计算机科学.人工智能和统计学的研究领域.机器学习的重点是训练算法以学习模式并根据数据进行预 ...

  8. 初识TPOT:一个基于Python的自动化机器学习开发工具

    1. TPOT介绍 一般来讲,创建一个机器学习模型需要经历以下几步: 数据预处理 特征工程 模型选择 超参数调整 模型保存 本文介绍一个基于遗传算法的快速模型选择及调参的方法,TPOT:一种基于Pyt ...

  9. 用python参加Kaggle的经验总结【转】

    用python参加Kaggle的经验总结 转载自:http://www.jianshu.com/p/32def2294ae6,作者 JxKing    最近挤出时间,用python在kaggle上试了 ...

随机推荐

  1. 【Alpha冲刺阶段】Scrum Meeting Daily6

    [Alpha冲刺阶段]Scrum Meeting Daily6 1.会议简述 会议开展时间 2020/5/27 8:00 - 8:15 PM 会议基本内容摘要 每日汇报 个人进度.遇到的困难.明日的计 ...

  2. 手写线程池,对照学习ThreadPoolExecutor线程池实现原理!

    作者:小傅哥 博客:https://bugstack.cn Github:https://github.com/fuzhengwei/CodeGuide/wiki 沉淀.分享.成长,让自己和他人都能有 ...

  3. 【题解】Generator(UVA1358)

    感觉我字符串和期望都不好-- 题目链接 题意 有 \(n\) 种字符,给定一个模式串 \(S\) ,一开始字符串为空,现在每次随机生成一个 1~n 的字符添加到字符串末尾,直到出现 \(S\) 停止, ...

  4. KVM初体验之virt-manager unable to connect to libvirt的处理办法

    解决方法 需要用root身份运行virt-manager

  5. DVWA各等级文件上传漏洞

    file upload 文件上传漏洞,攻击者可以通过上传木马获取服务器的webshell权限. 文件上传漏洞的利用是 够成功上传木马文件, 其次上传文件必须能够被执行, 最后就是上传文件的路径必须可知 ...

  6. vscode vue快速新建模板

    vscode 文件=>首选项 =>用户代码片段 =>新建全局代码片段     {     "Print to console": {         " ...

  7. Python高级语法-私有属性-with上下文管理器(4.7.3)

    @ 目录 1.说明 2.代码 关于作者 1.说明 上下文管理器 这里使用with open操作文件,让文件对象实现了自动释放资源.我们也能自定义上下文管理器,通过__enter__()和__exit_ ...

  8. GDB —— 优化STL容器变量的显示

    步骤 wget http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt cp dbinit_stl_views-1.03.txt ...

  9. 《Spring Boot 实战纪实》之关键点文档

    目录 前言 (思维篇)人人都是产品经理 1.需求文档 1.1 需求管理 1.2 如何攥写需求文档 1.3 需求关键点文档 2 原型设计 2.1 缺失的逻辑 2.2 让想法跃然纸上 3 开发设计文档 3 ...

  10. Windows Server 2016介绍与安装

    版本介绍 Windows Server 2016 Essentials edition Windows Server 2016 Essentials版是专为小型企业而设计的.它对应于Windows S ...