目录

实例一:线性回归波士顿房价

实例二:KNN实现电影分类

实例三:基于线性回归预测波士顿房价

​ 实例四:sklearn完成逻辑回归鸢尾花分类

实例五:支持向量机完成逻辑回归鸢尾花分类

实例六:使用决策树实现鸢尾花分类

实例七:使用随机森林实现鸢尾花分类

实例八:使用朴素贝叶斯进行鸢尾花分类

实例九:使用Kmeans来进行鸢尾花分类

实例十:K最近邻的使用方式

实例十一:kmeans的其他展示方式

实例十二:Kmeans实现鸢尾花聚类


实例一:线性回归波士顿房价

'''实例一:线性回归波士顿房价【回归问题】
'''
# 导入数据集(波士顿房价--小型数据集)
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression      # 线性回归
import matplotlib.pyplot as plt# 加载数据
X, y = load_boston(return_X_y=True)
# print(X)
# print(X.shape)# 对数据集进行处理,只展示房间数
X1 = X[:,5:6]
# print(X1)
# print(X1.shape)# 切分数据集
train_x, test_x, train_y, test_y = train_test_split(X1, y, test_size=0.3, random_state=2)# 创建线性回归对象
lr = LinearRegression()# 训练模型
lr.fit(train_x, train_y)# 预测得到结果
result = lr.predict(test_x)# 展示数据
plt.scatter(train_x, train_y, color='blue')# 划线
# plt.plot(test_x, test_y, color='red')
plt.plot(test_x, result, color='red')plt.show()

实例二:KNN实现电影分类

'''实例二:KNN实现电影分类【分类问题】
'''
import numpy as np
import pandas as pd# 训练数据
train_data = {'宝贝当家':[45,2,9,'喜剧片'],'美人鱼':[21,17,5,'喜剧片'],'澳门风云3':[54,9,11,'喜剧片'],'功夫熊猫3':[39,0,31,'喜剧片'],'谍影重重':[5,2,57,'动作片'],'叶问3':[3,2,65,'动作片'],'我的特工爷爷':[6,4,21,'动作片'],'奔爱':[7,46,4,'爱情片'],'夜孔雀':[9,39,8,'爱情片'],'代理情人':[9,38,2,'爱情片'],'新步步惊心':[8,34,17,'爱情片'],'伦敦陷落':[2,3,55,'动作片']}# 将训练数据封装为 DataFrame
train_df = pd.DataFrame(train_data).T
# 设置表格列名
train_df.columns = ['搞笑镜头','拥抱镜头','打斗镜头','电影类型']
# 设置测试数据
test_data = {'唐人街探案':[23,3,17]}# 计算欧氏距离
def euclidean_distance(vec1,vec2):return  np.sqrt(np.sum(np.square(vec1 - vec2)))# 设定 K 值
K = 3
movie = '唐人街探案'# 计算出所有的欧式距离
d = []
for train_x in train_df.values[:,:-1]:test_x = np.array(test_data[movie])d.append(euclidean_distance(train_x,test_x))dd = pd.DataFrame(train_df.values, index=d)# 根据排序显示
dd1 = pd.DataFrame(dd.sort_index())
print(dd1.values[:K,-1:].max())

实例三:基于线性回归预测波士顿房价

