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