初步了解机器学习

机器学习的5个步骤

1)特征工程
2)Train和Test数据分割
3)模型训练
4)预测
5)交叉验证
6)搜索最优参数

我们以处理鸢花尾数据为例进行学习

首先是加载项

from __future__ import print_function
# 预先配置好的鸢尾花数据集
from sklearn.datasets import load_iris
# 交叉验证,将训练集重复分配,防止分配和测试训练集的方法问题导致对模型训练的影响
from sklearn.cross_validation import train_test_split
# 最近临分配器做预测
from sklearn.neighbors import KNeighborsClassifier
# 做一个特征工程,将特征两两组合,扩充出来更多的特征
from sklearn.preprocessing import PolynomialFeatures

第一步 特征工程

# 加载数据集
# 数据集每一列代表花瓣,花萼的长度和宽度
iris = load_iris()
# 花的数据特征
x = iris.data
# 预测的花的类别
y = iris.target
print(x,y)
# degree = 2,将任意两个特征做两两组合
# 做特征工程,扩充现有的属性,帮助做后续预测
poly = PolynomialFeatures(3)
x_Poly = poly.fit_transform(x)
print(x_Poly)

第二步

# x_train,y_train用于训练模型,x_test,y_test用于做测试
# x_train,x_test,y_train,y_test = train_test_split(x,y,random_state = 4)
x_train,x_test,y_train,y_test = train_test_split(x_Poly,y,random_state = 4)

第三步

# 最近邻,设定一个步长(这里设置为5),计算距离当前点最近的5个邻居点
# 类别占比最高点的即认为是当前点为最佳预测
knn = KNeighborsClassifier(n_neighbors = 5)
knn.fit(x_train,y_train)

第四步

# y_pred是预测值,y_test是真实值
y_pred = knn.predict(x_test)
print(y_pred)
print(y_test)
# 预测值越贴近真实值,说明误差越低,分类器效果越好
print(knn.score(x_test,y_test))

第五步

from sklearn.cross_validation import cross_val_score

knn = KNeighborsClassifier(n_neighbors = 5)
scores = cross_val_score(knn,x,y,cv = 5,scoring = 'accuracy')
print(scores)

第六步

from sklearn.cross_validation import cross_val_score
import matplotlib.pyplot as plt

k_range = range(1, 31)
k_scores = []
# 对k值分别进行实验,选择结果较好的
for k in k_range:
    knn = KNeighborsClassifier(n_neighbors = k)
    
    scores = cross_val_score(knn,x,y,cv = 10 ,scoring = 'accuracy')
    k_scores.append(scores.mean())
# print(k_scores)
plt.plot(k_range,k_scores)
plt.xlabel('Value of K for KNN')
plt.ylabel('Cross-Validated Accuracy')
# 得分高的参数较优
plt.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值