使用机器学习解决实际问题头歌实验

本文展示了几个使用Python进行机器学习的示例,包括KNN算法用于花朵识别,线性回归预测房价,GaussianMixture模型进行图像分割,以及LogisticRegression在癌症诊断中的应用。
摘要由CSDN通过智能技术生成

1. Hello,机器学习

 

2. 识别花朵

#encoding=utf8



from sklearn.neighbors import KNeighborsClassifier



def knn(train_data,train_label,test_data):

    '''

    input:train_data用来训练的数据

          train_label用来训练的标签

          test_data用来测试的数据

    '''

    #********* Begin *********#

    knn = KNeighborsClassifier()

    knn.fit(train_data,train_label)

    predict = knn.predict(test_data)



    #********* End *********#

    return predict

第3关:预测房价

#encoding=utf8
from sklearn.linear_model import LinearRegression

def lr(train_data,train_label,test_data):
    '''
    input:train_data用来训练的数据
          train_label用来训练的标签
          test_data用来测试的数据
    '''
    #********* Begin *********#
    lr = LinearRegression()
    lr.fit(train_data,train_label)
    predict = lr.predict(test_data)

    #********* End *********#
    return predict

第4关:图像分割

from PIL import Image
import numpy as np
from sklearn.mixture import GaussianMixture
#******** Begin *********#
#加载图片
im = Image.open('./step4/image/test.jpg')
#将图片转换为ndarray
img = np.array(im)
#获取高宽通道数
h, w, c = img.shape
#将图片转换为矩阵形状
img = img.reshape(-1,3)
#实例化一个将数据聚成3个簇的高斯混合聚类器
gmm = GaussianMixture(3)
#训练模型
gmm.fit(img)
#进行预测
pred = gmm.predict(img)
#将预测结果reshape成[h,w]形状
pred = pred.reshape(h, w)
#初始化result
result = np.zeros((h, w, c))
#将预测为0的簇标为黄色
result[pred == 0, :] = [255, 255, 0]
#将预测为1的簇标为蓝色
result[pred == 1, :] = [0, 0, 255]
#将预测为2的簇标为绿色
result[pred == 2, :] = [0, 255, 0]
#将结果转换成image类型
result = Image.fromarray(result.astype('uint8'))
#保存结果
result.save('./step4/dump/result.jpg')
#********* End *********#

5. 癌症诊断

#encoding=utf8
from sklearn.linear_model import LogisticRegression

def cancer_clf(train_data,train_label,test_data):
    '''
    train_data(ndarray):训练数据
    train_label(ndarray):训练标签
    test_data(ndarray):ces数据
    '''
    #********* Begin *********#
    logreg = LogisticRegression(C=100)
    logreg.fit(train_data, train_label)
    predict = logreg.predict(test_data)

    #********* End *********#
    return predict
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

兜里没有一毛钱

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

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

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

打赏作者

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

抵扣说明:

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

余额充值