python卖水果_用Python解决一个简单的水果分类问题

在本文中,我们将使用Python中最流行的机器学习工具Scikit-learn在Python中实现几种机器学习算法。使用简单的数据集来训练分类器以区分不同类型的水果。本文的目的是确定最适合手头问题的机器学习算法; 因此,我们想要比较不同的算法,选择效果最好的算法。数据水果数据集由爱丁堡大学的Iain Murray博士创建。他买了几十个不同品种的桔子、柠檬和苹果,并记录了他们的尺寸。让我们看一下数据...
摘要由CSDN通过智能技术生成

在本文中,我们将使用Python中最流行的机器学习工具Scikit-learn在Python中实现几种机器学习算法。使用简单的数据集来训练分类器以区分不同类型的水果。

本文的目的是确定最适合手头问题的机器学习算法; 因此,我们想要比较不同的算法,选择效果最好的算法。

数据

水果数据集由爱丁堡大学的Iain Murray博士创建。他买了几十个不同品种的桔子、柠檬和苹果,并记录了他们的尺寸。

让我们看一下数据的前几行。

%matplotlib inlineimport pandas as pdimport matplotlib.pyplot as pltfruits = pd.read_table('fruit_data_with_colors.txt')fruits.head()

数据集的每一行表示水果的一个部分,由列表中的几个特征表示。

我们的数据集中有59个水果和7个特征:print(fruits.shape)

(59,7)

我们的数据集中有四种类型的水果:

print(fruits['fruit_name'].unique())

['苹果''橘子(mandarin)''橙子''柠檬']

除橘子外,数据非常平衡。我们必须坚持下去。print(fruits.groupby('fruit_name').size())

import seaborn as snssns.countplot(fruits['fruit_name'],label='Count')plt.show()

可视化每个数字变量的方形图将使我们更清楚地了解输入变量的分布:fruits.drop('fruit_label', axis=1).plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False, figsize=(9,9), title='Box Plot for each input variable')plt.savefig('fruits_box')plt.show()

颜色分数近似于高斯分布。

import pylab as plfruits.drop('fruit_label' ,axis=1).hist(bins=30, figsize=(9,9))pl.suptitle('Histogram for each numeric input variable')plt.savefig('fruits_hist')plt.show()

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设有n个人,每个人手上都拿着一些水果,现在你有m个空篮子,你希望将这些水果分配到这些篮子里,使得每个篮子里的水果数量相同,每个篮子里的水果数量尽可能多。你可以假设每个篮子的大小都是无限大的。 这个问题可以使用Python进行求解。一种可能的解法如下: 1. 计算所有水果的数量total,以及每个篮子应该装的水果数量target = total / m。 2. 遍历所有水果,统计每种水果的数量,并将其存储在一个字典中。 3. 对于每个篮子,从字典中选取水果,直到篮子中的水果数量达到target。如果字典中没有足够的水果可供选择,则无法均分,返回False。 4. 如果所有篮子都成功装满了水果,则返回True。 下面是代码实现: ```python def distribute_fruits(fruits, m): total = sum(fruits.values()) target = total // m if target * m != total: return False baskets = [{} for _ in range(m)] for fruit, count in fruits.items(): for i in range(m): if count == 0: break if fruit not in baskets[i] and sum(baskets[i].values()) < target: baskets[i][fruit] = 0 n = min(target - sum(baskets[i].values()), count) baskets[i][fruit] += n count -= n return all(sum(basket.values()) == target for basket in baskets) ``` 这个函数接受一个字典fruits,其中键是水果的名称,值是该种水果的数量。另外一个参数m表示篮子的数量。如果可以均分水果,则返回True,否则返回False。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值