IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python数据预处理:补充缺失数据,划分训练集和测试集 -> 正文阅读

[Python知识库]python数据预处理:补充缺失数据,划分训练集和测试集

  1. 算法处理的是数据,不是字符串,也不是布尔值True或者False。

  2. 不可以删除数据。可以求平均值

  3. 对于字符串类型以及布尔类型的分类数据。需要转换成0,1,2这样的数字索引。

1. 导入数据,划分自变量、因变量,补充缺失值


import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
dataset=pd.read_csv('Data2.csv')

X=dataset.iloc[:,:-1].values# 取每一行的前3列
y=dataset.iloc[:,3].values# 取所有行的最后一列

# 用平均数补充缺失值
from sklearn.impute import SimpleImputer
imputer=SimpleImputer(missing_values=np.nan,strategy="mean")
imputer=imputer.fit(X[:,1:3])
X[:,1:3]=imputer.transform(X[:,1:3])```

使用数据如下:

Country Age Salary Purchased
0 France 44.0 72000.0 No
1 Spain 27.0 48000.0 Yes
2 Germany 30.0 54000.0 No
3 Spain 38.0 61000.0 No
4 Germany 40.0 NaN Yes
5 France 35.0 58000.0 Yes
6 Spain NaN 52000.0 No
7 France 48.0 79000.0 Yes
8 Germany 50.0 83000.0 No
9 France 37.0 67000.0 Yes

2. 字符串编码成数字或onehot

直接对字符编码成1,2,3的缺点

本来平等的字符串,变成1,2,3之后,好像有先后或者大小顺序了。这不太好,所以要用onehot编码。

#直接编码成数字
from sklearn.preprocessing import LabelEncoder
labelencoder_y=LabelEncoder()
y=labelencoder_y.fit_transform(y)

labelencoder_X=LabelEncoder()
X[:,0]=labelencoder_X.fit_transform(X[:,0])

# 改成onehot编码,只对第一列就可以
#onehot编码
from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
onehotencoder = ColumnTransformer([('encoder', OneHotEncoder(), [0])], remainder = 'passthrough')

X = onehotencoder.fit_transform(X)

3. 划分训练集与测试集

#from sklearn.cross_validation import train_test_split
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=0)

4. 特征缩放

避免因为数据量级的不同导致不同特征对结果的影响不同。
特征缩放有两种方式:

  1. 标准化
  2. 归一化
    标准化:

在这里插入图片描述
归一化
在这里插入图片描述

#工资比年龄的数字大,所以需要进行特征缩放
from sklearn.preprocessing import StandardScaler

standardScaler=StandardScaler()
X_train=standardScaler.fit_transform(X_train)
X_test=standardScaler.transform(X_test)

步骤回顾

  1. pandas导入数据
  2. 自变量和因变量分离
  3. 缺失值处理
  4. 字符串变成数字
  5. 划分训练集和测试集
  6. 特征缩放

注意事项总结:

  1. 不能有数据缺失的情况
  2. 所有分类类型的数据变成数字类型的数据
  3. 特征缩放。算法不能知道哪个特征更重要,不能让某个特征主导了计算结果。应该让不同的特征无差别地影响结果

预处理的好处是能够更快地收敛,更接近真实的结果,会极大地减少训练的时间,提升预测的准确度。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 11:48:54  更:2022-04-28 11:50:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:00:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码