机器学习OneR算法

OneR算法:利用一个特征去预测分类

算法思想:
算法首先遍历每个特征的每一个取值,对于每一个特征值,统计它在各个类别中的出现次数,找到它出现次数最多的类别,并统计它在其他类别中的出现次数;
统计完所有的特征值及其在每个类别的出现次数后,我们再来计算每个特征的错误率。计算方法为把它的各个取值的错误率相加,选取错误率最低的特征作为唯一的分类准则(OneR),用于接下来的分类。

算法步骤:
1.将数据集特征值进行0/1化处理(大于等于均值的,特征值赋值为1,否则为0)
2.计算每一个特征的各个特征值在各个类别中出现的次数,并计算次数最多的特征值的误判次数
3.将某一个特征的所有特征值的误判次数加起来,找出误判最低的特征归属组合及总的错误次数
4.比较每个特征总的错误次数大小,找出错误次数最小的特征,该特征即为最佳判断特征
5.该特征对应的特征值分类即为最佳分类规则

示例:

import numpy as np
from sklearn.datasets import load_iris
from collections import defaultdict
from operator import itemgetter
from sklearn.cross_validation import train_test_split

dataset = load_iris()

X=dataset.data
y=dataset.target

attribute_means=X.mean(axis=0)#按列求均值

#将特征值小于均值的赋值为0,大于均值的赋值为1
X_d=np.array(X >= attribute_means,dtype='int')


def train_feature_value(X,y_true,feature_index,value):
    class_counts=defaultdict(int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jepson2017

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

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

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

打赏作者

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

抵扣说明:

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

余额充值