'''实例三:基于线性回归预测波士顿房价
'''
# 1. 数据加载和预处理
import pandas as pd
from sklearn.datasets import load_boston
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split# 获取波士顿房价数据集
boston = load_boston()# 获取数据集特征(训练数据X)
X = boston.data
# 获取数据集标记(label数据y)
y = boston.target
# print(pd.DataFrame(X))# 特征归一化到 [0,1] 范围内:提升模型收敛速度
X = MinMaxScaler().fit_transform(X)
# print(X)
# print(pd.DataFrame(X))# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=2020)# 2. 线性回归算法实现import numpy as np
import matplotlib.pyplot as pltclass LinearRegression:'''线性回归算法实现'''def __init__(self, alpha=0.1, epoch=5000, fit_bias=True):'''alpha: 学习率,控制参数更新的幅度epoch: 在整个训练集上训练迭代(参数更新)的次数fit_bias: 是否训练偏置项参数'''self.alpha = alphaself.epoch = epoch# cost_record 记录每一次迭代的经验风险self.cost_record = []self.fit_bias = fit_bias# 预测函数def predict(self, X_test):'''X_test: m x n 的 numpy 二维数组'''# 模型有偏置项参数时:为每个测试样本增加特征 x_0 = 1if self.fit_bias:x_0 = np.ones(X_test.shape[0])X_test = np.column_stack((x_0, X_test))# 根据公式返回结果return np.dot(X_test, self.w)# 模型训练:使用梯度下降法更新参数(模型参数)def fit(self, X_train, y_train):'''X_train: m x n 的 numpy 二维数组y_train:有 m 个元素的 numpy 一维数组'''# 训练偏置项参数时:为每个训练样本增加特征 x_0 = 1if self.fit_bias:x_0 = np.ones(X_train.shape[0])X_train = np.column_stack((x_0, X_train))# 训练样本数量m = X_train.shape[0]# 样本特征维数n = X_train.shape[1]# 初始模型参数self.w = np.ones(n)# 模型参数迭代for i in range(self.epoch):# 计算训练样本预测值y_pred = np.dot(X_train, self.w)# 计算训练集经验风险cost = np.dot(y_pred - y_train, y_pred - y_train) / (2 * m)# 记录训练集经验风险self.cost_record.append(cost)# 参数更新self.w -= self.alpha / m * np.dot(y_pred - y_train, X_train)# 保存模型self.save_model()# 显示经验风险的收敛趋势图def polt_cost(self):plt.plot(np.arange(self.epoch), self.cost_record)plt.xlabel("epoch")plt.ylabel("cost")plt.show()# 保存模型参数def save_model(self):np.savetxt("model.txt", self.w)# 加载模型参数def load_model(self):self.w = np.loadtxt("model.txt")# 3. 模型的训练和预测
# 实例化一个对象
model = LinearRegression()
# 在训练集上训练
model.fit(X_train, y_train)
# 在测试集上预测
y_pred = model.predict(X_test)# 4. ToDo:打印模型参数
print('偏置参数:', 'ToDo')
print('特征权重:', 'ToDo')# 5. 打印测试集前5个样本的预测结果
print('预测结果:', y_pred[:5])# # 评分
# print(model.score(X_test,y_test))

 实例四:sklearn完成逻辑回归鸢尾花分类

'''实例四:sklearn完成逻辑回归鸢尾花分类
'''
from sklearn import datasets
import numpy as np
import matplotlib.pyplot as plt
from mlxtend.plotting import plot_decision_regionsiris = datasets.load_iris()
X = iris.data[:, [2, 3]]
y = iris.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, random_state=0)
from sklearn.preprocessing import StandardScaler
#正则化
sc = StandardScaler()
sc.fit(X_train)
X_train_std = sc.transform(X_train)
X_test_std = sc.transform(X_test)
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression(C=1000.0, random_state=0)
lr.fit(X_train_std, y_train)
X_combined_std = np.vstack((X_train_std, X_test_std))
y_combined = np.hstack((y_train, y_test))
plot_decision_regions(X_combined_std, y_combined, clf=lr, filler_feature_ranges=range(105, 150))
plt.xlabel('petal length [standardized]')
plt.ylabel('petal width [standardized]')
plt.legend(loc='upper left')
plt.tight_layout()
# plt.savefig('./figures/logistic_regression.png', dpi=300)
plt.show()

实例五:支持向量机完成逻辑回归鸢尾花分类

'''实例五:支持向量机完成逻辑回归鸢尾花分类
'''
from sklearn import datasets
import numpy as np
from sklearn.svm import SVC
import matplotlib.pyplot as plt
from mlxtend.plotting import plot_decision_regionsiris = datasets.load_iris()
X = iris.data[:, [2, 3]]
y = iris.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, random_state=0)
from sklearn.preprocessing import StandardScalerss =  StandardScaler().fit(X_train)
x_train_std = ss.transform(X_train)
x_test_std = ss.transform(X_test)#正则化
svc = SVC(kernel='rbf', random_state=0, gamma=0.2, C=1.0)
svc.fit(x_train_std,y_train)
X_combined_std = np.vstack((x_train_std, x_test_std))
y_combined = np.hstack((y_train, y_test))
plot_decision_regions(X_combined_std, y_combined, clf=svc, filler_feature_ranges=range(105, 150))
plt.xlabel('petal length [standardized]')
plt.ylabel('petal width [standardized]')
plt.legend(loc='upper left')
plt.tight_layout()
# plt.savefig('./figures/support_vector_machine_rbf_iris_1.png', dpi=300)
plt.show()

实例六:使用决策树实现鸢尾花分类

