美赛python学习d7--机器学习一:数据预处理

数据下载的地址

SuperdataScience

机器学习的概述

机器学习按实现方法可以分为监督学习和无监督学习,按问题类型可以分为回归问题和分类问题

监督学习

监督学习就是给一组输入变量和输出变量,用机器来学习和计算输入和输出的函数关系,实现以后任给一个输入预测其输出
其中输入变量又叫特征(feature),输出变量又叫标签(label),一组输入输出叫做样本
美赛python学习d7--机器学习一:数据预处理_第1张图片

回归问题和分类问题

美赛python学习d7--机器学习一:数据预处理_第2张图片
回归问题:输出变量取有限个离散值,预测一个连续值输出
分类问题:输出变量为连续型变量,预测一个离散值输出

无监督学习

无监督学习就是只有输入变量没有输出变量,用计算机分析输入变量中隐藏的规律
无监督学习常用于分类和降维,LDA模型
美赛python学习d7--机器学习一:数据预处理_第3张图片

数据预处理DataProcessing

e.g任务目标:通过下列数据预测某人会不会购买商品
美赛python学习d7--机器学习一:数据预处理_第4张图片

数据集常见的问题

  1. 缺失数据——解决方法:用当前列的平均值代替缺失的数据
  2. 分类数据——将不同类别的非数字数据转化为数字数据,使得其可以用方程表示出来
  3. 将文本数据转化为数字数据时遇到的问题:文本数据中数据没有数值的区分,但转化为数字数据后不同数据间有数字大小的不同,即无形中对数据进行了排序——解决方法:虚拟编码,增加变量的维度
  4. 不同类数据的数量级不同,需要将不同数量级的数据缩放到同一个数量级里,这就是特征缩放

数据预处理的方法

  1. 创建自变量的矩阵和因变量的向量
  2. **处理缺失数据:**运用sklearn.impute库中的Simpleimputer类处理缺失数据
  3. **处理分类数据:**用sklearn.processing中的LabelEncoder类处理只有两种(如true和false)数据类型的文本类分类数据,用OneHotDecoder类处理多种(多种国家,地区)数据类型的文本类分类数据
  4. 将数据分为测试集和训练集:运用sklearn.model_selection库中的train_test_split类将数据分为训练集和测试集
  5. 数据的特征缩放
  • Standardisation:类似于正态分布转化为标准正态分布,将数据转化到0~1范围内
  • Normalisation:类似于均匀分布,将数据转化为长度比,也是0~1范围
    美赛python学习d7--机器学习一:数据预处理_第5张图片

数据预处理代码

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.impute import SimpleImputer as Imputer
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import ColumnTransformer

dataset = pd.read_csv("Data.csv")

x = dataset.iloc[:, :-1].values

y = dataset.iloc[:, 3].values

imputer = Imputer(missing_values=np.nan, strategy='mean')

imputer = imputer.fit(x[:, 1:3])

x[:, 1:3] = imputer.transform(x[:, 1:3])

# 用虚拟变量将文本数据x转化为三维数字数据
ct = ColumnTransformer([('one_hot_encoder', OneHotEncoder(), [0])], remainder='passthrough')
x = ct.fit_transform(x)
# 用LabelEncoder方法将文本数据y转化为一维数字数据
labelencoder_y = LabelEncoder();
y = labelencoder_y.fit_transform(y)
# 将数据划分为训练集和测试集
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)
# 数据的特征缩放
from sklearn.preprocessing import StandardScaler

sc_x = StandardScaler()

x_train = sc_x.fit_transform(x_train)
x_test = sc_x.transform(x_test)

你可能感兴趣的:(数模美赛,机器学习,python,sklearn)