python+sklearn+kaggle机器学习
今天是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.数据预处理
在现实情况中,一些数据集是不完整的或数据是文本,所以要先对数据集预处理
- 空数据处理
根据情况用sklearn下的imputer或drop掉丢失数据的那一列
比如丢失数据情况小于80%就drop掉,反之就用imputer填充 - 分类处理
为了把不同类型的数据转换到机器学习接受的数字类型的数据
用sklearn库下的hotlablel或者label把非数字数值分类
前者是把每一个非数值都新建一个列存放,后者是把每一个非数值标号,为了达到最高效,应该把种类数目不一样的列表分别处理,比如种类少就用hotlable,多就用label - (进阶操作)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机器学习的更多相关文章
- [Python]-sklearn模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载数据集
<Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...
- 用python+sklearn(机器学习)实现天气预报数据 模型和使用
用python+sklearn机器学习实现天气预报 模型和使用 项目地址 系列教程 0.前言 1.建立模型 a.准备 引入所需要的头文件 选择模型 选择评估方法 获取数据集 b.建立模型 c.获取模型 ...
- 用python+sklearn(机器学习)实现天气预报数据 数据
用python+sklearn机器学习实现天气预报 数据 项目地址 系列教程 勘误表 0.前言 1.爬虫 a.确认要被爬取的网页网址 b.爬虫部分 c.网页内容匹配取出部分 d.写入csv文件格式化 ...
- 用python+sklearn(机器学习)实现天气预报 准备
用python+sklearn机器学习实现天气预报 准备 项目地址 系列教程 0.流程介绍 1. 环境搭建 a.python b.涉及到的机器学习相关库 sklearn panda seaborn j ...
- 如何使用Python在Kaggle竞赛中成为Top15
如何使用Python在Kaggle竞赛中成为Top15 Kaggle比赛是一个学习数据科学和投资时间的非常的方式,我自己通过Kaggle学习到了很多数据科学的概念和思想,在我学习编程之后的几个月就开始 ...
- Python 3 利用机器学习模型 进行手写体数字识别
0.引言 介绍了如何生成数据,提取特征,利用sklearn的几种机器学习模型建模,进行手写体数字1-9识别. 用到的四种模型: 1. LR回归模型,Logistic Regression 2. SGD ...
- 入门系列之Scikit-learn在Python中构建机器学习分类器
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由信姜缘 发表于云+社区专栏 介绍 机器学习是计算机科学.人工智能和统计学的研究领域.机器学习的重点是训练算法以学习模式并根据数据进行预 ...
- 初识TPOT:一个基于Python的自动化机器学习开发工具
1. TPOT介绍 一般来讲,创建一个机器学习模型需要经历以下几步: 数据预处理 特征工程 模型选择 超参数调整 模型保存 本文介绍一个基于遗传算法的快速模型选择及调参的方法,TPOT:一种基于Pyt ...
- 用python参加Kaggle的经验总结【转】
用python参加Kaggle的经验总结 转载自:http://www.jianshu.com/p/32def2294ae6,作者 JxKing 最近挤出时间,用python在kaggle上试了 ...
随机推荐
- WinForm 加载大数据时不闪烁的ListView
自己之前做小工具的时候,遇到这个问题,记录一下... namespace 相册处理 { //将ListView重载为此新类,解决加载过程中闪烁的问题 //在designer.cs中改写: //priv ...
- 连接数从异常到 300 到 5(RDS MySQL 的一个大坑•后记)
在 <记 RDS MySQL 的一个大坑> 中,我提到遇到 User juxxxxxxxxxx already has more than 'max_user_connections' a ...
- 用STM32定时器测量信号频率——测频法和测周法[原创cnblogs.com/helesheng]
工业测试与控制系统中,经常需要对未知信号的频率进行测试.对于10MHz以下的信号,用单片机(MCU)定时器完成这项任务显然是最常见和最佳的选择.目前性价比最高的单片机STM32拥有功能强大且数量众多的 ...
- react项目引入使用element-react报错
解决办法 npm i react-hot-loader@next -D
- chrome打开Axure Rp导出的html文件提示需要安装Axure Rp插件解决办法
1.确保chrome安装了Axure Rp扩展插件,如果按照页面的提示去下载,但是打不开的话就是被墙了,贴上科学的上网梯子https://www.lanzous.com/i7i0wuh,直接下载打开就 ...
- Vmare虚拟机网络连接方式桥接模式+桥接模式+主机模式
虚拟机网络连接模式 最近在学习虚拟机和计算机网络,在网上看了一些关于虚拟机网络连接方式的介绍 这篇文章写的不错:https://www.cnblogs.com/luxiaodai/p/9947343. ...
- Zabbix 新版微信告警-转载
Zabbix 新版微信告警 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信 ...
- 验证pdf文件的电子章签名
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- 【漏洞复现】Struts2-045分析(CVE-2017-5638)
如果需要大佬写好的脚本,可以直接去github上面搜 struts2 - 045 一个还比较出名的漏洞,因为涉及到利用Gopher协议反弹shell,所以写篇文章来简单学习下这个漏洞. Struts2 ...
- WP | [MRCTF2020]Ezpop
2020.10.14 最近开始努力提高代码能力 题目代码 Welcome to index.php <?php //flag is in flag.php //WTF IS THIS? //Le ...
