《机器学习实战》(七)-- LinearRegression

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://mp.csdn.net/mdeditor/100577083

绪言

我最近开始入门机器学习,使用的书是《机器学习实战》(Peter Harrington 著),为了巩固学习成果,决定写一系列日志,内容是总结性的,会做一些思维导图,写一些我学习时不懂的模块,函数语法等,但不涉及具体算法的实现(不具备教程性质)。
本文是系列日志的第七篇 – LinearRegression。

Xmind

在这里插入图片描述

模块语法

NumPy

linalg.det()

linalg.det()的作用是矩阵求行列式。
举个栗子:

import numpy as np

mat1 = np.mat(np.array([[4, 2], [4, 9]]))
det1 = np.linalg.det(mat1)
print(det1)

结果:

27.999999999999996

linalg.inv()

linalg.inv()的作用是矩阵求逆。
举个栗子:

import numpy as np

mat1 = np.mat(np.array([[4, 2], [4, 9]]))
mat2 = np.linalg.inv(mat1)
print(mat2)

结果:

[[ 0.32142857 -0.07142857]
 [-0.14285714  0.14285714]]

另外,也可以用.I来求逆,例如:

import numpy as np

mat1 = np.mat(np.array([[4, 2], [4, 9]]))
mat2 = mat1.I
print(mat2)

结果:

[[ 0.32142857 -0.07142857]
 [-0.14285714  0.14285714]]

corrcoef()

ccorrcoef()用来计算相关系数,输出结果为一个矩阵, r e s u l t s [ i ] [ j ] results[i][j] results[i][j]表示第i个变量与第j个变量的相关系数.
举个栗子:

import numpy as np

mat1 = np.mat(np.array([4, 2, 4, 9]))
mat2 = np.mat(np.array([3, 2, 4, 8]))
print(np.corrcoef(mat1, mat2))

结果:

[[1.         0.98685197]
 [0.98685197 1.        ]]

flatten()

flatten()将多维数组转换为一维数组的功能,返回源数据的副本。但是该函数只能适用于numpy对象,即array或者mat,普通的list列表是不行的。
举个栗子:

import numpy as np

mat1 = np.mat(np.array([[4, 2], [4, 9]]))
mat2 = mat1.flatten()
print(mat2)

结果:

[[4 2 4 9]]

eye()

eye()可以生成一个单位矩阵。
调用语法为:

numpy.eye(N,M=None,k=0,dtype=<class 'float'>,order='C)

N:int型,表示的是输出的行数
M:int型,可选项,输出的列数,如果没有就默认为N
k:int型,可选项,对角线的下标,默认为0表示的是主对角线,负数表示的是低对角,正数表示的是高对角。
dtype:数据的类型,可选项,返回的数据的数据类型
order:{‘C’,‘F’},可选项,也就是输出的数组的形式是按照C语言的行优先’C’,还是按照Fortran形式的列优先‘F’存储在内存中
举个栗子:

import numpy as np

mat1 = np.eye(4)
print(mat1)

结果:

[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]

mean()

mean()可以求出array或mat按轴向的均值。
调用方法为:

mean(data, axis=0)

其中:
data为需要求均值的数组;
axis表示轴向,不指定轴时将所有值求平均。
举个栗子:

import numpy as np

array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array1 = np.mean(array, axis=0)
print(array1)
array2 = np.mean(array, axis=1)
print(array2)
array3 = np.mean(array)
print(array3)

结果:

[4. 5. 6.]
[2. 5. 8.]
5.0

var()

var()可以求一组数据的方差。
举个栗子:

import numpy as np

array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array1 = np.var(array, axis=0)
print(array1)
array2 = np.var(array, axis=1)
print(array2)
array3 = np.var(array)
print(array3)

结果:

[6. 6. 6.]
[0.66666667 0.66666667 0.66666667]
6.666666666666667

random

shuffle

shuffle()将序列的所有元素随机排序。
举个栗子:

import random

list1 = list(range(10))
print('list1:', list1)
random.shuffle(list1)
print('list1:', list1)

结果:

list1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list1: [7, 3, 4, 2, 5, 8, 6, 0, 9, 1]

sklearn

sklearn.linear_model可以直接用来训练线性回归。

一些函数

len()

利用open(filename).readline().split(’\t’)处理文件之后,再用len()函数求长度,求出来的值是数据的列数。

文章推荐

学习SVM的过程中,除了《机器学习实战》,原理部分主要看了下面几篇文章,写得都非常好。
Python3《机器学习实战》学习笔记(十一):线性回归基础篇之预测鲍鱼年龄
Python3《机器学习实战》学习笔记(十二):线性回归提高篇之乐高玩具套件二手价预测

PS: 如果觉得本篇本章对您有所帮助,欢迎关注、评论、赞!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值