MxHanks' Blog

奔赴山海,保持热爱

0%

分类

二分类-单层感知机-iris数据集

数据分析

(数学原理推断都写在笔记本上了,纸质的,应该没有人需要,我也就不放上来了。)

书上的数据都过于简单了,虽然才刚刚开始学基础,但我还是想是一些比较实用的数据,能带给我一些成就感。这次我使用的是 iris 数据集。这也是我第一次尝试通过数学概念直接写代码,不看书,希望自己能成功。

数据中一共有五列,前四列代表着花萼长度、花萼宽度、花瓣长度、花瓣宽度,我们取前两列作分析。为了方便处理数据,我们将 “Iris-setosa” 定义为1, 将 “Iris-versicolor” 定义为 -1 , 暂时不研究第三类 “Iris-virginica” , 取到第 100 行, 先展示一下数据吧。

因为 numpy 的 loadtxt 功能面对复杂的数据集实在不是很好用,我决定要慢慢地接受使用 pandas 了。目前会慢慢过度。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

train = np.array(pd.read_csv('cf-iris.csv').iloc[:100])   # 前 100 行作为训练集
train_x = train[:,0:2]
train_y = np.where(train[:, 4] == 'Iris-setosa', 1, -1)  

plt.plot(train_x[train_y == 1, 0], train_x[train_y == 1, 1], 'o')
plt.plot(train_x[train_y == -1, 0], train_x[train_y == -1, 1], 'x')

判别函数

阅读全文 »

我很烦那些安装在 C 盘里面的文件,这个 Xmind 又安装在了 C 盘里面,而且一般改注册表的方式也没用因为它安装在了 Appdata 文件夹里面。。

这个时候就只能使用命令行大法了,我也不知道大佬是怎么发现这个方法的,反正被我发掘到了就记录下来吧,希望能帮助到其他人

进入到安装包所在的目录输入一下命令

.\Xmind-for-Windows-x64bit-24.01.13311-202401310003.exe /D="D:\Program Files\Xmind"
阅读全文 »

前因

家里那台 12 年前的老联想实在是卡到受不了了,就想着装一个 Linux 系统。虽然我没有任何的 Linux 使用基础,但是为觉得 Linux 这种东西是早晚总要学会如何使用的,就趁着这个机会学习以下如何使用。

Linux-Ubuntu 系统安装

ISO 刻录

在清华镜像网站下载好了系统的镜像之后,就要把镜像刻录到U盘中。这一步说起来应该简单吧,但也让我折腾了许久的。一开始看的教程让我使用的是一个叫做 rufus 的工具,但是这个工具我使用的时候总是说写入失败,于是就换成了另一个叫做 UltralSO 的工具。

刻录过程也没什么好说的,就是要记得备份一下U盘中的重要文件,刻录好了之后重启电脑,进入 BIOS 。我没有遇到网上说的调整启动顺序的问题,而是直接进入了 Ubuntu 的安装程序。

在安装的过程中一直都比较顺利,让我纠结了一会的是分区的问题。在安装的时候,选择“其他”选项,设置分区。

我的电脑硬盘有 1TB 大小,这里忘记当时的设置了,反正就是要记得调整一下。

功能配置

更换软件源

阅读全文 »

回归

作为一次函数实现

import numpy as np
import matplotlib.pyplot as plt

读入训练数据

train = np.loadtxt('click.csv', delimiter=',', skiprows=1)
train_x = train[:,0]
train_y = train[:,1]

画图展示

plt.plot(train_x, train_y, 'o')
[<matplotlib.lines.Line2D at 0x7fc95f6b1410>]

png

初始化函数

阅读全文 »

方法一

int Log2[100001];

inline void log_2() {
    for (int i = 2; i <= n; ++i) {
        Log2[i] = Log2[i / 2] + 1;
    }
}

方法二

int Log2[100001];
inline void log_2() {
    for (int i = 2; i <= n; ++i) {
        Log2[i] = Log2[i / 2] + 1;
    }
}

嘿嘿, 原理啥的自己研究一下就懂了。

阅读全文 »

原文链接:https://www.luogu.com.cn/blog/HanksX/TJP5707 (第一次在洛谷成功提交题解)

没有人发Java题解,那么我首当其冲来给大家发一个Java的题解。

