黄佳《零基础学机器学习》chap1笔记(代码片段)

临风而眠 临风而眠     2022-12-14     591

关键词:

黄佳 《零基础学机器学习》 chap1笔记

这本书实在是让我眼前一亮!!! 感觉写的真的太棒了!

文章目录

第1课 机器学习快速上手路径—— 唯有实战

1.1 机器学习族谱

参考:用mermaid在typora中画思维导图

  • 下图使用mermaid在typora中绘制
  • 一些常见的机器学习应用场景和机器学习模型
机器学习种类 监督学习 无监督学习 半监督学习 强化学习 标签为连续值 标签为离散值 无标签 标签为连续值 环境和奖惩 回归 分类 聚类 关联规则 分类 聚类 对话系统 自动控制 价格预测
趋势预测
疾病检测
人脸识别
市场营销 购物篮分析 电子邮件
文档分类
生物信息处理 聊天机器人 自动驾驶

1.2 云环境

  • Kaggle 和 Colab 都挺好用的

入门实践:推断加州房价

  • 读取数据

    Kaggle的话注意打开Internet On的按钮

    import pandas as pd #导入Pandas,用于数据读取和处理
    # 读入房价数据,示例代码中的文件地址为internet链接,读者也可以下载该文件到本机进行读取
    # 如,当数据集和代码文件位于相同本地目录,路径名应为"./house.csv",或直接放"house.csv"亦可
    df_housing = pd.read_csv("https://raw.githubusercontent.com/huangjia2019/house/master/house.csv") 
    df_housing.head() #显示加州房价数据
    

  • 这是加州各地区房价的整体统计信息(不是 一套套房子的价格信息),是1990年的人口普查结果之一,共包含17 000个样本。其中包含每一个具体地区的经度(longitude)、纬度 (latitude)、房屋的平均年龄(housing_median_age)、房屋数量 (total_rooms)、家庭收入中位数(median_income)等信息,这些信息都是加州地区房价的特征。数据集最后一列“房价中位数” (median_house_value)是标签。

  • 这个机器学习项目的目标,就是根据已有的数据样本,对其特征进行推理归纳,得到一个函数模型后,就可以用它推断加州其他地区的房价中位数。

  • 构建特征集和标签集

    X = df_housing.drop("median_house_value",axis = 1) #构建特征集X
    y = df_housing.median_house_value #构建标签集y
    
    • 上面的代码使用drop方法,把最后一列median_house_value字段去 掉,其他所有字段都保留下来作为特征集X,而这个median_house_value 字段就单独赋给标签集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) #以80%/20%的比例进行数据集的拆分
    
    • 现在要把数据集一分为二,80%用于机器训练(训练数据集),剩下的留着做测试(测试数据集)如下段代码所示。这也就是告诉机器:你看,拥有这些特征的地方,房价是这样的,等一会儿你想个办法给我猜猜另外20%的地区的房价。
    • 其实,另外20%的地区的房价数据,本来就有了,但是我们假装不知道,故意让机器用自己学到的模型去预测。所以,之后通过比较预测值和真值,才知道机器“猜”得准不准,给模型打分
  • 选定模型,训练机器,拟合函数,确定参数

    from sklearn.linear_model import LinearRegression #导入线性回归算法模型
    model = LinearRegression() #使用线性回归算法
    model.fit(X_train, y_train) #用训练集数据,训练机器,拟合函数,确定参数
    
    • 首先选择LinearRegression(线性回归)作为这个机器学习的模型,这是选定了模型的类型,也就是算法;
    • 然后通过其中的fit方法来训练机器,进行函数的拟合。拟合意味着找到最优的函数去模拟训练集中的输入(特征)和目标(标签)的关系,这是确定模型的参数。
  • 利用模型进行预测

    y_pred = model.predict(X_test) #预测测试集的Y值
    print ('房价的真值(测试集)',y_test)
    print ('预测的房价(测试集)',y_pred)
    
  • 给预测打分

    print("给预测评分:", model.score(X_test, y_test)) #评估预测结果
    

    Sklearn线性回归模型的score属性给出的是R2分数, 它是一个机器学习模型的评估指标,给出的是预测值的方差与总体方 差之间的差异

  • 可视化

    import matplotlib.pyplot as plt #导入matplotlib画图库
    #用散点图显示家庭收入中位数和房价中位数的分布
    plt.scatter(X_test.median_income, y_test,  color='brown')
    #画出回归函数(从特征到预测标签)
    plt.plot(X_test.median_income, y_pred, color='green', linewidth=1)
    plt.xlabel('Median Income') #X轴-家庭收入中位数
    plt.ylabel('Median House Value') #Y轴-房价中位数
    plt.show() #显示房价分布和机器习得的函数图形
    

    • 轴的特征太多,无法全部展示,选择了与房价关系最密切的 “家庭收入中位数”median_income作为代表特征来显示散点图。
    • 图中的点就是家庭收入/房价分布,而绿色线就是机器学习到的函数模 型,很粗放,都是一条一条的线段拼接而成,但是仍然不难看出,这 个函数模型大概拟合了一种线性关系。

