# encoding:utf-8
# 根据身高,体重,男女(1,2)预测此人胖否(0,1)
# 案例是我自己随意写的,当然符合实际情况
# 定义train_data,test_data二维数组[[height,weight,sex],···],train_target一维数组[胖否]
train_data
=
[[
160
,
60
,
1
], [
155
,
80
,
1
], [
178
,
53
,
2
], [
158
,
53
,
2
], [
166
,
45
,
2
], [
170
,
50
,
2
], [
156
,
56
,
2
], [166
,
50
,
1
], [
175
,
55
,
1
], [
188
,
68
,
1
], [
159
,
41
,
2
], [
166
,
70
,
1
], [
175
,
85
,
1
], [
188
,
98
,
1], [
159
,
61
,
2
], [
160
,
60
,
1
], [
155
,
80
,
1
], [
178
,
53
,
2
], [
158
,
53
,
2
], [
166
,
45
,
2
], [
170
,
50
,
2], [
156
,
56
,
2
], [
166
,
50
,
1
], [
175
,
55
,
1
], [
188
,
68
,
1
], [
159
,
41
,
2
], [
166
,
70
,
1
], [
175
,
85
,
1], [
188
,
98
,
1
], [
159
,
61
,
2
], [
160
,
60
,
1
], [
155
,
80
,
1
], [
178
,
53
,
2
], [
158
,
53
,
2
], [
166
,
45
,
2], [
170
,
50
,
2], [
156
,
56
,
2
], [
166
,
50
,
1
], [
175
,
55
,
1
], [
188
,
68
,
1
], [
159
,
41
,
2
], [
166
,
70
,
1
], [
175
,
85
,
1], [
188
,
98
,
1
], [
159
,
61
,
2
]]
train_target
=
[
1
,
1
,
0
,
0
,
0
,
0
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1, 1
,
1
,
0
,
0
,
0
,
0
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
]
test_data
=
[[
166
,
45
,
2
], [
172
,
52
,
1
], [
156
,
60
,
1
], [
150
,
70
,
2
]]
test_target
=
[
0
,
0
,
1
,
1
]
test_target
'SVM :'
from
sklearn
import
svm
# 持久化
from
sklearn.externals
import
joblib
clf
=
svm.SVC()
clf.fit(train_data, train_target)
joblib.dump(clf,
"train_model.m"
)
result
=
clf.predict(test_data)
# print type(result) # <type 'numpy.ndarray'>转成list 用 result.tolist()
result
# [0 1 1 1]
# a = joblib.load("train_model.m")
#
# print a.predit(test_data)
# joblib.
# print 'LogisticRegression :'
# from sklearn.linear_model import LogisticRegression
#
# clf = LogisticRegression().fit(train_data, train_target)
# result = clf.predict_proba(test_data)
# print result
# # [[ 0.95138903 0.04861097]
# # [ 0.85670921 0.14329079]
# # [ 0.18763392 0.81236608]
# # [ 0.01270012 0.98729988]]
# print 'LinearSVC :'
# from sklearn.svm import LinearSVC
#
# clf = LinearSVC()
# clf.fit(train_data, train_target)
# result = clf.predict(test_data)
# print result # [0 0 0 1]
#
# print 'GaussianNB :'
# from sklearn.naive_bayes import GaussianNB
# gnb = GaussianNB().fit(train_data,train_target)
# result = gnb.predict(test_data)
# print result #[0 0 1 1]
'''
这个下面是如何使用已经训练好的测试数据
'''
#encoding:utf-8
from
sklearn.externals
import
joblib
from
sklearn
import
svm
clf
=
svm.SVC()
clf
=
joblib.load(
"train_model.m"
)
test_data
=
[[
166
,
45
,
2
], [
172
,
52
,
1
], [
156
,
60
,
1
], [
150
,
70
,
2
], [
172
,
52
,
1
], [
156
,
60
,
1
], [
150
,
70
,
2
], [
172
,
52
,
1
], [
156
,
60
,
1
], [
150
,
70
,
2
]]
clf.predict(test_data)
joblib.dump(clf,
"train_model2.m"
)