机器学习的准备工作

1.收集数据

这个工作应该放到平日来做,但是如果临时需要数据的话,可以在原始的数据上做一定的变动而得到更多的训练数据

2.提取特征

提取特征的准则

预处理数据

1.标签类型转换

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# 标签转换成整形
import numpy as np
from sklearn.preprocessing import LabelBinarizer # 标签转换器
from sklearn.preprocessing import LabelBinarizer # 标签转换器
from sklearn.neighbors import KNeighborsClassifier # KNN分类器
from sklearn.preprocessing import StandardScaler # 特征所放器


####################################
# 训练数据
####################################
X_train = np.array([
[158, 64],
[170, 86],
[183, 84],
[191, 80],
[155, 49],
[163, 59],
[180, 67],
[158, 54],
[170, 67]
])

y_train = ['male', 'male', 'male', 'male', 'female', 'female', 'female','female', 'female']


####################################
# 测试数据
####################################
X_test = np.array([[155, 70],[160, 50]])

####################################
# 特征缩放
####################################
ss = StandardScaler()
X_train_scaled = ss.fit_transform(X_train)
X_test_scaled = ss.transform(X_test)

####################################
# 数据类型转换
####################################
lb = LabelBinarizer()
y_train_binarized = lb.fit_transform(y_train)
print(y_train_binarized)

"""
the output is :
[[1]
[1]
[0]
[0]]
"""

####################################
# 训练和预测
####################################

# 训练
k = 3
clf = KNeighborsClassifier(n_neighbors=k)
clf.fit(X_train,y_train_binarized.reshape(1,-1)[0])

#预测
prediction_binarized = clf.predict(X_test)

# 转换标签
prediction_binarized = prediction_binarized.reshape(1,-1)[0]
y_test = lb.inverse_transform(prediction_binarized)
print(y_test)

3.确定模型