'''实例六:使用决策树实现鸢尾花分类
'''
from sklearn import datasets
import numpy as np
from sklearn.svm import SVC
import matplotlib.pyplot as plt
from sklearn.tree import DecisionTreeClassifier
from mlxtend.plotting import plot_decision_regionsiris = datasets.load_iris()
X = iris.data[:, [2, 3]]
y = iris.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, random_state=0)
from sklearn.preprocessing import StandardScalerss =  StandardScaler().fit(X_train)
x_train_std = ss.transform(X_train)
x_test_std = ss.transform(X_test)# 正则化
dtc = DecisionTreeClassifier(criterion='entropy',random_state=0,max_depth=3)
dtc.fit(X_train,y_train)
X_combined_std = np.vstack((x_train_std, x_test_std))
y_combined = np.hstack((y_train, y_test))
plot_decision_regions(X_combined_std, y_combined, clf=dtc, filler_feature_ranges=range(105, 150))
plt.xlabel('petal length [standardized]')
plt.ylabel('petal width [standardized]')
plt.legend(loc='upper left')
plt.tight_layout()
# plt.savefig('./figures/support_vector_machine_rbf_iris_1.png', dpi=300)
plt.show()

实例七:使用随机森林实现鸢尾花分类

'''实例七:使用随机森林实现鸢尾花分类
'''
from sklearn import datasets
import numpy as np
from sklearn.svm import SVC
import matplotlib.pyplot as plt
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from mlxtend.plotting import plot_decision_regionsiris = datasets.load_iris()
X = iris.data[:, [2, 3]]
y = iris.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, random_state=0)
from sklearn.preprocessing import StandardScalerss =  StandardScaler().fit(X_train)
x_train_std = ss.transform(X_train)
x_test_std = ss.transform(X_test)# 正则化
rfc = RandomForestClassifier(criterion='entropy',n_estimators=10, random_state=1,n_jobs=2)
rfc.fit(X_train,y_train)
X_combined_std = np.vstack((x_train_std, x_test_std))
y_combined = np.hstack((y_train, y_test))
plot_decision_regions(X_combined_std, y_combined, clf=rfc, filler_feature_ranges=range(105, 150))
plt.xlabel('petal length [standardized]')
plt.ylabel('petal width [standardized]')
plt.legend(loc='upper left')
plt.tight_layout()
# plt.savefig('./figures/support_vector_machine_rbf_iris_1.png', dpi=300)
plt.show()

实例八:使用朴素贝叶斯进行鸢尾花分类

'''实例八:使用朴素贝叶斯进行鸢尾花分类
'''
from sklearn import datasets
import numpy as np
from sklearn.svm import SVC
import matplotlib.pyplot as plt
from sklearn.naive_bayes import GaussianNB
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from mlxtend.plotting import plot_decision_regionsiris = datasets.load_iris()
X = iris.data[:, [2, 3]]
y = iris.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, random_state=0)
from sklearn.preprocessing import StandardScalerss =  StandardScaler().fit(X_train)
x_train_std = ss.transform(X_train)
x_test_std = ss.transform(X_test)# 正则化
gnb = GaussianNB()
gnb.fit(X_train,y_train)
X_combined_std = np.vstack((x_train_std, x_test_std))
y_combined = np.hstack((y_train, y_test))
plot_decision_regions(X_combined_std, y_combined, clf=gnb, filler_feature_ranges=range(105, 150))
plt.xlabel('petal length [standardized]')
plt.ylabel('petal width [standardized]')
plt.legend(loc='upper left')
plt.tight_layout()
# plt.savefig('./figures/support_vector_machine_rbf_iris_1.png', dpi=300)
plt.show()

实例九:使用Kmeans来进行鸢尾花分类

'''实例九:使用Kmeans来进行鸢尾花分类
'''
from sklearn import datasets
import numpy as np
from sklearn.svm import SVC
import matplotlib.pyplot as plt
from sklearn.naive_bayes import GaussianNB
from sklearn.cluster import KMeans
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from mlxtend.plotting import plot_decision_regionsiris = datasets.load_iris()
X = iris.data[:, [2, 3]]
y = iris.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, random_state=0)
from sklearn.preprocessing import StandardScalerss =  StandardScaler().fit(X_train)
x_train_std = ss.transform(X_train)
x_test_std = ss.transform(X_test)# 正则化
km = KMeans(n_clusters=3)
km.fit(X_train,y_train)
X_combined_std = np.vstack((x_train_std, x_test_std))
y_combined = np.hstack((y_train, y_test))
plot_decision_regions(X_combined_std, y_combined, clf=km, filler_feature_ranges=range(105, 150))
plt.xlabel('petal length [standardized]')
plt.ylabel('petal width [standardized]')
plt.legend(loc='upper left')
plt.tight_layout()
# plt.savefig('./figures/support_vector_machine_rbf_iris_1.png', dpi=300)
plt.show()

实例十:K最近邻的使用方式

