机器学习:
1.概念
Simple and efficient tools for predictive data analysis
【预测数据分析结果】
用机器代替人做决策
数据集 =》 训练 =》 模型
2.Built on NumPy, SciPy, and matplotlib、pandas
2.机器学习里面的常用术语 :
1.数据集准备
色泽= 绿色 、根=弯曲 、 敲声 = 浑浊 =》 熟的
色泽= 黑色 、根=弯曲 、 敲声 = 沉闷 =》 生的
色泽= 红色 、根=弯曲 、 敲声 = 清脆 =》 生的
数据集:这组数据 的集合
样本:每一条数据
维度:西瓜的判断条件
标签(label):结果的判断就是标签
2.模型怎么来的?
数据集 =》 训练 =》基于某个算法 =》 模型 【数学公式】
机器学习的模型作用:
输入三个维度 =》 判断出结果
人少:
机器学习: 数据科学家 【基于数据 =》 分析 一些问题】
1.数学 =》 算法 knn、kmeans 、线性回归、逻辑
2.会写代码
3.机器学习的种类:
1.有监督学习: 结果是 label的
1.分类:
通过模型 判断结果 生的还是熟的
2.回归:
通过模型 判断结果 (熟了 0.9)
2.无监督学习:结果是 没有label的
1.聚类: =》 sql group by
3.半监督学习:
使用标记数据+为标记数据 进行训练
4.强化学习:
阿法狗
4.如何判断模型好不好?
1.正确率、错误率
正确率:(tp+tn) / (tp+tn+fp+fn)
错误率率:(fp+fn) / (tp+tn+fp+fn)
2.精确率、召回率
P 精确率:(tp) /(tp+fp)
R 召回率:(tp) /(tp+fn)
3.真正率、假正率:
tpr=
fpr=
roc 和auc
Numpy pandas matplotlib
统计分析、假设、线下回归、逻辑回归、knn、朴素贝叶斯、aqi、时间序列、决策树、kmeans、分类模型评估
Numpy:
1.官网
https://numpy.org/
1. what is numpy?
The fundamental package for scientific computing with Python
2.multidimensional array object 【编程模型】
1.arrays and matrices [数组和矩阵]
import numpy as np
if __name__ == '__main__':
a = np.array([[3, 1, -2], [1, -1, 4], [2, 0, 3]])
print(a)
b = np.array([5, -2, 2.5])
print(b)
print(np.linalg.solve(a, b))
2.可以用来 数组操作、矩阵操作、线下代数、sort、random
体验:
求多元一次方程
3x +y -2z = 5
x-y+4z = -2
2x +3z = 2.5
[0.5 4.5 0.5]
# 把等式系数 抽象成 向量组
python list vs numpy arr
python list
1.放不同数据类型的 元素
numpy arr :
1.元素类型 必须统一
建议使用 numpy arr 比python list 效率高 【 numpy arr 底层代码使用 c 实现的】
1.如何创建 ndarray
There are 6 general mechanisms for creating arrays:
1Conversion from other Python structures (i.e. lists and tuples)
2Intrinsic NumPy array creation functions (e.g. arange, ones, zeros, etc.)
3Replicating, joining, or mutating existing arrays
4Reading arrays from disk, either from standard or custom formats
5Creating arrays from raw bytes through the use of strings or buffers
6Use of special library functions (e.g., random)
NumPy arrays:
1.ndarray n N维数组对象
2.【元素数据类型必须相同】
创建一维数组:
1.数据类型转化
2.内置函数
创建二维数组:
1.数据类型转化
2.内置函数
import numpy as np
if __name__ == '__main__':
#数据类型转化
np2_arr = np.arange(24).reshape(4, 6)
print(np2_arr)
list_py = np2_arr.tolist()
print(list_py)
数组属性:
1.修改 sharp
2.转换数据类型:
1.nparr =》 python
2.nparr元素 int =》 float
import numpy as np
if __name__ == '__main__':
np_arr = np.array([[1, 2, 3], [4, 5, 6]])
print(np_arr)
# sharp
print(np_arr.shape)
#1.修改 sharp
'''
size = sharp[0] * sharp[1]
'''
np_arr.shape = (3,2)
print("--"*20)
print(np_arr)
print(np_arr.shape)
# 2.修改 sharp
np_arr2 = np.reshape(np_arr, (1, 6), order='C')
np_arr3 = np.reshape(np_arr, (1, 6), order='F')
np_arr4 = np.reshape(np_arr, (1, 6), order='A')
print(np_arr2)
print("--" * 20)
print(np_arr)
print("--" * 20)
print(np_arr3)
print("--" * 20)
print(np_arr4)
print("**" * 20)
# 3.修改 sharp
print(np_arr)
print("**" * 20)
np_arr5 = np_arr.reshape((1, 6))
print(np_arr5)
print("**" * 20)
print(np_arr)
print("**" * 20)
# 4.修改 数组维度
print(np_arr)
print("**" * 20)
#2 -》 3 6
np3_arr = np.reshape(np_arr, (2, 3, 1))
print(np3_arr)
print("**" * 20)
# 2 ->1
np2_arr = np.reshape(np_arr, (1, 6))
print(np2_arr)
print(np2_arr.ndim)
print("**" * 20)
np1_arr = np.reshape(np_arr, (6,))
print(np1_arr)
print(np1_arr.ndim)
数组切片:
切片:取值
一维数组:
二维数组:
根据条件进行取值
ifnull(condition,xx,xxx)
5.数组的轴 (axis)
1.numpy 轴 可以理解为方向
2.数组 0 1 2 表示
eg :
一维数组:只有一个 0 轴
二维数组:0轴 1轴
三维数组:0轴 1轴 2轴
3.轴 用于计算:
按照 0、1、2轴进行计算
np.xxx() api
np.sum
np.mean
6.数组的计算
跟矩阵一样:
1.数组与数的计算
2.形状相同的数组计算
3.不同形状的数组 计算?
4.行数 或 列数相同的 一维数组 与 多维数组 进行计算