机器学习
机器学习算法
灯下夜无眠
这个作者很懒,什么都没留下…
展开
-
Pipeline快速构建机器学习模型框架
构建机器学习模型过程中,往往会涉及很多步骤:数据处理、特征构造、特征筛选、算法选取等等;原创 2024-05-30 15:39:53 · 212 阅读 · 0 评论 -
使用pipeline做流水线数据分析
# 完整代码# 读取数据import pandas as pdimport numpy as npimport warningswarnings.filterwarnings('ignore')TrainData = pd.read_csv('train.csv')TestData = pd.read_csv('test_noLabel.csv')# 删除无关变量Label = TrainData['Label']DropTrain = ['ID', 'Label','Over18'原创 2021-02-01 20:24:05 · 450 阅读 · 0 评论 -
第十三章 SVM模型
# 导入第三方模块from sklearn import svmimport pandas as pdfrom sklearn import model_selectionfrom sklearn import metrics# 读取外部数据letters = pd.read_csv(r'./letterdata.csv')# 数据前5行letters.head() letter xbox ybox wi原创 2020-12-24 18:41:09 · 521 阅读 · 0 评论 -
第十四章 GBDT模型
# 导入第三方包import pandas as pdimport matplotlib.pyplot as plt# 读入数据default = pd.read_excel(r'C:\Users\Administrator\Desktop\default of credit card.xls')# 数据集中是否违约的客户比例# 为确保绘制的饼图为圆形,需执行如下代码plt.axes(aspect = 'equal')# 中文乱码和坐标轴负号的处理plt.rcParams['font.原创 2020-12-24 18:40:41 · 851 阅读 · 1 评论 -
第十五章 Kmeans聚类
# 导入第三方包import pandas as pdimport numpy as np import matplotlib.pyplot as pltfrom sklearn.cluster import KMeansfrom sklearn import metrics# 随机生成三组二元正态分布随机数 np.random.seed(1234)mean1 = [0.5, 0.5]cov1 = [[0.3, 0], [0, 0.3]]x1, y1 = np.random.mult原创 2020-12-24 18:40:16 · 298 阅读 · 0 评论 -
第十六章 DBSCAN与层次聚类分析
# 导入第三方模块import pandas as pdimport numpy as npfrom sklearn.datasets.samples_generator import make_blobsimport matplotlib.pyplot as pltimport seaborn as snsfrom sklearn import cluster# 模拟数据集X,y = make_blobs(n_samples = 2000, centers = [[-1,-2],[1,3原创 2020-12-24 18:39:41 · 365 阅读 · 0 评论 -
第十二章 朴素贝叶斯模型
# 导入第三方包import pandas as pd# 读入数据skin = pd.read_excel(r'Skin_Segment.xlsx')# 设置正例和负例skin.y = skin.y.map({2:0,1:1})skin.y.value_counts()# 导入第三方模块from sklearn import model_selection# 样本拆分X_train,X_test,y_train,y_test = model_selection.train_test_s原创 2020-12-24 18:41:34 · 275 阅读 · 0 评论 -
第十一章 KNN模型
# 导入第三方包import pandas as pd# 导入数据Knowledge = pd.read_excel(r'Knowledge.xlsx')# 返回前5行数据Knowledge.head() STG SCG STR LPR PEG UNS 0 0.00 0.00 0.00 0.00原创 2020-12-24 18:42:07 · 481 阅读 · 0 评论 -
第十章 决策树与随机森林
# 导入第三方模块import pandas as pd# 读入数据Titanic = pd.read_csv(r'Titanic.csv')Titanic.head() PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Emba原创 2020-12-23 09:44:38 · 352 阅读 · 0 评论 -
第九章 Logistic回归分类模型
逻辑回归通常使用对数似然损失函数,其形式为 -Σy_i * log(p_i) + (1 - y_i) * log(1 - p_i),其中y_i是真实标签,p_i是模型预测的概率。逻辑函数的形式为 p(y=1|x) = 1 / (1 + e^(-z))。正则化项的引入会使模型在拟合训练数据的同时,也考虑到模型的复杂度,从而提高模型的泛化能力。逻辑回归假设因变量(即要预测的目标变量)服从伯努利分布(Bernoulli distribution),即对于给定的输入x,输出y的概率为p,则1-p为y不发生的概率。原创 2020-12-23 09:43:12 · 491 阅读 · 4 评论 -
第八章 岭回归与LASSO回归模型
岭回归使用L2正则化(参数的平方和),而LASSO回归使用L1正则化(参数的绝对值之和)。通常表示为在损失函数中加上一个与回归系数绝对值之和成正比的项,即RSS + λ∑|β_i|,其中RSS是残差平方和,λ是正则化参数,β_i是回归系数。通常表示为在损失函数中加上一个与回归系数平方和成正比的项,即RSS + λ∑β_i^2,其中RSS是残差平方和,λ是正则化参数,β_i是回归系数。引入的正则化项会约束回归系数的大小,降低模型的复杂度,防止过拟合。在存在共线性问题和病态数据偏多的研究中有较大的实用价值。原创 2020-12-23 09:41:34 · 491 阅读 · 0 评论 -
第七章 线性回归模型
其表达形式通常为 y = β0 + β1x + ε,其中 y 是因变量,x 是自变量,β0 和 β1 是回归系数,ε 是误差项,通常假设其服从均值为0的正态分布。线性回归算法通过最小二乘法原理,建立自变量与因变量之间的线性关系模型,并通过求解最小化残差平方和的问题,得到回归系数的估计值。+ βnxn + ε。求解回归系数的过程主要利用了最小二乘法,通过对误差的平方和进行求导,并令导数等于零,得到回归系数的估计值。通过求解最小化残差平方和的问题,可以得到回归系数的估计值 β0 和 β1。原创 2020-12-23 09:40:18 · 706 阅读 · 1 评论 -
第六章 Python数据可视化
# 饼图的绘制# 导入第三方模块import matplotlib.pyplot as plt# 构造数据edu = [0.2515,0.3724,0.3336,0.0368,0.0057]labels = ['中专','大专','本科','硕士','其他']# 绘制饼图plt.pie(x = edu, # 绘图数据 labels=labels, # 添加教育水平标签 autopct='%.1f%%' # 设置百分比的格式,这里保留一位小数 )原创 2020-12-23 09:32:14 · 632 阅读 · 0 评论 -
第五章 Python数据处理工具--Pandas
# 导入模块import pandas as pdimport numpy as np# 构造序列gdp1 = pd.Series([2.8,3.01,8.99,8.59,5.18])gdp2 = pd.Series({'北京':2.8,'上海':3.01,'广东':8.99,'江苏':8.59,'浙江':5.18})gdp3 = pd.Series(np.array((2.8,3.01,8.99,8.59,5.18)))print(gdp1)print(gdp2)print(gdp3)原创 2020-12-23 09:25:13 · 358 阅读 · 0 评论 -
第四章 Python数值计算工具--Numpy
# 导入模块,并重命名为npimport numpy as np# 单个列表创建一维数组arr1 = np.array([3,10,8,7,34,11,28,72])# 嵌套元组创建二维数组arr2 = np.array(((8.5,6,4.1,2,0.7),(1.5,3,5.4,7.3,9),(3.2,3,3.8,3,3),(11.2,13.4,15.6,17.8,19)))print('一维数组:\n',arr1)print('二维数组:\n',arr2)# 一维数组元素的获取pri原创 2020-12-23 09:23:42 · 225 阅读 · 0 评论 -
第三章 Python基础知识
list1 = ['张三','男',33,'江苏','硕士','已婚',['身高178','体重72']]# 取出第一个元素print(list1[0])# 取出第四个元素print(list1[3])# 取出最后一个元素print(list1[6])# 取出“体重72”这个值print(list1[6][1])# 取出最后一个元素print(list1[-1])# 取出“身高178”这个值print(list1[-1][0])# 取出倒数第三个元素print(list1[-3原创 2020-12-23 09:21:08 · 471 阅读 · 0 评论 -
第二章 从收入预测分析开始
# 导入第三方包import pandas as pdimport numpy as npimport seaborn as sns# 数据读取income = pd.read_excel(r'C:\Users\Administrator\Desktop\income.xlsx')# 查看数据集是否存在缺失值income.apply(lambda x:np.sum(x.isnull()))# 缺失值处理income.fillna(value = {'workclass':income原创 2020-12-23 09:20:28 · 327 阅读 · 0 评论 -
pandas处理数据
导入原始数据import pandas as pddata = pd.read_excel("./datas/data3.xlsx")data.head()字段类型转换:data['age'] = data['age'].astype(float) # 转换数据类型data.head()字符串字段的处理:data['custom_amt'] = data['custom_amt'].str[1:].astype(float) # 字符串处理data.head()日期型数据处理:原创 2020-12-13 16:15:18 · 110 阅读 · 0 评论 -
数据可视化
离散变量的可视化# 1、饼图# 使用matplotlib模块import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus'] = False # 显示正负号plt.style.use('ggplot')%matplotlib inlineedu = [0.2515,0.3724,0.3336,0.0368,0.00原创 2020-07-23 18:23:34 · 156 阅读 · 0 评论 -
数据分析学习笔记8
推荐系统1、协同过滤–找出电影的相似度2、基于项目的协同过滤应用–向人们推荐电影# 读入数据import pandas as pdr_cols=['user_id','movie_id','rating']ratings=pd.read_csv('./u.data',sep='\\t',names=r_cols,usecols=range(3),encoding="ISO-8859-1") # 我们只使用文件的前三列 ratings.head()m_cols=['movie_id','原创 2020-07-14 11:12:18 · 213 阅读 · 0 评论 -
数据分析学习7
python机器学习1、使用训练/测试法防止多项式回归中的过拟合2、K均值聚类–基于收入与年龄进行人群聚类3、决策树–使用Python预测录用决策4、支持向量机–通过SVM进行人员聚类# 使用训练/测试法防止多项式回归中的过拟合import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinenp.random.seed(2)# 先创建数据集pagespeeds=np.random.normal(3,1,100)p原创 2020-07-13 11:54:19 · 188 阅读 · 0 评论 -
数据分析学习笔记6
预测模型1、线性回归2、多项式回归3、多元线性回归# 线性回归import numpy as npimport matplotlib.pyplot as plt%matplotlib inline# 生成数据data1=np.random.normal(3,1,1000)data2=100-(data1+np.random.normal(0,0.5,1000))*3plt.scatter(data1,data2,edgecolor='black')plt.title('data1-原创 2020-07-12 21:33:06 · 156 阅读 · 0 评论 -
数据分析学习笔记5
数据可视化–matplotlibimport numpy as npfrom scipy import statsimport matplotlib.pyplot as plt%matplotlib inline# 简单绘制一个正太分布图data=np.arange(-3,3,0.05)plt.plot(data,stats.norm.pdf(data))# 如果想同时绘制多个图形,那么可以先多次调用plot函数plt.plot(data,stats.norm.pdf(data))p原创 2020-07-11 11:42:22 · 104 阅读 · 0 评论 -
数据分析学习笔记4
统计和概率简单复习import matplotlib.pyplot as plt%matplotlib inlineimport numpy as npincomes = np.random.normal(loc=27000,scale=15000,size=10000)np.mean(incomes) # 均值np.median(incomes) # 中位数data = np.random.randint(18,90,500)from scipy import statsstats.原创 2020-07-10 21:21:44 · 119 阅读 · 0 评论 -
数据分析学习笔记3
线性回归模型与不服从正太分布时的t检验1、线性回归模型# 简单线性回归模型sns.lmplot(x='Year',y='GDP',data=data,truncate=True)fit = sm.formula.ols('GDP~Year',data=data).fit() # 模型拟合fit.params # 查看模型参数# 多元线性回归模型fit=sm.formula.ols('Profit~RD_Spend+Administration+Marketing_Spend',data=原创 2020-07-09 21:56:37 · 220 阅读 · 0 评论 -
数据分析学习笔记2
常用的假设检验1、正太分布检验1、1正太密度直方图1、2PP图跟QQ图1、3K-S检验与Shapiro检验# 正太密度直方图:import seaborn as snsimport scipy.stats as statssns.distplot(a=data.price, fit=stats.norm, norm_hist=True, hist_kws={'color':'steelblue','edgecolor':原创 2020-07-08 17:15:49 · 219 阅读 · 0 评论 -
数据分析学习笔记1
简单数据处理查看是否存在重复值:data.duplicated().any()数据类型转换:data[id]=data['id'].astype(str)data['custom_amt']=data['custom_amt'].str[1:].astype(float)data['order_date']=pd.to_datetime(data['order_date'],format='%Y年%m月%d日')查看变量是否存在空值及所占比列:data.isnull().sum()/dat原创 2020-07-07 21:54:49 · 219 阅读 · 0 评论