python 实现 Peceptron Learning Algorithm ( 三) 感知机模型应用于Iris数据集

参考 《python machine learning》

代码读的很费劲,应该是没有功底的原因吧然后就挨个的百度不懂的函数,函数记录在了(一)中,

链接为 http://blog.csdn.net/Amy_mm/article/details/79625288

Iris数据集 以及源码 可以在github上下载~~

GIT:  https://github.com/xuman-Amy/Perceptron_python

代码及详细注释如下

# load iris dataset
import pandas as pd
df = pd.read_csv("G:\Machine Learning\python machine learning\python-machine-learning-book-2nd-edition-master\code\ch02\iris.data",header = None)
df.tail()
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

# select setosa and versicolor
#iloc()提取某列 ----前100行的第四列,第四例为versicolor和setosa属性
y = df.iloc[0:100,4].values 
#进行分类   1 ( versicolor ) and -1 ( setosa )
y = n
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。首先,我们需要安装一些必要的库,如下所示: ```python pip install pandas pip install numpy pip install sklearn pip install matplotlib pip install geneticalgorithm ``` 然后,我们需要加载iris数据集,代码如下所示: ```python import pandas as pd from sklearn.datasets import load_iris iris = load_iris() data = pd.DataFrame(iris.data, columns=iris.feature_names) ``` 接下来,我们可以使用遗传算法的KMeans聚类来对数据进行聚类。我们将使用Python的`geneticalgorithm`库实现此目的。代码如下所示: ```python from geneticalgorithm import geneticalgorithm as ga from sklearn.cluster import KMeans def fitness(X, k): kmeans = KMeans(n_clusters=k, random_state=42) kmeans.fit(X) return -kmeans.inertia_ varbound = np.array([[2, 10]]*len(data.columns)) model = ga(function=fitness, dimension=len(data.columns), variable_type='int', variable_boundaries=varbound) ``` 在上面的代码中,我们定义了一个适度函数`fitness`,它使用KMeans聚类算法对数据集进行聚类,并返回负惯性。我们使用负惯性作为适度函数的原因是因为在遗传算法中,我们尝试最小化适度函数,而在KMeans聚类中,我们尝试最小化惯性。因此,我们返回负惯性以将其转换为最小化问题。 然后,我们使用`geneticalgorithm`库的`geneticalgorithm`类来定义遗传算法模型。我们将适度函数`fitness`作为参数传递,并指定决策变量的数量,类型和界限。 接下来,我们可以在遗传算法模型上运行`run`方法,以便找到最优解。代码如下所示: ```python model.run() ``` 最后,我们可以使用最优解来运行KMeans聚类算法,并将聚类结果可视化。代码如下所示: ```python k = int(model.output_dict['variable'][0]) kmeans = KMeans(n_clusters=k, random_state=42) kmeans.fit(data) data['cluster'] = kmeans.labels_ fig, ax = plt.subplots(figsize=(12, 8)) sns.scatterplot(x='sepal length (cm)', y='sepal width (cm)', hue='cluster', data=data, ax=ax) plt.show() ``` 在上面的代码中,我们从遗传算法模型中提取最优解并将其转换为整数。然后,我们使用这个整数来运行KMeans聚类算法,并将聚类结果可视化。 完整的代码如下所示:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值