'''实例十:K最近邻的使用方式
'''
from sklearn import datasets
import numpy as np
from sklearn.svm import SVC
import matplotlib.pyplot as plt
from sklearn.naive_bayes import GaussianNB
from sklearn.cluster import KMeans
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from mlxtend.plotting import plot_decision_regionsiris = datasets.load_iris()
X = iris.data[:, [2, 3]]
y = iris.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, random_state=0)
from sklearn.preprocessing import StandardScalerss =  StandardScaler().fit(X_train)
x_train_std = ss.transform(X_train)
x_test_std = ss.transform(X_test)# 正则化
knn = KNeighborsClassifier(n_neighbors=5, p=2, metric='minkowski')
knn.fit(x_train_std, y_train)
X_combined_std = np.vstack((x_train_std, x_test_std))
y_combined = np.hstack((y_train, y_test))
plot_decision_regions(X_combined_std, y_combined, clf=knn, filler_feature_ranges=range(105, 150))
plt.xlabel('petal length [standardized]')
plt.ylabel('petal width [standardized]')
plt.legend(loc='upper left')
plt.tight_layout()
# plt.savefig('./figures/support_vector_machine_rbf_iris_1.png', dpi=300)
plt.show()

实例十一:kmeans的其他展示方式

''''实例十一:•kmeans的其他展示方式
'''
import pandas as pd
from sklearn import datasets
from sklearn.cluster import KMeans
import matplotlib.pyplot as pltiris = datasets.load_iris()
X = iris.data[:, [2, 3]]
y = iris.targetdf = pd.DataFrame(X)
df.columns=['x','y']
df['kind'] = y
df['kind'] = y# 读取数据
data = iris
# 去除最后一列的数据,也就是标签
data1 = df
# print(data1)
# 聚类数为3
km = KMeans(n_clusters=3)
# 拟合数据
km.fit(data1)
predict = km.predict(data1)
# 设定坐标范围
# plt.figure(figsize=(10,10))
# 开始绘图
colored = ['orange', 'green', 'pink']
col = [colored[i] for i in predict]
plt.scatter(data1['x'], data1['y'], color=col)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
print(predict)# 真实的值
# 将列表中的最后一行标签转化为数字类型
class_mapping = {'Iris-setosa': 0, 'Iris-versicolor': 1, 'Iris-virginica': 2}
data1['kind'] = data1['kind'].map(class_mapping)
# 设定颜色
# colored = ['green','orange','pink']
# 把标签设置为不同的颜色c = [colored[i] for i in y]
# 绘制散点图,用x和y标签
plt.scatter(data1['x'], data1['y'], color=c)
plt.xlabel('x')
plt.ylabel('y')
plt.show()

实例十二:Kmeans实现鸢尾花聚类

import pandas as pd
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt# 读取数据
data = pd.read_csv(r"C:\Users\单纯小男子\Downloads\iris.csv")
# 去除最后一列的数据,也就是标签
data1 = data.drop(['kind'], axis=1)
# print(data1)
# 聚类数为3
km = KMeans(n_clusters=3)
# 拟合数据
km.fit(data1)
predict = km.predict(data1)
# 设定坐标范围
# plt.figure(figsize=(10,10))
# 开始绘图
colored = ['orange', 'green', 'pink']
col = [colored[i] for i in predict]
plt.scatter(data1['x'], data1['y'], color=col)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
print(predict)# 真实的值
# 将列表中的最后一行标签转化为数字类型
class_mapping = {'Iris-setosa': 0, 'Iris-versicolor': 1, 'Iris-virginica': 2}
data['kind'] = data['kind'].map(class_mapping)
# 设定颜色
# colored = ['green','orange','pink']
# 把标签设置为不同的颜色c = [colored[i] for i in data['kind']]
# 绘制散点图,用x和y标签
plt.scatter(data['x'], data['y'], color=c)
plt.xlabel('x')
plt.ylabel('y')
plt.show()

 

