【机器学习_鸢尾花实例】

引言

  • 机器学习是从数据中提取知识。

  • 监督学习(supervised learning): 已知 input & output.

  • 无监督学习:已知 input.


  • 样本 sample:每个实体或每一行。
  • 特征 feature:每一列(用来描述这些实体的属性)。
  • 特征提取(特征工程):如何构建良好的数据表征。

1.1 python 相关

  • python 有用于数据加载、可视化、统计、自然语言处理、图像处理等各种功能的库。
  • 机器学习和数据分析本质都是迭代过程。

1.2 鸢尾花实例

  • 熟悉 数据集
from sklearn.datasets import load_iris

iris_dataset = load_iris();
# DESCR 是对应值数据集的简要说明
print ("keys of iris_dataset: \n{}".format(iris_dataset.keys()));
print (iris_dataset['DESCR'][:193] + "\n...");
print ("Target names: {}".format(iris_dataset["target_names"]));
print ("feature_names {}".format(iris_dataset["feature_names"]))
print ("data: {}".format(iris_dataset["data"].shape))
print ("target: {}".format(iris_dataset["target"]))
  • 数据集构建散点图
from matplotlib.pyplot import fignum_exists
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import pandas as pd
import matplotlib.pyplot as plt
import mglearn

iris_dataset = load_iris();
# print("iris dataset: {}".format(iris_dataset.feature_names))

X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0);

# ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
iris_dataframe = pd.DataFrame(X_train, columns = iris_dataset.feature_names);
pd.plotting.scatter_matrix(iris_dataframe, c = y_train, figsize=(15, 15), marker='o', hist_kwds={'bins': 20}, s = 60, alpha=.8, cmap = mglearn.cm3)
plt.show();

在这里插入图片描述


1.3 模型构建

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import numpy as np

iris_dataset = load_iris();
X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0);

1.3.1 K近邻算法

""" k 近邻算法 """
knn = KNeighborsClassifier(n_neighbors=1);

# 返回 knn 对象本身并作原处修改
val = knn.fit(X_train, y_train);

1.3.2 预测

""" 预测 """
# scikit-learn 输入的必须是二维数组
X_new = np.array([[5, 2.9, 1, 0.2]]);

# 预测
prediction = knn.predict(X_new);
print("Prediction:{}".format(prediction)) # 类别 0
print("Predicted target name: {}".format(iris_dataset['target_names'][prediction]))

1.3.3 评估模型

""" 评估模型 """
y_pred = knn.predict(X_test);
print("Test set predictions: {}".format(y_pred));

# 计算测试集精度
print("Test set score: {}".format(np.mean(y_pred == y_test)));

# 计算测试集精度
precise = knn.score(X_test, y_test);
print(precise);

1.4 总结

  • 数据集分为 训练集 和 测试集。
  • K临近算法:根据新数据点在训练集中距离最近的邻居来进行预测。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值