机器学习》16-实验二 手写体数字识别参考代码[3页]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
# encoding:utf-8
# 从sklearn.datasets里导入手写体数字加载器。
from sklearn.datasets import load_digits
# 从通过数据加载器获得手写体数字的数码图像数据
#并储存在digits变量中。
digits = load_digits()
# 检视数据规模和特征维度。
print(digits.data.shape)
#import matplotlib.pyplot as plt
#plt.gray()
#plt.matshow(digits.images[0])
#plt.show()
# 从sklearn.cross_validation中导入train_test_split用于数据分割。from sklearn.model_selection import train_test_split
# 随机选取75%的数据作为训练样本;其余25%的数据作为测试样本。
X_train, X_test, y_train, y_test = train_test_split(\
digits.data, digits.target, test_size=0.25, random_state=33)
print(y_train.shape)
print(y_test.shape)
# 从sklearn.preprocessing里导入数据标准化模块。
from sklearn.preprocessing import StandardScaler
# 从仍然需要对训练和测试的特征数据进行标准化。
ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)
from sklearn.linear_model import LogisticRegression,SGDClassifier lgr = LogisticRegression()
lgr.fit(X_train, y_train)
lgr_predict = lgr.predict(X_test)
sgc = SGDClassifier()
sgc.fit(X_train, y_train)
sgc_predict = sgc.predict(X_test)
# 从sklearn.svm里导入基于线性假设的支持向量机分类器LinearSVC。from sklearn.svm import LinearSVC,SVC,NuSVC
# 初始化线性假设的支持向量机分类器LinearSVC。
lsvc = LinearSVC(max_iter=3000)
#进行模型训练
lsvc.fit(X_train, y_train)
# 利用训练好的模型对测试样本的数字类别进行预测,
#预测结果储存在变量y_predict中。
lsvc_predict = lsvc.predict(X_test)
svc = SVC()
svc.fit(X_train, y_train)
svc_predict = svc.predict(X_test)
nusvc = NuSVC()
nusvc.fit(X_train, y_train)
nusvc_predict = nusvc.predict(X_test)
from sklearn.neighbors import KNeighborsClassifier
kneighbor = KNeighborsClassifier()
kneighbor.fit(X_train,y_train)
kneighbor_predict = kneighbor.predict(X_test)
from sklearn.naive_bayes import GaussianNB,BernoulliNB
gs = GaussianNB()
gs.fit(X_train,y_train)
gs_predict = gs.predict(X_test)
bnl = BernoulliNB()
bnl.fit(X_train,y_train)
bnl_predict = bnl.predict(X_test)
from sklearn.tree import DecisionTreeClassifier
dtc = DecisionTreeClassifier()
dtc.fit(X_train,y_train)
dtc_predict = dtc.predict(X_test)
from sklearn.ensemble import RandomForestClassifier
rfcc = RandomForestClassifier()
rfcc.fit(X_train,y_train)
rfcc_predict = rfcc.predict(X_test)
from sklearn.ensemble import GradientBoostingClassifier
gbcc = GradientBoostingClassifier()
gbcc.fit(X_train,y_train)
gbcc_predict = gbcc.predict(X_test)
from sklearn.metrics import classification_report
print('LogisticRegression',classification_report(y_test,
lgr_predict))