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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习实战第二版---第一节:数据预处理(2) -> 正文阅读

[人工智能]机器学习实战第二版---第一节:数据预处理(2)

机器学习实战第二版—第一节:数据预处理(2)

只要分为以下几点:
1.查看几个特征之间的相关性

'''
    housing.plot(kind = 'scatter',x='longitude',y='latitude',alpha = 0.1,s= housing['population']/100,label='population',figsize=(10,7),
                 c='median_house_value',cmap=plt.get_cmap('jet'),colorbar=True,)  #scatter 散点图   alpha = 0.1显示出高密度点的位置
    # s生成每个点的大小,每个数据点生成控制大小的数组 size#c 生成每个点的颜色大小,每个数据点生成控制颜色的数组 colour
    #使用一个名为jet的预定义颜色表(选项cmap)来进行可视化,颜色范围从蓝色到红色

    plt.legend()
    plt.show()
    '''
    '''
    由于数据集不大,可以使用corr()计算每队属性的标准相关关系  相关矩阵
    '''
    # corr_matrix = housing.corr()#相关矩阵
    # print(corr_matrix['median_house_value'].sort_values(ascending=False)) #查看每组与房价信息的相关性  可以根据这个提取特征 但遗漏了非线性特征


    '''
    pandas 的scatter_matrix 也可以求出其他数值的属性相关性  这里显示了4个属性 会出现4**2的图  可以明显看出收入和价值成线性相关
    '''

    # attribute = ['median_house_value', 'median_income', 'total_rooms', 'housing_median_age']
    # scatter_matrix(housing[attribute], figsize=(12, 8))
    # plt.show()
    '''
    放大看 看出收入和价值成线性相关
    '''

    # housing.plot(kind = 'scatter',x='median_income',y='median_house_value',alpha = 0.1)
    # plt.show()

    '''
    重尾:中值的右边拖的很长,而左边较短。这种分布会增加一些机器学习算法在进行模式识别时的难度。我们需要之后转化这些属性,尽量量它们的分布转为钟形分布
    可以计算其对数
    '''

2.数据清理–缺失值处理:干掉那一行,那一列,将缺失值用中值替代