1.3 基本的机器学习术语

术语定义数学描述示例
数据集数据的集合 ( X 1 , y 1 ) , ⋯   . ( X n , y n ) \\(X_1,y_1),\\cdots.(X_n,y_n)\\ (X1,y1),.(Xn,yn)1000个北京市房屋的面积、楼层、位置、朝向,以及部分房价信息的数据集
样本数据集中的一条具体记录 ( X 1 , y 1 ) \\(X_1,y_1)\\ (X1,y1)一个房屋的数据记录
特征用于描述数据的输入变量 x 1 , x 2 , ⋯   . x n \\x_1,x_2,\\cdots.x_n\\ x1,x2,.xn也是一个向量面积( x 1 x_1 x1)、楼层( x 2 x_2 x2)、位置( x 3 x_3 查看详情

零基础学python--机器学习:特征提取(代码片段)

@TOC特征提取学习目标应用DictVectorizer实现对类别特征进行数值化、离散化应用CountVectorizer实现对文本特征进行数值化应用TfidfVectorizer实现对文本特征进行数值化说出两种文本特征提取的方式区别什么是特征提取呢?1.特征提取将... 查看详情

零基础学python--机器学习:数据集及特征工程介绍(代码片段)

@TOC一、数据集1.可用数据集公司内部百度数据接口花钱学习阶段可用的数据集:1.sklearn,2.kaggle,3.UCIKaggle网址:https://www.kaggle.com/datasetsUCI数据集网址:http://archive.ics.uci.edu/ml/scikit-learn网址:http://scikit-learn.org/stable/datasets/ind 查看详情

机器学习入门

...习​​​​4机器学习应用​​1机器学习概述参考文献:黄佳《零基础学机器学习》这里可能会有些乱机器学习和人工智能的关系是什么样的这种热点的形成有多方面的原因。首先,是数据。在​​大数据时代,我们终于拥有了... 查看详情

电路理论基础学习笔记:chap1电路元件与电路基本定律

电路理论基础学习笔记(2):chap1电路元件与电路基本定律教材:《电路理论基础》哈尔滨工业大学电工基础教研室编文章目录电路理论基础学习笔记(2):chap1电路元件与电路基本定律&1.1.电流、电压、电功率一、电流1.定义ÿ... 查看详情

机器学习之概率统计基础,机器学习学习笔记----07

机器学习之概率统计基础文章目录机器学习之概率统计基础一、条件概率二、贝叶斯公式三、独立性注:本图片来源于《机器学习中的数学》一书一、条件概率在一个情况发生的情况下,另一个情况的概率二、贝叶斯公... 查看详情

零基础学python--机器学习:人工智能与机器学习概述

@TOC一、机器学习与人工智能、深度学习了解机器学习定义以及应用场景说明机器学习算法监督学习与无监督学习的区别说明监督学习中的分类、回归特点说明机器学习算法目标值的两种数据类型说明机器学习(数据挖掘)的开发流... 查看详情

零基础学python--机器学习:机器学习算法和开发

@TOC一、机器学习算法分类1.分析1.2中的例子分类问题特征值:猫/狗的图片;目标值:猫/狗-类别分类问题↑回归问题特征值:房屋的各个属性信息;回归问题无监督学习特征值:人物的各个属性信息;目标值:无无监督学习2.总... 查看详情

动手学深度学习v2课程笔记—深度学习基础(代码片段)

参考文章与视频:一、深度学习介绍1.AI地图:符号学—>统计—>机器学习2.应用:广告点击的案例广告排名的三个步骤:(这个和听过的一个讲座一样:社会计算+广告学)触发广告每个广告的点... 查看详情

composingprograms(sicppython版)chap1笔记(代码片段)

《ComposingPrograms》(SICPpython版)chap1笔记持续更新中在学习CS61A2022fall的时候配着看的文章目录《ComposingPrograms》(SICPpython版)chap1笔记Chapter1:BuildingAbstractionswithFunctions1.1GettingStarted1.1.1ProgramminginPython1.1.2In 查看详情

linuxc编程一站式学习笔记1(代码片段)

LinuxC编程一站式学习笔记chap1程序的基本概念打算重学计算机,重学C语言这本书的前言写的真好实在是惭愧…文章目录LinuxC编程一站式学习笔记chap1程序的基本概念一.程序和编程语言1.什么是程序2.程序由指令组成3.编程语言... 查看详情

机器学习基础教程笔记---机器学习概述(代码片段)

目录机器学习概述1.1人工智能概述1.1.1机器学习与人工智能、深度学习1.1.2机器学习、深度学习能做些什么1.1.3人工智能阶段课程安排1.2什么是机器学习1.2.1定义1.2.2解释1.2.3数据集构成1.3机器学习算法分类学习目标分析1.2中的例子... 查看详情

机器学习之概率统计基础,机器学习学习笔记----08

机器学习之概率统计基础,机器学习学习笔记----08离散型的随机变量对于任意的我们获取的一组随机变量,最关注的是哪些要素呢?来列举一下:第一:随机变量的取值。显然这个是我们首先需要关注的,... 查看详情

韩顺平循序渐进学java零基础学习笔记(代码片段)

第01章内容介绍内容介绍学习前的话就业方向开发场景应用领域内容梳理第02章Java概述程序举例Java故事Java特性SublimeJdk介绍JVM是一个虚拟的计算机,具有指令集并使用不同存储区域。负责执行指令,管理数据、内存、寄存... 查看详情

从零开始学深度学习编译器十二,mlirtoytutorials学习笔记一(代码片段)

本笔记由学习MLIRTutorials总结而成,欢迎批评指正。Chapter1:Toy语言和ASTMLIR提供了一种Toy语言来说明MLIR的定义和执行的流程。Toy语言是一种基于张量的语言,我们可以使用它来定义函数,执行一些数学计算以及输出结果... 查看详情

机器学习基础教程笔记---机器学习概述(代码片段)

目录机器学习概述1.1人工智能概述1.1.1机器学习与人工智能、深度学习1.1.2机器学习、深度学习能做些什么1.1.3人工智能阶段课程安排1.2什么是机器学习1.2.1定义1.2.2解释1.2.3数据集构成1.3机器学习算法分类学习目标分析1.2中的例子... 查看详情

从零开始学深度学习编译器十四,mlirtoytutorials学习笔记之部分lowering(代码片段)

0x0.前言这篇笔记是阅读ToyTutorials的第五章之后总结的,这一节主要讲的是将ToyDialectLowering的部分OperationLowering到AffineDialect,MemRefDialect和StandardDialect,而toy.print操作保持不变,所以又被叫作部分Lowering。通过这个Low... 查看详情

java零基础_零基础学java必备的学习笔记开发环境搭建-常见dos命令

最近发现很多刚学Java的小伙伴希望我更新一些基础的文章这其实也是我一直想写的,我决定从今天开始分享给大家,Java零基础的一系列知识点。也是我之前在学习Java过程中的关于Java基础部分的笔记,比较详细,内容也比较多... 查看详情