「 机器学习 」 August 20, 2018
10-1 准确度的陷阱和混淆矩阵
Words count 1.1k Reading time 1 mins.
对于极度偏科(Skewed Data)的数据,只使用分类准确度是远远不够的
例子说明:
现在有10000个人的测试数据,0代表不患病,1代表患病。
9978表示
在10000个人当中有9978个人,本身没有患病,机器学习算法预测也没有患病。
12表示
在10000个人当中有12个人,本身没有患病,机器学习算法却预测为患病
2表示
在10000个人当中有2个人,本身就患病,机器学习算法却预测为没有患病
8表示
在10000个人当中有8个人,本人就患病,机器学习算法也预测为患病
Read article「 机器学习 」 August 20, 2018
1-6 读取数据和简单的数据探索
Words count 8.1k Reading time 7 mins.
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from sklearn import datasets
iris = datasets.load_iris()
iris.keys()
dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names...
Read article
「 机器学习 」 August 20, 2018
1-5 matplotlib基础
Words count 8.7k Reading time 8 mins.
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
x = np.linspace(0,10,100)
x
array([ 0. , 0.1010101 , 0.2020202 , 0.3030303 , 0.4040404 ,
0.50505051, 0.60606061, 0.70707071, 0.80808081, 0.90909091,
1.01010101, 1.11111111...
Read article
「 机器学习 」 August 20, 2018
1-0机器学习基础
Words count 2.8k Reading time 3 mins.
数据整体叫数据集(data set)
每一行数据成为一个样本(sample)
除最后一列,每一列表达样本的的一个特征(feature)
最后一列,称为标记(label)
分类任务
二分类
例如:
判断邮件是不是垃圾邮件
判断发放给客户信用卡是否有风险
判断患病是良性还是恶性
判断股票的涨跌
多分类
例如:
数字识别
图像识别
判断发放给客户信息卡的风险评级
多标签分类
回归任务
例如:
房屋价格
市场分析
学生成绩
股票价格
监督学习
给机器的训练数据拥有“标记”或者“答案”
例如:
图像已经拥有了标定...
Read article「 机器学习 」 August 19, 2018
1-1 numpy数组合并
Words count 5.2k Reading time 5 mins.
import numpy as np
x = np.array([1,2,3])
y = np.array([3,2,1])
x
array([1, 2, 3])
y
array([3, 2, 1])
x与y合并
np.concatenate([x,y])
array([1, 2, 3, 3, 2, 1])
z = np.array([666,666,666])
np.concatenate([x,y,z])
array([ 1, 2, 3, 3, 2, 1, 666, 666...
Read article
「 机器学习 」 August 19, 2018
1-3 numpy中的矩阵聚合操作
Words count 8k Reading time 7 mins.
import numpy as np
L = np.random.random(100)
L
array([0.25119175, 0.92977429, 0.99646455, 0.01350068, 0.10785383,
0.13216408, 0.53743682, 0.2362282 , 0.43276904, 0.88723033,
0.32363798, 0.7736106 , 0.30140572, 0.70171898, 0.23628926,
0.11465989, 0....
Read article
「 机器学习 」 August 19, 2018
1-4 numpy中Fancy Indexing
Words count 4.5k Reading time 4 mins.
import numpy as np
x = np.arange(16)
x
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
x[3]
3
x[3:9]
array([3, 4, 5, 6, 7, 8])
x[3:9:2]
array([3, 5, 7])
[x[3],x[5],x[8]]
[3, 5, 8]
ind = [3,5,8]
x[ind]
array([3, 5, 8])
ind...
Read article
「 机器学习 」 August 19, 2018
1-2 numpy.array中的运算
Words count 10k Reading time 9 mins.
import numpy as np
给定一个向量,让向量中每一个数乘以2
a = (0,1,2)
a*2 = (0,2,4)
普通python中
n = 10
L = [i for i in range(n)]
L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2 * L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
A = []
for e in L:
A.append(2*e)
A
[...
Read article
「 机器学习 」 August 19, 2018
2-6 k近邻算法总结
Words count 202 Reading time 1 mins.
最大的缺点:效率低下
如果训练集有m个样本,n个特征,则预测每一个新的数据,需要O(m*n)
优化,使用树结构:KD-Tree,Ball-Tree
缺点2:高度数据相关
缺点3:预测结果不具有可解释性
缺点4:维数灾难
随着维护的增加,“看似相近”的两个点之间的距离越来越大
解决方法:降维
Read article