应用python实现多回归分类数据

# 多回归分类数据
# 导入随机森林分类器
from sklearn.ensemble import RandomForestClassifier
# 导入投票分类器
from sklearn.ensemble import VotingClassifier
# 导入逻辑回归
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
#导入数据集
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
#Bagging又叫自助聚集,是一种根据均匀概率分布从数据中重复抽样(有放回)的技术。
# 每个抽样生成的自助样本集上,训练一个基分类器;对训练过的分类器进行投票,将测试
# 样本指派到得票最高的类中。
# 每个自助样本集都和原数据一样大
# 有放回抽样,一些样本可能在同一训练集中出现多次,一些可能被忽略。
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
import warnings
warnings.filterwarnings('ignore')


log_clf = LogisticRegression()
rnd_clf = RandomForestClassifier()
# 初始化支持向量机
svm_clf = SVC()

# 投票分类器
voting_clf = VotingClassifier(
    estimators=[('lr',log_clf),('rf',rnd_clf),('svc',svm_clf)],
    voting='hard'# 少数服从多数的投票方式
)
iris = load_iris()
# 取出属性为data的前两行数据,即取出鸢尾花花萼的长度和宽度作为训练数据
x = iris.data[:,:2]
# 取出每种花对应的ID号,
y = iris.target
# 随机的将数据划分为训练集和测试集,test_size就是将整体数据按一定的比例划分为训练集和测试集
# random_state =43 表示每次生成的测试集和训练集都保持一致
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.33,random_state=43)
# 训练数据并进行投票选出最终最好的模型
print(x_test)
voting_clf.fit(x,y)
for clf in (log_clf,rnd_clf,svm_clf,voting_clf):
    clf.fit(x_train,y_train)
    y_pred = clf.predict(x_test)
    # accuracy_score:是为了评估准确率
    print(clf.__class__.__name__,accuracy_score(y_test,y_pred))

bag_clf = BaggingClassifier(
    # n_estimators:就是你要产生多少个子模型,用在决策树时,即表示产生多少条决策树(子模型)用来融合。
    # max_samples:如果此处的数字是浮点型,代表要取的数乘以总训练集样本数
    # n_jobs=1 表示所用的
    DecisionTreeClassifier(),n_estimators=50,
    max_samples=1.0,bootstrap=True,n_jobs=1
)
# 训练模型
bag_clf.fit(x_train,y_train)
# 通过模型预测
y_pred=bag_clf.predict(x_test)
# print(y_pred)
# predict_proba有三个标签,预测x_test的数值在这三个标签中的占比例
y_pred_proba = bag_clf.predict_proba(x_test)
print(y_pred_proba)
# 评估准确率
print(accuracy_score(y_test,y_pred))

你可能感兴趣的:(应用python实现多回归分类数据)