GitHub: https://github.com/RealEmperor/Python-for-Data-Analysis
分类算法有很多,这里通过一个案例介绍一下几个常用算法的应用,包括:K最近邻(kNN,k-NearestNeighbor)分类算法、贝叶斯分类算法、决策树、支持向量机(Support Vector Machine, SVM)。
分类算法案例:预测饭店销量
导入数据
import numpy as np
import pandas as pd
from sklearn.metrics import classification_report
from sklearn.metrics import precision_recall_curve
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import BernoulliNB
from sklearn.neighbors import KNeighborsClassifier
inputfile = 'data/sales_data.xls'
data = pd.read_excel(inputfile, index_col=u'序号') # 导入数据
data
天气 | 是否周末 | 是否有促销 | 销量 | |
---|---|---|---|---|
序号 | ||||
1 | 坏 | 是 | 是 | 高 |
2 | 坏 | 是 | 是 | 高 |
3 | 坏 | 是 | 是 | 高 |
4 | 坏 | 否 | 是 | 高 |
5 | 坏 | 是 | 是 | 高 |
6 | 坏 | 否 | 是 | 高 |
7 | 坏 | 是 | 否 | 高 |
8 | 好 | 是 | 是 | 高 |
9 | 好 | 是 | 否 | 高 |
10 | 好 | 是 | 是 | 高 |
11 | 好 | 是 | 是 | 高 |
12 | 好 | 是 | 是 | 高 |
13 | 好 | 是 | 是 | 高 |
14 | 坏 | 是 | 是 | 低 |
15 | 好 | 否 | 是 | 高 |
16 | 好 | 否 | 是 | 高 |
17 | 好 | 否 | 是 | 高 |
18 | 好 | 否 | 是 | 高 |
19 | 好 | 否 | 否 | 高 |
20 | 坏 | 否 | 否 | 低 |
21 | 坏 | 否 | 是 | 低 |
22 | 坏 | 否 | 是 | 低 |
23 | 坏 | 否 | 是 | 低 |
24 | 坏 | 否 | 否 | 低 |
25 | 坏 | 是 | 否 | 低 |
26 | 好 | 否 | 是 | 低 |
27 | 好 | 否 | 是 | 低 |
28 | 坏 | 否 | 否 | 低 |
29 | 坏 | 否 | 否 | 低 |
30 | 好 | 否 | 否 | 低 |
31 | 坏 | 是 | 否 | 低 |
32 | 好 | 否 | 是 | 低 |
33 | 好 | 否 | 否 | 低 |
34 | 好 | 否 | 否 | 低 |
# 数据是类别标签,要将它转换为数据
# 用1来表示“好”、“是”、“高”这三个属性,用-1来表示“坏”、“否”、“低”
data