
机器学习
文章平均质量分 59
机器学习理论及实践
Michael阿明
两个孩子的父亲,8年机械工程师,已转行互联网做算法,一起继续加油!高举智慧,她就使你高升;怀抱智慧,她就使你尊荣。-- 箴言(4:8)
展开
-
2021年算法工作总结
2021年5月10日,我转行到互联网做算法工作,离开了工作接近8年的机械设计工作,还是要在这里感谢军哥对我的帮助和指点!换工作后,陆续学了《流畅的python》,FastAPI框架学了点皮毛,python web 编程学了点,LeetCode的算法题还在写,新年还是要抽时间多学习新的知识。下面对自己的算法工作做一些总结:如果没有标注数据,一开始需要自己先标注少量的数据,对数据的特点进行大致的归类能用简单规则去解决相当一部分的问题(就是一个简单的手写决策树:if - else)需要抽样估原创 2022-01-17 11:13:10 · 1607 阅读 · 3 评论 -
[Kaggle] Heart Disease Prediction
文章目录1. 数据探索2. 特征处理管道3. 训练模型4. 预测kaggle项目地址1. 数据探索import pandas as pdtrain = pd.read_csv('./train.csv')test = pd.read_csv('./test.csv')train.info()test.info()abs(train.corr()['target']).sort_values(ascending=False)<class 'pandas.core.frame.Dat原创 2020-08-24 20:00:49 · 5687 阅读 · 8 评论 -
[Kesci] 预测分析 · 客户购买预测(AUC评估要使用predict_proba)
文章目录1. Baseline2. AUC评估要使用predict_proba2.1 导入工具包2.2 特征提取2.3 训练+模型选择2.4 测试提交3. 致谢新人赛地址1. Baselineimport pandas as pdimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plt%matplotlib inlineimport seaborn as snsfrom sklearn.model_sele原创 2020-08-16 22:23:41 · 6403 阅读 · 16 评论 -
[Kaggle] Housing Prices 房价预测
文章目录1. 数据清洗kaggle房价预测项目地址1. 数据清洗原创 2020-08-06 23:09:05 · 1443 阅读 · 2 评论 -
sklearn 机器学习 Pipeline 模板
文章目录1. 导入工具包2. 读取数据3. 数字特征、文字特征分离4. 数据处理Pipeline5. 尝试不同的模型6. 参数搜索7. 特征重要性筛选8. 最终完整Pipeline使用 sklearn 的 pipeline 搭建机器的流程本文例子为 [Kesci] 新人赛 · 员工满意度预测参考 [Hands On ML] 2. 一个完整的机器学习项目(加州房价预测)1. 导入工具包import numpy as npimport pandas as pd%matplotlib inline原创 2020-07-29 21:54:40 · 2196 阅读 · 2 评论 -
[Hands On ML] 8. 降维
文章目录1. 降维方法1.1 投影1.2 流行学习2. 降维技术2.1 PCA本文为《机器学习实战:基于Scikit-Learn和TensorFlow》的读书笔记。中文翻译参考特征维度太大,降维加速训练能筛掉一些噪声和不必要的细节更高维度的实例之间彼此距离可能越远,空间分布很大概率是稀疏的1. 降维方法1.1 投影上图,三维空间中的点,都近似在灰色平面附近,可以投影到其上投影并不总是最佳的方法1.2 流行学习Manifold Learning假设:在流形的较低维空间中表示,原创 2020-07-22 08:21:30 · 1245 阅读 · 8 评论 -
[Hands On ML] 7. 集成学习和随机森林
文章目录1. 投票分类2. Bagging、Pasting3. Out of Bag 评价4. 随机贴片与随机子空间5. 随机森林6. 极端随机树 Extra-Trees7. 特征重要程度8. 提升方法8.1 AdaBoost8.2 梯度提升本文为《机器学习实战:基于Scikit-Learn和TensorFlow》的读书笔记。中文翻译参考《统计学习方法》提升方法(Boosting)笔记集成学习:集体的智慧大于个人1. 投票分类使用不同的算法得到不同的分类器from sklearn.datas原创 2020-07-21 08:26:42 · 1418 阅读 · 8 评论 -
[Hands On ML] 6. 决策树
文章目录本文为《机器学习实战:基于Scikit-Learn和TensorFlow》的读书笔记。中文翻译参考原创 2020-07-20 00:23:18 · 1316 阅读 · 2 评论 -
[Hands On ML] 5. 支持向量机
文章目录1. 线性支持向量机2. 非线性支持向量机本文为《机器学习实战:基于Scikit-Learn和TensorFlow》的读书笔记。中文翻译参考SVM 特别适合应用于复杂但中小规模数据集的分类问题。可参考:《统计学习方法》支持向量机(Support Vector Machines,SVM) 笔记1. 线性支持向量机硬间隔最大化:数据必须线性可分,间隔内无数据点软件间隔最大化:允许部分点在间隔内,甚至越过分类线,使用超参数 c 控制较小的 c:惩罚小,间隔更大,较大的 c:惩罚大,间隔小原创 2020-07-16 22:49:48 · 1259 阅读 · 4 评论 -
[Hands On ML] 4. 训练模型
文章目录1. 线性回归1.1 正规方程求解1.2 时间复杂度1.3 梯度下降1.4 批量梯度下降本文为《机器学习实战:基于Scikit-Learn和TensorFlow》的读书笔记。中文翻译参考1. 线性回归如何得到模型的参数1.1 正规方程求解先生成带噪声的线性数据import numpy as npimport matplotlib.pyplot as pltX = 2*np.random.rand(100,1)y = 4+3*X+np.random.randn(100,1)p原创 2020-07-12 23:21:22 · 738 阅读 · 0 评论 -
matplotlib 绘制梯度下降求解过程
机器学习过程中经常需要可视化,有助于加强对模型和参数的理解。下面对梯度下降过程进行动图演示,可以修改不同的学习率,观看效果。import numpy as npimport matplotlib.pyplot as pltfrom IPython import displayX = 2*np.random.rand(100,1)y = 4+3*X+np.random.randn(100,1) # randn正态分布X_b = np.c_[np.ones((100,1)),X] # c_行原创 2020-07-10 22:59:22 · 2717 阅读 · 4 评论 -
[scikit-learn 机器学习] 8. 非线性分类和决策树
文章目录本文为 scikit-learn机器学习(第2版)学习笔记原创 2020-07-01 13:42:05 · 893 阅读 · 2 评论 -
[scikit-learn 机器学习] 7. 朴素贝叶斯
文章目录1. 朴素贝叶斯2. NB 与 逻辑回归对比本文为 scikit-learn机器学习(第2版)学习笔记相关知识参考:《统计学习方法》朴素贝叶斯法(Naive Bayes,NB)1. 朴素贝叶斯通过最大概率来预测类:y=arg maxckP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)\color{red} y=\argmax\limits_{c_k} P(Y=c_k) \prod\limits_{j} P(X^{(j)}=x^{(j)}|Y=c_k)y=ckargmaxP(Y=c原创 2020-06-30 23:54:47 · 731 阅读 · 0 评论 -
[scikit-learn 机器学习] 6. 逻辑回归
文章目录1. 逻辑回归二分类2. 垃圾邮件过滤本文为 scikit-learn机器学习(第2版)学习笔记逻辑回归常用于分类任务1. 逻辑回归二分类《统计学习方法》逻辑斯谛回归模型( Logistic Regression,LR)定义:设 XXX 是连续随机变量, XXX 服从 logistic 分布是指 XXX 具有下列分布函数和密度函数:F(x)=P(X≤x)=11+e−(x−μ)/γF(x) = P(X \leq x) = \frac{1}{1+e^{{-(x-\mu)} / \gamma}原创 2020-06-30 22:26:37 · 1232 阅读 · 4 评论 -
[scikit-learn 机器学习] 5. 多元线性回归
文章目录1. 多元线性回归2. 多项式回归3. 正则化4. 线性回归应用举例(酒质量预测)4.1 数据预览4.2 模型验证5. 梯度下降法本文为 scikit-learn机器学习(第2版)学习笔记1. 多元线性回归模型 y=α+β1x1+β2x2+...+βnxny = \alpha+\beta_1x_1+\beta_2x_2+...+\beta_nx_ny=α+β1x1+β2x2+...+βnxn写成向量形式:Y=Xβ→β=(XTX)−1XTYY=X\beta \rightarrow原创 2020-06-28 23:41:36 · 1804 阅读 · 2 评论 -
[scikit-learn 机器学习] 4. 特征提取
文章目录1. 从类别变量中提取特征本文为 scikit-learn机器学习(第2版)学习笔记许多机器学习问题需要从 类别变量、文本、图片中学习,需要从中提取出数字特征1. 从类别变量中提取特征通常使用 one-hot 编码,产生2进制的编码,会扩展数据,当数据值种类多时,不宜使用from sklearn.feature_extraction import DictVectorizeronehot_encoder = DictVectorizer()X=[ {'city':'Beijin原创 2020-06-27 22:22:05 · 1247 阅读 · 2 评论 -
[scikit-learn 机器学习] 3. K-近邻算法分类和回归
文章目录1. KNN模型2. KNN分类3. 使用sklearn KNN分类4. KNN 回归本文为 scikit-learn机器学习(第2版)学习笔记K 近邻法(K-Nearest Neighbor, K-NN) 常用于 搜索和推荐系统。1. KNN模型确定距离度量方法(如欧氏距离)根据 K 个最近的距离的邻居样本,选择策略做出预测模型假设:距离相近的样本,有接近的响应值2. KNN分类根据身高、体重对性别进行分类import numpy as npimport matplotli原创 2020-06-24 23:55:14 · 2128 阅读 · 0 评论 -
[scikit-learn 机器学习] 2. 简单线性回归
文章目录1. 简单线性回归2. 评价模型1. 简单线性回归import numpy as npimport matplotlib.pyplot as pltX = np.array([[6],[8],[10],[14],[18]])y = np.array([7,9,13,17.5,18])plt.title("pizza diameter vs price")plt.xlabel('diameter')plt.ylabel('price')plt.plot(X,y,'r.') # r表原创 2020-06-23 23:40:16 · 973 阅读 · 0 评论 -
[Kaggle] Digit Recognizer 手写数字识别
文章目录1. BaselineDigit Recognizer 练习地址相关博文:[Hands On ML] 3. 分类(MNIST手写数字预测)1. Baseline读取数据import pandas as pdtrain = pd.read_csv('train.csv')X_test = pd.read_csv('test.csv')特征、标签分离train.head()y_train = train['label']X_train = train.drop(['lab原创 2020-06-20 22:08:14 · 1349 阅读 · 0 评论 -
[Hands On ML] 3. 分类(MNIST手写数字预测)
文章目录本文为《机器学习实战:基于Scikit-Learn和TensorFlow》的读书笔记。中文翻译参考数据集70000张手写数字图片原创 2020-06-19 00:32:06 · 1386 阅读 · 0 评论 -
[Hands On ML] 2. 一个完整的机器学习项目(加州房价预测)
本文为《机器学习实战:基于Scikit-Learn和TensorFlow》的读书笔记。1. 项目介绍利用加州普查数据,建立一个加州房价模型。数据包含每个街区组的人口、收入中位数、房价中位数等指标。利用这个数据进行学习,然后根据其它指标,预测任何街区的的房价中位数。2. 性能指标均方根误差(RMSE):RMSE(X,h)=1m∑i=1m(h(x(i))−y(i))2\operatorname{RMSE}(\mathbf{X}, h)=\sqrt{\frac{1}{m} \sum\limits_原创 2020-06-09 22:30:02 · 4535 阅读 · 13 评论 -
[Kesci] 新人赛 · 员工满意度预测
文章目录1. 导入工具包2. 读取数据3. 特征处理3.1 数字特征归一化3.2 文字特征处理3.3 特征合并4. 定义模型训练5. 预测6. 新人赛结果竞赛地址1. 导入工具包%matplotlib inlineimport numpy as npimport matplotlib.pyplot as pltplt.rcParams['figure.facecolor']=(1,1,1,1) # pycharm 绘图白底,看得清坐标import pandas as pdimport sea原创 2020-05-28 20:41:56 · 5322 阅读 · 47 评论 -
Feature Engineering 特征工程 4. Feature Selection
文章目录1. Univariate Feature Selection 单变量特征选择2. L1 regularization L1正则learn from https://www.kaggle.com/learn/feature-engineering上一篇:Feature Engineering 特征工程 3. Feature Generation经过各种编码和特征生成后,通常会拥有成百上千个特征。这可能导致两个问题:首先,拥有的特征越多,就越有可能过拟合其次,拥有的特征越多,训练模型和优原创 2020-05-21 00:44:07 · 1569 阅读 · 46 评论 -
Feature Engineering 特征工程 3. Feature Generation
文章目录1. 组合特征2. 过去7天的数据3. 上一个相同类型的项目的时间4. 转换数值特征learn from https://www.kaggle.com/learn/feature-engineering上一篇:Feature Engineering 特征工程 2. Categorical Encodings从原始数据创建新特征是改进模型的最佳方法之一例如,数据有很长连续时间的,我们可以把最近一周的提取出来作为一个新的特征1. 组合特征最简单方法之一是组合特征例如,如果一条记录的国家/原创 2020-05-20 21:45:03 · 1421 阅读 · 8 评论 -
Feature Engineering 特征工程 2. Categorical Encodings
文章目录1. Count Encoding 计数编码2. Target Encoding 目标编码3. CatBoost Encodinglearn from https://www.kaggle.com/learn/feature-engineering上一篇:Feature Engineering 特征工程 1. Baseline Model在中级机器学习里介绍过了Label Encoding、One-Hot Encoding,下面将学习count encoding计数编码,target enc原创 2020-05-20 00:15:54 · 1847 阅读 · 10 评论 -
Feature Engineering 特征工程 1. Baseline Model
文章目录1. Baseline Modellearn from https://www.kaggle.com/learn/feature-engineering1. Baseline Model预测任务:用户是否会下载APP,当其点击广告以后数据集:ks-projects-201801.csv读取数据,指定两个特征'deadline','launched',parse_dates解析为时间ks = pd.read_csv('ks-projects-201801.csv',parse_date原创 2020-05-19 21:44:05 · 1785 阅读 · 12 评论 -
【Kaggle】Intermediate Machine Learning(XGBoost + Data Leakage)
文章目录6. XGBoost上一篇:【Kaggle】Intermediate Machine Learning(管道+交叉验证)6. XGBoost参考:《统计学习方法》提升方法(Boosting)extreme gradient boosting “梯度提升”是指对损失函数使用梯度下降来确定此新模型中的参数from xgboost import XGBRegressormy_model = XGBRegressor(n_estimators=500)my_model.fit(X_train原创 2020-05-13 22:54:29 · 1581 阅读 · 30 评论 -
【Kaggle】Intermediate Machine Learning(管道+交叉验证)
文章目录4. Pipelines 管道上一篇:【Kaggle】Intermediate Machine Learning(缺失值+文字特征处理)4. Pipelines 管道该模块可以把数据前处理+建模整合起来好处:更清晰的代码:在预处理的每个步骤中对数据的核算都可能变得混乱。使用管道,您无需在每个步骤中手动跟踪训练和验证数据。错误更少:错误地使用步骤或忘记预处理步骤的机会更少。易于生产部署对模型验证也有好处步骤1: 定义前处理步骤对缺失的数字数据,进行插值对文字特征进行one-原创 2020-05-12 13:11:11 · 1863 阅读 · 27 评论 -
【Kaggle】Intermediate Machine Learning(缺失值+文字特征处理)
文章目录1. Introduction2. Missing Valuesfrom https://www.kaggle.com/learn/intermediate-machine-learning1. Introduction按照教程给的7个特征,给定5种参数下的随机森林模型,选出mae误差最小的,进行提交import pandas as pdfrom sklearn.model_selection import train_test_split# Read the dataX_ful原创 2020-05-11 23:13:26 · 1396 阅读 · 16 评论 -
【Kaggle】Intro to Machine Learning 第一次提交 Titanic
文章目录项目官网地址新手可以参考这篇 8、Getting Started With Titanic,教你如何操作、提交等自己简要在记录一下:Join the competition各个 tab 下可以查看数据Data、代码编写Notebooks、讨论、排名、比赛规则、队伍点击 Notebooks,新建文件添加比赛数据集编写代码import numpy as np # linear algebraimport pandas as pd # data processing, CSV原创 2020-05-09 16:06:47 · 2529 阅读 · 18 评论 -
蒙特卡罗法近似求解圆周率π
文章目录1. 原理2. 模拟代码1. 原理给出 x∈[0,1),y∈[0,1)x \in [0,1),y\in[0,1)x∈[0,1),y∈[0,1) 的随机点,模拟 ttt 次,落在以 (0,0)(0,0)(0,0) 为圆心,半径 r=1r=1r=1 的圆以内的次数为 ccc当模拟次数足够大时,可以看成面积比 π4=ct⇒π=4c/t\frac{\pi}{4} = \frac{c}{t...原创 2020-05-02 10:21:20 · 1869 阅读 · 20 评论 -
基于sklearn.decomposition.TruncatedSVD的潜在语义分析实践
class sklearn.decomposition.TruncatedSVD(n_components=2,algorithm='randomized', n_iter=5, random_state=None, tol=0.0)原创 2020-05-01 13:53:24 · 4560 阅读 · 25 评论 -
基于奇异值分解(SVD)的图片压缩实践
文章目录1. 前言2. 原理简介2.1 SVD定义3. 实践代码4. 参考文献1. 前言数字图片在计算机中是以矩阵形式存储的。所以可以通过矩阵理论和矩阵算法对数字图像进行分析和处理。本文通过对图片进行SVD压缩,对不同的参数下的压缩效果进行对比。SVD概念可以参考:《统计学习方法》–奇异值分解(Singular Value Decomposition,SVD)2. 原理简介彩色图片有3个...原创 2020-04-22 23:33:48 · 9671 阅读 · 33 评论 -
泰坦尼克号生存预测入门
文章目录1. 数据预览2. 特征选择本文作为学习记录,参考此处,如有侵权,联系删除。1. 数据预览数据集下载import pandas as pdimport numpy as npfrom pandas import Series, DataFramedata_train = pd.read_csv("titanic_train.csv")data_test = pd.rea...原创 2020-04-09 15:29:47 · 992 阅读 · 28 评论 -
基于感知机Perceptron的鸢尾花分类实践
文章目录1. 感知机简介2. 编写感知机实践2.1 数据处理2.2 编写感知机类2.3 多参数组合运行3. sklearn 感知机实践本文将使用感知机模型,对鸢尾花进行分类,并调整参数,对比分类效率。1. 感知机简介感知机(perceptron)是二类分类的线性分类模型输入:实例的特征向量输出:实例的类别,取 +1 和 -1 二值感知机对应于输入空间(特征空间)中将实例划分为正负两类...原创 2020-02-29 21:00:28 · 10679 阅读 · 12 评论 -
基于sklearn的LogisticRegression鸢尾花多类分类实践
本文使用sklearn的逻辑斯谛回归模型,进行鸢尾花多分类预测,对OvR与OvO多分类方法下的预测结果进行对比。原创 2020-02-20 00:26:58 · 10595 阅读 · 4 评论 -
基于sklearn的LogisticRegression二分类实践
本文使用sklearn的逻辑斯谛回归模型,进行二分类预测,并通过调整各种参数,对预测结果进行对比。原创 2020-02-12 23:48:39 · 7368 阅读 · 2 评论 -
基于HMM的中文词性标注 POSTagging
文章目录1. 词性标注1.1 概念1.2 任务1.3 预处理1.4 初步统计预览2. 最大概率模型2.1 训练2.2 预测2.3 结果评估3. 隐马尔科夫HMM模型本文的代码是在徐老师的代码基础上,自己加了些注释,在此表示感谢!1. 词性标注1.1 概念请看专家介绍 中文词性标注简介1.2 任务给定 标注文本corpus4pos_tagging.txt,训练一个模型,用模型预测给定...原创 2019-12-20 09:36:37 · 3646 阅读 · 8 评论