预备知识

首先我们要知道,用于操控时间的除了最常用的 Date 类,还有

方便日期运算的 Calendar 类,
拥有许多国家标准时间的 GregorianCalendar 类( Calendar 子类)
这么一看,这道题使用起来比较方便的就是 Calendar 类。

Calendar 类中用一下这些常量表示不同的意义,Java 中的很多类其实都是采用的这种思想。

  • Calendar.YEAR ——年份 。
  • Calendar.MONTH ——月份 。
  • Calendar.DATE ——日期 。
  • Calendar.DAY_OF_MONTH ——日期,和上面的字段意义相同 。
  • Calendar.HOUR ——12小时制的小时 。
  • Calendar.HOUR_OF_DAY ——24小时制的小时 。
  • Calendar.MINUTE ——分钟 。
  • Calendar.SECOND ——秒 。
  • Calendar.DAY_OF_WEEK ——星期几。

操作时间:

Calendar c1 = Calendar.getInstance();
c1.add(Calendar.DATE, 10); 
c1.add(Calendar.DATE, -10); //把c1对象的日期加上-10,也就是c1所表的日期的10天前的日期,其它所有的数值会被重新计算。

其他字段属性的add的意义以此类推。

阅读全文 »

前言

如今我已是初二,回眸望去在中雅校区度过的一年,百感交集。2020年差不多10月的时候(初一上学期),便参加了一次考试,是进入信息竞赛班和数学竞赛班的。奈何我数学不好,我也便没考上。一个星期后草泽却跟信息老师推荐,把我推荐进了信息班。这么说来,我和信息竞赛也挺有缘分的…

五年级开始钻研各种电脑上的东西,在上初中之前学Java也学到了SpringMMC。对于Java这么早学到这种程度的估计除了我也没多少人。但是学程序设计和web也对主要为算法竞赛的信息竞赛来说,也没什么帮助,所以我在班上也一直和别的同学差不多,并没有显得特别突出。

在初一上学期的时候我的成绩也不是很好,所以当时班主任也和我说过,“你说你成绩也不是很好,就别学这个信息了吧。”这个时候当然就是两个选择,一个是把成绩搞好,一个是不学信息。但是,我硬是撑着,成绩也没上去,信息也在学,就坚持了下来。当时我们班有五个人在信息班,初一期中考试之后就走了两个,只剩下三个人。

说实话,我对待信息课认真起来也就是这次比赛之后。可能也是因为换了个老师吧…以前上课除了讲新课我一般都不听或者不认真听,实在因为是太无聊了而不是我懒之类的。比完赛之后,信息A班和B班合并,对于B班的同学们来说换了个新老师,我就觉得这个老师讲课让人没那么困了,也决心好好听课。反正我待在这个学校还不是三年,过了一年了,拿了个二等奖。等下一次比赛,一定要拿一个提高组一等奖,不在中雅留下遗憾!

初赛篇

嗯嗯,坐上校车到了湖南大学,惊奇的发现原来湖南大学没有校门。由于夏季风较强,到了十月份长沙还是三十六七度。虽然是早上,但是太阳晒着刚剪完头发的我,我还是感到阵阵火辣。漫长的排队过后,终于进考场了。一个考场三十个人左右吧,我认识的人在这个考场里面只有两个人。监考还是挺严的,每一次进出考场,都要重新检查一次有没有带别的东西。

等了半个多小时候,发了试卷。一看题目,大多数都是复习过的,但是仍然还是大部分不会。认认真真做了一个多小时的卷子,认认真真检查了半个小时(却已无力回天),终究还是按耐不住了,提前了十五分钟交卷,离开考场。老师不让提前交卷怎么办呢?在楼梯间玩♂耍!在下楼梯时,遇到了一个班的同学,看他在刷B站,于是一起颓废了十分钟之后再出了楼。

之后等了好久好久好久好久好久好久好久好久好久好久…人终于齐了,坐了校车回家。

初赛也没什么好说的,算是给我这个第一次参加比赛的蒟蒻开了开世面。

阅读全文 »

回顾这些年折腾 Hexo 博客的经历,从初建到复活再到各种功能配置,踩了不少坑也积累了一些经验。这篇文章把整个过程串联起来,既是记录也是分享。

阅读全文 »