4 分类算法

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split

# 导入load_breast_cancer数据
cancer = load_breast_cancer()
x = cancer['data']
y = cancer['target']
# 将数据划分为训练集测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=22)
print('x_train第1行数据为:\n', x_train[0: 1], '\n', 'y_train第1个数据为:', y_train[0: 1])

# 数据标准化
from sklearn.preprocessing import StandardScaler
stdScaler = StandardScaler().fit(x_train)
x_trainStd = stdScaler.transform(x_train)
x_testStd = stdScaler.transform(x_test)

from sklearn.svm import SVC
svc_model = SVC()
svc_model.fit(x_trainStd, y_train)
print('训练出来的SVM模型为:\n', svc_model)
print('预测测试集前10个结果为:\n', svc_model.predict(x_testStd)[: 10])
print('测试集准确率为:', svc_model.score(x_testStd, y_test))
print('测试集前10个距超平面的距离为:\n', svc_model.decision_function(x_testStd)[: 10])
print('前5个支持向量的索引为:', svc_model.support_[0: 5])
print('第1个支持向量为:\n', svc_model.support_vectors_[0: 1])
print('每个类别支持向量的个数为:', svc_model.n_support_)
print('支持向量的系数为:\n', svc_model.dual_coef_)
print('模型的截距值为:', svc_model.intercept_)

# 使用KNeighborsClassifier类构建knn模型
from sklearn.neighbors import KNeighborsClassifier
knn_model = KNeighborsClassifier()
knn_model.fit(x_trainStd, y_train)
print('训练出来的knn模型为:\n', knn_model)
print('预测测试集前10个结果为:\n', knn_model.predict(x_testStd)[: 10])
print('测试集准确率为:', knn_model.score(x_testStd, y_test))
print('测试集前5个最近邻点为:\n',
      knn_model.kneighbors(x_testStd)[0][0: 5], '\n',
      '测试集前5个最近邻点的距离为:\n',
      knn_model.kneighbors(x_testStd)[1][0: 5])
mat = knn_model.kneighbors_graph(x_testStd)    #使用连接图存储最近邻点
print('将CSR格式的稀疏矩阵显示的最近邻点转换为数组后结果为:\n', mat.toarray())

# 使用GaussianNB类构建朴素贝叶斯模型
from sklearn.naive_bayes import GaussianNB
gnb_model = GaussianNB()
gnb_model.fit(x_train, y_train)
print('训练出来的朴素贝叶斯模型为:', gnb_model)
print('预测测试集前10个结果为:\n', gnb_model.predict(x_test)[: 10])
print('测试集准确率为:', gnb_model.score(x_test, y_test))
print('追加训练数据后的模型为:', gnb_model.partial_fit(x_test, y_test))#用于数据量比较大的情况
print('每个类别出现的概率为:', gnb_model.class_prior_)
print('每个类别训练样本的数量为:', gnb_model.class_count_)
print('每个类别中每个特征的均值为:\n', gnb_model.theta_)
print('每个类别中每个特征的方差为:\n', gnb_model.sigma_)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值