栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于python的机器学习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于python的机器学习

import pandas as pd

#读入数据
protein = pd.read_table('test.txt',sep='t')

#查看前五排
print(protein.head())

#查看描述性统计分析
print(protein.describe())

#查看列名
print(protein.columns)
#查看行数和列数
print(protein.shape)

#数据规整化处理
from sklearn import preprocessing

#由于country不是特征值,故应删去
sprotein = protein.drop(['Country'],axis=1)

#对数据进行标准化处理
sprotein_scaled = preprocessing.scale(sprotein)

#查看处理结果
print(sprotein_scaled)

#数据建模
#导入KMeans类型
from sklearn.cluster import KMeans

#[注意]K值的选择方式

NumberOfClusters = range(1,20)
kmeans = [KMeans(n_clusters=i) for i in NumberOfClusters]
score = [kmeans[i].fit(sprotein_scaled).score(sprotein_scaled) for i in range(len(kmeans))]

print(score)
#变化跨度变小时的值就可取,K值

import matplotlib.pyplot as plt

plt.plot(NumberOfClusters,score)
plt.xlabel('Number of Clusters')
plt.ylabel('Score')
plt.title('Elbow Curve')
plt.show()
#图形变缓慢的点就可取,K值

#设置KMeans聚类器的超级参数
myKmeans = KMeans(algorithm='auto',n_clusters=5,n_init=10,max_iter=200)
#n_cluster为聚类中心
#n_init和max_iter:初始值的选择次数以及最大迭代次数
#algorithem="auto",对于稀疏数据用full(EM算法),非稀疏数据用elkan算法

#【注意】初始聚类中心的选择方式是init参数,目前init参数取值可以为:
#1、k-means++算法(默认):选择彼此尽可远的那个k点
#2、随机:random
#3、指定:ndarray

#模型训练
myKmeans.fit(sprotein_scaled)
print(myKmeans.fit(sprotein_scaled))

#查看模型
print(myKmeans)

#预测聚类结果
y_kmeans = myKmeans.predict(sprotein)
print(y_kmeans)

#结果输出
def print_kmcluster(k):
    '''
    用于聚类结果的输出
    k:为聚类中心个数
    '''
    for i in range(k):
        print('聚类',i)
        ls = []
        for index,value in enumerate(y_kmeans):
            if i == value:
                ls.append(index)
            print(protein.loc[ls,['Country','RedMeat','Fish','Fr&Veg']])

print_kmcluster(5)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893321.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号