########################################################### 数据清理
    '''
    '''
    处理缺失值
    1.housing.dropna(subset=['total_bedrooms'])  #删除某些空的数据
    2.housing.drop('total_bedrooms',axis=1) #整列干掉
    3.median=housing['total_bedrooms'].median()#将空的值转为话为平均值
    housing.fillna(median,inplace=True)
    
    '''
    '''
     #处理缺失值直接上轮子
    imputer = SimpleImputer(strategy='median')  #要是村数字才能算    ocean_proximity时文本
    housing_num = housing.drop('ocean_proximity',axis=1)
    imputer.fit(housing_num) #每列的中位数  为了防止在启动程序时不知道是否存在空的,索性之前全加进去
    # print(imputer.statistics_,housing_num.median().values)
    X = imputer.transform(housing_num)
    housing_tr = pd.DataFrame(X,columns=housing_num.columns,index=housing_num.index)  #放回原来的数据 dataframe
    
    '''

3.文本数据分类转换–用轮子 独热编码

'''
    文本数据分类转换
    
    #处理文本  分类的文本转文字
    housing_cat = housing[['ocean_proximity']]
    ordinal_encoder = OrdinalEncoder()
    housing_cat_ordinal = ordinal_encoder.fit_transform(housing_cat)
    print(housing_cat_ordinal,ordinal_encoder.categories_)

    ####独热编码
    cat_encoder  = OneHotEncoder()
    housing_cat_lhot = cat_encoder.fit_transform(housing_cat)
    print(housing_cat_lhot)  #输出的是一个稀疏矩阵  toarry可以形成一个numpy
    
    '''

4.数据特征缩放—归一化和标准化

对测试集进行特征缩放时采用相同的的方法,不同的是,测试集所使用的均值,标准差是训练集的均值和标准差。

全部代码:

import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
from zlib import crc32
from sklearn.model_selection import train_test_split
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OrdinalEncoder
from sklearn.preprocessing import OneHotEncoder
def loaddata(path):
    '''
    下载数据集
    :param path:
    :return:
    '''
    csvpath=os.path.join(path,'housing.csv')
    return pd.read_csv(csvpath)





if __name__ == "__main__":
    housingdata = loaddata('./')
    housing = housingdata.copy() #拷贝数据
    # print(housingdata.head(4))  #head 默认查看前五行
    # print(housingdata.describe()) #查看某种属性下的摘要 数据大小,平均值,中位数 std标准差 分位数等。。。
    # print(housingdata.info())#info也是pandas的方法  这个数据集查看简介
    # print(housingdata['count'].value_counts())  #观察到object下是分类的标签 ==查看某列的类型的值


    '''
    housing.plot(kind = 'scatter',x='longitude',y='latitude',alpha = 0.1,s= housing['population']/100,label='population',figsize=(10,7),
                 c='median_house_value',cmap=plt.get_cmap('jet'),colorbar=True,)  #scatter 散点图   alpha = 0.1显示出高密度点的位置
    # s生成每个点的大小,每个数据点生成控制大小的数组 size#c 生成每个点的颜色大小,每个数据点生成控制颜色的数组 colour
    #使用一个名为jet的预定义颜色表(选项cmap)来进行可视化,颜色范围从蓝色到红色

    plt.legend()
    plt.show()
    '''
    '''
    由于数据集不大,可以使用corr()计算每队属性的标准相关关系  相关矩阵
    '''
    # corr_matrix = housing.corr()#相关矩阵
    # print(corr_matrix['median_house_value'].sort_values(ascending=False)) #查看每组与房价信息的相关性  可以根据这个提取特征 但遗漏了非线性特征


    '''
    pandas 的scatter_matrix 也可以求出其他数值的属性相关性  这里显示了4个属性 会出现4**2的图  可以明显看出收入和价值成线性相关
    '''

    # attribute = ['median_house_value', 'median_income', 'total_rooms', 'housing_median_age']
    # scatter_matrix(housing[attribute], figsize=(12, 8))
    # plt.show()
    '''
    放大看 看出收入和价值成线性相关
    '''

    # housing.plot(kind = 'scatter',x='median_income',y='median_house_value',alpha = 0.1)
    # plt.show()

    '''
    重尾:中值的右边拖的很长,而左边较短。这种分布会增加一些机器学习算法在进行模式识别时的难度。我们需要之后转化这些属性,尽量量它们的分布转为钟形分布
    可以计算其对数
    '''

    '''
   ########################################################### 数据清理
    '''
    '''
    处理缺失值
    1.housing.dropna(subset=['total_bedrooms'])  #删除某些空的数据
    2.housing.drop('total_bedrooms',axis=1) #整列干掉
    3.median=housing['total_bedrooms'].median()#将空的值转为话为平均值
    housing.fillna(median,inplace=True)
    
    '''
    '''
     #处理缺失值直接上轮子
    imputer = SimpleImputer(strategy='median')  #要是村数字才能算    ocean_proximity时文本
    housing_num = housing.drop('ocean_proximity',axis=1)
    imputer.fit(housing_num) #每列的中位数  为了防止在启动程序时不知道是否存在空的,索性之前全加进去
    # print(imputer.statistics_,housing_num.median().values)
    X = imputer.transform(housing_num)
    housing_tr = pd.DataFrame(X,columns=housing_num.columns,index=housing_num.index)  #放回原来的数据 dataframe
    
    '''

    '''
    文本数据分类转换
    
    #处理文本  分类的文本转文字
    housing_cat = housing[['ocean_proximity']]
    ordinal_encoder = OrdinalEncoder()
    housing_cat_ordinal = ordinal_encoder.fit_transform(housing_cat)
    print(housing_cat_ordinal,ordinal_encoder.categories_)

    ####独热编码
    cat_encoder  = OneHotEncoder()
    housing_cat_lhot = cat_encoder.fit_transform(housing_cat)
    print(housing_cat_lhot)  #输出的是一个稀疏矩阵  toarry可以形成一个numpy
    
    '''
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-07 11:42:59  更:2021-07-07 11:44:09 
 
开发: 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/17 20:32:02-

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