「超级干货大放送」机器学习十二种经典模型实例相关推荐

  1. 【数据资源】遥感资源大放送(下)| 11 个经典遥感数据集

    By 超神经 内容提要:利用遥感影像进行土地类别分型,最常用的方法是语义分割.本文继上期土地分类模型训练教程之后,又整理了几大主流公开遥感数据集. 关键词:遥感数据集   语义分割   机器视觉 在上 ...

  2. 我的前半生面试过300精英+学霸,总结出的面试经验干货大放送!

    ▼ 常爸,曾经的耶鲁管理学院校友面试官.他在高盛投行部的时候,每年要面试40-50个申请高盛的名校毕业生/MBA,五年下来,总共面过两百多人. 能到耶鲁/高盛面试这一关的,都是职场精英+学霸,但是说实 ...

  3. 面试干货——年底干货大放送,你准备好了吗?

    前言:年底了,骚年们有没有很鸡冻--年终奖有盼头了.之前在介绍事件的这篇 C#基础系列--再也不用担心面试官问我"事件"了 也聊到了面试,引起了很多园友的共鸣.在不久的年后,热门的 ...

  4. WOT干货大放送:大数据架构发展趋势及探索实践分享

    WOT大数据处理技术分会场,PingCAP CTO黄东旭.易观智库CTO郭炜.Mob开发者服务平台技术副总监林荣波.宜信技术研发中心高级架构师王东及商助科技(99Click)顾问总监郑泉五位讲师,分别 ...

  5. 吕玉琴考研指导电子版_【干货大放送】中国历代文学作品选阅读指导PDF

     跟紧我,来年轻松收获录取通知书~ 长按一战成硕 hello,我是小致 带你考研上路 今天给大家分享的干货内容是 <历代文学作品选>阅读指导 之前1000题浓缩资料, 后台回复[浓缩]获取 ...

  6. 目前计算机常用的硬盘类型,干货大放送,电脑硬盘分类你知道几个?

    用了这么多年,电脑硬盘分类你知道多少? 硬盘是电脑主要的存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成.碟片外覆盖有铁磁性材料:依类型来分,硬盘大致可以分成固态硬盘(SSD).机械硬盘(HDD) ...

  7. 遥感资源大放送(上):用开源代码,训练土地分类模型

    教程传送门 遥感资源大放送(下)| 11 个经典遥感数据集 遥感影像是开展测绘地理信息工作的重要数据,对于地理国情监测.地理信息数据库更新等意义重大,在军事.商业.民生等领域发挥了越来越重要的作用. ...

  8. 「分布式系统之美」知乎圆桌精选大放送第二期|不要放过任何你感兴趣的话题

    相信大家看完上周「分布式系统之美」知乎圆桌精选大放送后还意犹未尽,新的一轮热门讨论已被小编盘点下来,快来跟随小编一起看看有什么新的答案吧. 标题精选问题 & 回答 MySQL 单表日均 15 ...

  9. 【资源放送】机器学习/深度学习最全公开视频大放送!

    文章首发于微信公众号<有三AI> [资源放送]机器学习/深度学习最全公开视频大放送! 该篇小记一下机器学习与深度学习的一些好的基础视频资源. 如果你是刚入门的小白,建议细细阅读一下下面将要 ...

最新文章

  1. public接口可以被任何一个类实现_一文带你深入Java核心技术:对象克隆+接口与回调,还有这种操作...
  2. POJ3111 K Best —— 01分数规划 二分法
  3. perl学习(1) 入门
  4. OpenCV gapi模块API的引用(附完整代码)
  5. E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
  6. 2020牛客国庆集训派对day2 VIRUS OUTBREAK
  7. Linux 金字塔 的shell命令,linux下保留文件系统下剩余指定数目文件的shell脚本
  8. uber-zap_如何构建自己的Uber-for-X应用程序(PART 2)
  9. 1.1 让CPU占用率曲线听你指挥[cpu manager]
  10. JAVA 内部类 泛型 实现堆栈
  11. IIS 搭建简单网站 并 发布项目
  12. 调整姿势!登顶 MacBook高效工作环境配置!
  13. 网络---协议(TCP/IP五层模型)
  14. stm32寄存器版学习笔记06 输入捕获(ETR脉冲计数)
  15. 面试官:你在平时的工作中遇到过哪些问题让你印象深刻?
  16. 【前端】ionic--星级评价半颗星实现方法
  17. jquery实现app开发闹钟功能_jQuery Mobile 实现苹果滑动删除闹钟功能的几点总结
  18. 批量将 PDF 转为 ePub 格式文档
  19. 区块链学习笔记15——ETH状态树
  20. orcad capture 快速制作原理图库

热门文章

  1. PHP中用ffmpeg获取视频封面图片详细步骤
  2. 微信小程序 加载图片时,先拉长,再恢复正常
  3. 智能电能表怎么看电量?
  4. gentoo 屏幕截图工具 scrot
  5. U盘怎么加密?最简单的U盘加密方法
  6. 科技只是拐杖:技术影响人类创造力的悲观分析
  7. Baidu NLP词法分析工具LAC使用体验
  8. 命名实体识别的两种方法
  9. php拼多多api接口,拼多多API
  10. java case 枚举_java枚举类型使用switch case