import numpy
as np
import pandas
as pd
import matplotlib
.pyplot
as plt
from sklearn
.datasets
import load_digits
from sklearn
.preprocessing
import MinMaxScaler
, StandardScaler
from sklearn
.model_selection
import train_test_split
from sklearn
.neighbors
import KNeighborsClassifier
from sklearn
.tree
import DecisionTreeClassifier
from sklearn
.svm
import SVC
from sklearn
.naive_bayes
import MultinomialNB
from sklearn
.ensemble
import AdaBoostClassifier
from sklearn
.metrics
import accuracy_score
digits
= load_digits
()
data
= digits
.data
print(data
.shape
)
print(digits
.images
[0])
print(digits
.target
[0])
plt
.imshow
(digits
.images
[0])
plt
.show
()
(1797, 64)
[[ 0. 0. 5. 13. 9. 1. 0. 0.]
[ 0. 0. 13. 15. 10. 15. 5. 0.]
[ 0. 3. 15. 2. 0. 11. 8. 0.]
[ 0. 4. 12. 0. 0. 8. 8. 0.]
[ 0. 5. 8. 0. 0. 9. 8. 0.]
[ 0. 4. 11. 0. 1. 12. 7. 0.]
[ 0. 2. 14. 5. 10. 12. 0. 0.]
[ 0. 0. 6. 13. 10. 0. 0. 0.]]
0
Process finished
with exit code
0
data1
= digits
.data
target1
= digits
.target
data2
= np
.vstack
((data1
, data1
, data1
))
target2
= np
.hstack
((target1
, target1
, target1
))
train_x
, test_x
, train_y
, test_y
= train_test_split
(data2
, target2
, test_size
=0.25)
ss
= StandardScaler
()
train_ss_scaled
= ss
.fit_transform
(train_x
)
test_ss_scaled
= ss
.transform
(test_x
)
mm
= MinMaxScaler
()
train_mm_scaled
= mm
.fit_transform
(train_x
)
test_mm_scaled
= mm
.transform
(test_x
)
models
= {}
models
['knn'] = KNeighborsClassifier
()
models
['svm'] = SVC
()
models
['bayes'] = MultinomialNB
()
models
['tree'] = DecisionTreeClassifier
()
models
['ada'] = AdaBoostClassifier
(base_estimator
=models
['tree'], learning_rate
=0.1)
for model_key
in models
.keys
():
if model_key
== 'knn' or model_key
== 'svm' or model_key
== 'ada':
model
= models
[model_key
]
model
.fit
(train_ss_scaled
, train_y
)
predict
= model
.predict
(test_ss_scaled
)
print(model_key
, "准确率:", accuracy_score
(test_y
, predict
))
else:
model
= models
[model_key
]
model
.fit
(train_mm_scaled
, train_y
)
predict
= model
.predict
(test_mm_scaled
)
print(model_key
, "准确率: ", accuracy_score
(test_y
, predict
))
knn 准确率:
0.9799703264094956
svm 准确率:
0.9985163204747775
bayes 准确率
: 0.8835311572700296
tree 准确率
: 0.9955489614243324
ada 准确率:
0.9933234421364985
Process finished
with exit code
0
转载请注明原文地址:https://ipadbbs.8miu.com/read-22730.html