随机森林和KNN分类结果可视化(Sklearn)

代码如下:

from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
import  matplotlib.pyplot as plt





if __name__ == '__main__':
   wine=load_wine()
   Xtrain,Xtest,Ytrain,Ytest=train_test_split(wine.data,wine.target,test_size=0.3)
   rfc=RandomForestClassifier(n_estimators=25)
   rfc_s=cross_val_score(rfc,wine.data,wine.target,cv=10)
   knn=KNeighborsClassifier(n_neighbors=30)
   knn_s=cross_val_score(knn,wine.data,wine.target,cv=10)
   knn.fit(Xtrain,Ytrain)
   rfc.fit(Xtrain,Ytrain)
   plt.plot(range(1,11),rfc_s,label="RandomForest")
   plt.plot(range(1,11),knn_s,label="KNN")
   plt.legend()
   plt.show()






运行结果如下图:

​​​​​​​

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
半监督学习的随机森林分类器可以用来对未标记的数据进行分类,这里给出一个示例代码,包括数据的可视化和模型分类结果的可视化。 ```python from sklearn.datasets import make_classification from sklearn.ensemble import RandomForestClassifier from sklearn.semi_supervised import LabelPropagation from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt import numpy as np # 生成随机数据集 X, y = make_classification(n_samples=100, n_features=2, n_redundant=0, n_classes=2, random_state=42) # 随机选择一些样本作为有标记的数据 labeled_indices = np.random.choice(np.arange(len(y)), size=20, replace=False) labels = np.copy(y) labels[np.delete(np.arange(len(y)), labeled_indices)] = -1 # 可视化数据集 fig, ax = plt.subplots() ax.scatter(X[:, 0], X[:, 1], c=labels, cmap='bwr') ax.set_title('Labeled and Unlabeled Data') plt.show() # 使用标签传播算法来对未标记数据进行标记 lp_model = LabelPropagation(kernel='knn', n_neighbors=5, max_iter=1000) lp_model.fit(X, labels) unlabeled_predictions = lp_model.predict(X) # 计算分类器的准确率 rf_model = RandomForestClassifier(n_estimators=10, random_state=42) rf_model.fit(X[labeled_indices], y[labeled_indices]) labeled_predictions = rf_model.predict(X[labeled_indices]) accuracy = accuracy_score(y[labeled_indices], labeled_predictions) print(f'Accuracy of Random Forest Classifier on labeled data: {accuracy}') # 可视化分类结果 fig, ax = plt.subplots() ax.scatter(X[:, 0], X[:, 1], c=unlabeled_predictions, cmap='bwr') ax.set_title('Random Forest Classification of Unlabeled Data') plt.show() # 计算分类结果的误差 labeled_error = np.sum(y[labeled_indices] != labeled_predictions) / len(labeled_predictions) unlabeled_error = np.sum(y != unlabeled_predictions) / len(unlabeled_predictions) print(f'Labeled Error: {labeled_error}') print(f'Unlabeled Error: {unlabeled_error}') ``` 该代码首先生成一个二维随机数据集,并随机选择一些样本作为有标记的数据。然后,它使用标签传播算法来对未标记数据进行分类,并将分类结果可视化。接下来,它使用随机森林分类器对有标记的数据进行分类,并计算分类器的准确率。最后,它计算分类结果的误差,并输出结果。 您可以根据需要调整参数,例如选择不同的随机森林分类器或更改有标记数据的数量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山河亦问安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值